on master help sign in
cosmetic: use module prefixes for variable canonicalization
commit4a5093f73812e7ec09b277aa22cfe9116123e325 authorEvan Czaplicki <info@elm-lang.org> dateThu 29 May 2014, 15:00 (12 years ago) parentcb72b98
2 files changed+20−18
compiler/Transform/Canonicalize.hs+18−16 compiler/Transform/Canonicalize/Type.hs+2−2
compiler/Transform/Canonicalize.hs+18−16
@@ -24,8 +24,8 @@ import qualified AST.Pattern as P
2424import Text.PrettyPrint as P
2525
2626import Transform.Canonicalize.Environment as Env
27−import Transform.Canonicalize.Type
28−import Transform.Canonicalize.Variable (variable, pvar)
27+import qualified Transform.Canonicalize.Type as Canonicalize
28+import qualified Transform.Canonicalize.Variable as Canonicalize
2929import qualified Transform.SortDefinitions as Transform
3030import qualified Transform.Declaration as Transform
3131
@@ -136,7 +136,7 @@ addDecl moduleName env decl =
136136 addCtors how e = foldr how e (map fst ctors)
137137
138138 D.TypeAlias name tvars alias ->
139− do alias' <- Either.either throw return (tipe env alias)
139+ do alias' <- Either.either throw return (Canonicalize.tipe env alias)
140140 return $ env
141141 { _aliases = insert name (namespacedVar name, tvars, alias') (_aliases env)
142142 , _values = case alias of
@@ -259,24 +259,27 @@ declaration env decl =
259259 D.Definition (Valid.Definition p e t) ->
260260 do p' <- canonicalize pattern "definition" p env p
261261 e' <- expression env e
262− t' <- T.traverse (canonicalize tipe "definition" p env) t
262+ t' <- T.traverse (canonicalize Canonicalize.tipe "definition" p env) t
263263 return $ D.Definition (Canonical.Definition p' e' t')
264264
265265 D.Datatype name tvars ctors ->
266266 D.Datatype name tvars <$> mapM canonicalize' ctors
267267 where
268268 canonicalize' (ctor,args) =
269− (,) ctor <$> mapM (canonicalize tipe "datatype" name env) args
269+ (,) ctor <$> mapM (canonicalize Canonicalize.tipe "datatype" name env) args
270270
271271 D.TypeAlias name tvars expanded ->
272− D.TypeAlias name tvars <$> canonicalize tipe "type alias" name env expanded
272+ do expanded' <- canonicalize Canonicalize.tipe "type alias" name env expanded
273+ return (D.TypeAlias name tvars expanded')
273274
274275 D.Port port ->
275276 D.Port <$> case port of
276− D.In name t -> D.In name <$> canonicalize tipe "port" name env t
277+ D.In name t ->
278+ do t' <- canonicalize Canonicalize.tipe "port" name env t
279+ return (D.In name t')
277280 D.Out name e t ->
278281 do e' <- expression env e
279− t' <- canonicalize tipe "port" name env t
282+ t' <- canonicalize Canonicalize.tipe "port" name env t
280283 return (D.Out name e' t')
281284
282285 D.Fixity assoc prec op -> return $ D.Fixity assoc prec op
@@ -303,11 +306,10 @@ allImportsAvailable interfaces imports =
303306expression :: Environment -> Valid.Expr -> Either [Doc] Canonical.Expr
304307expression env (A.A ann expr) =
305308 let go = expression env
306− tipe' environ = format . tipe environ
307− throw err = Left [ P.vcat [ P.text "Error" <+> pretty ann <> P.colon
308− , P.text err
309− ]
310− ]
309+ tipe' environ = format . Canonicalize.tipe environ
310+ throw err =
311+ let msg = P.text "Error" <+> pretty ann <> P.colon
312+ in Left [ P.vcat [ msg, P.text err ] ]
311313 format = Either.either throw return
312314 in
313315 A.A ann <$>
@@ -328,7 +330,7 @@ expression env (A.A ann expr) =
328330 Record fs -> Record <$> mapM (\(k,v) -> (,) k <$> go v) fs
329331
330332 Binop (Var.Raw op) e1 e2 ->
331− do op' <- format (variable env op)
333+ do op' <- format (Canonicalize.variable env op)
332334 Binop op' <$> go e1 <*> go e2
333335
334336 Lambda p e ->
@@ -349,7 +351,7 @@ expression env (A.A ann expr) =
349351 <*> expression env' body
350352 <*> T.traverse (tipe' env') mtipe
351353
352− Var (Var.Raw x) -> Var <$> format (variable env x)
354+ Var (Var.Raw x) -> Var <$> format (Canonicalize.variable env x)
353355
354356 Data name es -> Data name <$> mapM go es
355357
@@ -377,5 +379,5 @@ pattern env ptrn =
377379 P.Anything -> return P.Anything
378380 P.Alias x p -> P.Alias x <$> pattern env p
379381 P.Data (Var.Raw name) ps ->
380− P.Data <$> pvar env name
382+ P.Data <$> Canonicalize.pvar env name
381383 <*> mapM (pattern env) ps
compiler/Transform/Canonicalize/Type.hs+2−2
@@ -11,7 +11,7 @@ import qualified AST.Type as T
1111import qualified AST.Variable as Var
1212
1313import Transform.Canonicalize.Environment
14−import Transform.Canonicalize.Variable (tvar)
14+import qualified Transform.Canonicalize.Variable as Canonicalize
1515
1616tipe :: Environment -> T.RawType -> Either String T.CanonicalType
1717tipe env typ =
@@ -33,7 +33,7 @@ canonicalizeApp :: Environment -> T.RawType -> [T.RawType]
3333canonicalizeApp env f args =
3434 case f of
3535 T.Type (Var.Raw rawName) ->
36− do answer <- tvar env rawName
36+ do answer <- Canonicalize.tvar env rawName
3737 case answer of
3838 Right alias -> canonicalizeAlias env alias args
3939 Left name -> case args of