on master help sign in
cosmetic: minor indentation and naming changes
c5c4da6Evan Czaplicki
src/AST/Expression/Canonical.hs+7−6
@@ -28,15 +28,16 @@ data Def
28 deriving (Show)
28 deriving (Show)
29
29
30
30
31−data Facts =
31+data Facts = Facts
32− Facts
32+ { dependencies :: [Var.TopLevel]
33− { freeVariables :: [Var.TopLevelVar]
33+ }
34− } deriving (Eq, Ord, Show)
34+ deriving (Eq, Ord, Show)
35
35
36
36
37dummyFacts :: Facts
37dummyFacts :: Facts
38+dummyFacts =
38−dummyFacts = Facts $ error "This should be set by Canonicalize.Sort"
39+ Facts (error "This should be set by Canonicalize.Sort")
39−
40+
40
41
41instance P.Pretty Def where
42instance P.Pretty Def where
42 pretty dealiaser _ (Definition _ pattern expr maybeTipe) =
43 pretty dealiaser _ (Definition _ pattern expr maybeTipe) =
src/AST/Expression/Optimized.hs+1−2
@@ -6,7 +6,6 @@ module AST.Expression.Optimized
6 ) where
6 ) where
7
7
8import qualified AST.Expression.General as General
8import qualified AST.Expression.General as General
9−import qualified AST.Expression.Canonical as Canonical
10import qualified AST.Pattern as Pattern
9import qualified AST.Pattern as Pattern
11import qualified AST.Type as Type
10import qualified AST.Type as Type
12import qualified AST.Variable as Var
11import qualified AST.Variable as Var
@@ -27,7 +26,7 @@ data Def
27
26
28data Facts = Facts
27data Facts = Facts
29 { tailRecursionDetails :: Maybe String
28 { tailRecursionDetails :: Maybe String
30− , freeVariables :: [Var.TopLevelVar]
29+ , dependencies :: [Var.TopLevel]
31 }
30 }
32 deriving (Show)
31 deriving (Show)
33
32
src/AST/Variable.hs+11−6
@@ -11,18 +11,23 @@ import qualified AST.Module.Name as ModuleName
11import qualified Reporting.PrettyPrint as P
11import qualified Reporting.PrettyPrint as P
12
12
13
13
14−-- VARIABLES
14+-- RAW NAMES
15
15
16newtype Raw = Raw String
16newtype Raw = Raw String
17 deriving (Eq, Ord, Show)
17 deriving (Eq, Ord, Show)
18
18
19
19
20−data TopLevelVar =
20+-- TOP LEVEL NAMES
21− TopLevelVar
22− { topVarModule :: ModuleName.Canonical
23− , topVarName :: String
24− } deriving (Eq, Ord, Show)
25
21
22+data TopLevel = TopLevelVar
23+ { topHome :: ModuleName.Canonical
24+ , topName :: String
25+ }
26+ deriving (Eq, Ord, Show)
27+
28+
29+
30+-- CANONICAL NAMES
26
31
27data Home
32data Home
28 = BuiltIn
33 = BuiltIn
src/Canonicalize/Declaration.hs+10−5
@@ -19,10 +19,12 @@ toExpr moduleName decls =
19
19
20toDefs :: ModuleName.Canonical -> D.CanonicalDecl -> [Canonical.Def]
20toDefs :: ModuleName.Canonical -> D.CanonicalDecl -> [Canonical.Def]
21toDefs moduleName (A.A (region,_) decl) =
21toDefs moduleName (A.A (region,_) decl) =
22+ let
23+ typeVar =
22− let typeVar = Var.fromModule moduleName
24+ Var.fromModule moduleName
23
25
24− loc expr =
26+ loc expr =
25− A.A region expr
27+ A.A region expr
26 in
28 in
27 case decl of
29 case decl of
28 D.Definition def ->
30 D.Definition def ->
@@ -91,5 +93,8 @@ buildFunction body@(A.A ann _) vars =
91
93
92definition :: String -> Canonical.Expr -> R.Region -> T.Canonical -> Canonical.Def
94definition :: String -> Canonical.Expr -> R.Region -> T.Canonical -> Canonical.Def
93definition name expr@(A.A ann _) region tipe =
95definition name expr@(A.A ann _) region tipe =
94− Canonical.Definition Canonical.dummyFacts
96+ Canonical.Definition
97+ Canonical.dummyFacts
98+ (A.A ann (P.Var name))
99+ expr
95− (A.A ann (P.Var name)) expr (Just (A.A region tipe))
100+ (Just (A.A region tipe))
src/Optimize/TailCalls.hs+3−3
@@ -73,9 +73,9 @@ detectTailRecursion (Can.Definition canonFacts pattern expression _) =
73 A.A () (Lambda x e)
73 A.A () (Lambda x e)
74
74
75 facts =
75 facts =
76− Opt.Facts
76+ Opt.Facts
77− (if isTailCall then fmap fst context else Nothing)
77+ (if isTailCall then fmap fst context else Nothing)
78− (Can.freeVariables canonFacts)
78+ (Can.dependencies canonFacts)
79 in
79 in
80 Opt.Definition
80 Opt.Definition
81 facts
81 facts