@@ -9,6 +9,7 @@ import qualified AST.Pattern as P
9import qualified AST.Type as T
9import qualified AST.Type as T
10import qualified AST.Variable as Var
10import qualified AST.Variable as Var
11import qualified Reporting.Annotation as A
11import qualified Reporting.Annotation as A
12+import qualified Reporting.Region as R
14toExpr :: Module.Name -> [D.CanonicalDecl] -> [Canonical.Def]
15toExpr :: Module.Name -> [D.CanonicalDecl] -> [Canonical.Def]
@@ -35,10 +36,10 @@ toDefs moduleName (A.A region decl) =
35 tbody = T.App (T.Type (typeVar name)) (map T.Var tvars)
36 tbody = T.App (T.Type (typeVar name)) (map T.Var tvars)
36 body = loc . E.Data ctor $ map (loc . E.localVar) vars
37 body = loc . E.Data ctor $ map (loc . E.localVar) vars
38− [ definition ctor (buildFunction body vars) (foldr T.Lambda tbody tipes) ]
39+ [ definition ctor (buildFunction body vars) region (foldr T.Lambda tbody tipes) ]
40 D.TypeAlias name tvars tipe@(T.Record fields ext) ->
41 D.TypeAlias name tvars tipe@(T.Record fields ext) ->
41− [ definition name (buildFunction record vars) (foldr T.Lambda result args) ]
42+ [ definition name (buildFunction record vars) region (foldr T.Lambda result args) ]
44 T.Aliased (typeVar name) (zip tvars (map T.Var tvars)) (T.Holey tipe)
45 T.Aliased (typeVar name) (zip tvars (map T.Var tvars)) (T.Holey tipe)
@@ -70,13 +71,13 @@ toDefs moduleName (A.A region decl) =
71 case impl of
72 case impl of
72 E.In name tipe ->
73 E.In name tipe ->
73− [ definition name body (T.getPortType tipe) ]
74+ [ definition name body region (T.getPortType tipe) ]
75 E.Out name _expr tipe ->
76 E.Out name _expr tipe ->
76− [ definition name body (T.getPortType tipe) ]
77+ [ definition name body region (T.getPortType tipe) ]
78 E.Task name _expr tipe ->
79 E.Task name _expr tipe ->
79− [ definition name body (T.getPortType tipe) ]
80+ [ definition name body region (T.getPortType tipe) ]
81 -- no constraints are needed for fixity declarations
82 -- no constraints are needed for fixity declarations
82 D.Fixity _ _ _ ->
83 D.Fixity _ _ _ ->
@@ -96,6 +97,6 @@ buildFunction body@(A.A ann _) vars =
96 (map (A.A ann . P.Var) vars)
97 (map (A.A ann . P.Var) vars)
99−definition :: String -> Canonical.Expr -> T.Canonical -> Canonical.Def
100+definition :: String -> Canonical.Expr -> R.Region -> T.Canonical -> Canonical.Def
100−definition name expr@(A.A ann _) tipe =
101+definition name expr@(A.A ann _) region tipe =
101− Canonical.Definition (A.A ann (P.Var name)) expr (Just tipe)
102+ Canonical.Definition (A.A ann (P.Var name)) expr (Just (A.A region tipe))