@@ -9,6 +9,7 @@ import qualified AST.Pattern as P
99import qualified AST.Type as T
1010import qualified AST.Variable as Var
1111import qualified Reporting.Annotation as A
12+import qualified Reporting.Region as R
1213
1314
1415toExpr :: Module.Name -> [D.CanonicalDecl] -> [Canonical.Def]
@@ -35,10 +36,10 @@ toDefs moduleName (A.A region decl) =
3536 tbody = T.App (T.Type (typeVar name)) (map T.Var tvars)
3637 body = loc . E.Data ctor $ map (loc . E.localVar) vars
3738 in
38− [ definition ctor (buildFunction body vars) (foldr T.Lambda tbody tipes) ]
39+ [ definition ctor (buildFunction body vars) region (foldr T.Lambda tbody tipes) ]
3940
4041 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) ]
4243 where
4344 result =
4445 T.Aliased (typeVar name) (zip tvars (map T.Var tvars)) (T.Holey tipe)
@@ -70,13 +71,13 @@ toDefs moduleName (A.A region decl) =
7071 in
7172 case impl of
7273 E.In name tipe ->
73− [ definition name body (T.getPortType tipe) ]
74+ [ definition name body region (T.getPortType tipe) ]
7475
7576 E.Out name _expr tipe ->
76− [ definition name body (T.getPortType tipe) ]
77+ [ definition name body region (T.getPortType tipe) ]
7778
7879 E.Task name _expr tipe ->
79− [ definition name body (T.getPortType tipe) ]
80+ [ definition name body region (T.getPortType tipe) ]
8081
8182 -- no constraints are needed for fixity declarations
8283 D.Fixity _ _ _ ->
@@ -96,6 +97,6 @@ buildFunction body@(A.A ann _) vars =
9697 (map (A.A ann . P.Var) vars)
9798
9899
99−definition :: String -> Canonical.Expr -> T.Canonical -> Canonical.Def
100−definition name expr@(A.A ann _) tipe =
101− Canonical.Definition (A.A ann (P.Var name)) expr (Just tipe)
100+definition :: String -> Canonical.Expr -> R.Region -> T.Canonical -> Canonical.Def
101+definition name expr@(A.A ann _) region tipe =
102+ Canonical.Definition (A.A ann (P.Var name)) expr (Just (A.A region tipe))