on master help sign in
Add some SCC annotations for generating type constraints
0765fdeEvan Czaplicki
src/Type/Inference.hs+4−1
@@ -50,11 +50,13 @@ genConstraints interfaces modul =
50 do let env = Env.initialize (canonicalizeUnions interfaces modul)
50 do let env = Env.initialize (canonicalizeUnions interfaces modul)
51
51
52 ctors <-
52 ctors <-
53+ {-# SCC elm_compiler_mk_ctor_types #-}
53 forM (Env.ctorNames env) $ \name ->
54 forM (Env.ctorNames env) $ \name ->
54 do (_, vars, args, result) <- Env.freshDataScheme env name
55 do (_, vars, args, result) <- Env.freshDataScheme env name
55− return (name, (vars, foldr (T.==>) result args))
56+ return (name, (vars, foldr T.FunN result args))
56
57
57 importedVars <-
58 importedVars <-
59+ {-# SCC elm_compiler_mk_value_types #-}
58 mapM (canonicalizeValues env) (Map.toList interfaces)
60 mapM (canonicalizeValues env) (Map.toList interfaces)
59
61
60 let allTypes = concat (ctors : importedVars)
62 let allTypes = concat (ctors : importedVars)
@@ -65,6 +67,7 @@ genConstraints interfaces modul =
65 fvar <- T.mkFlexVar
67 fvar <- T.mkFlexVar
66
68
67 constraint <-
69 constraint <-
70+ {-# SCC elm_compiler_constrain #-}
68 TcExpr.constrain env (Module.program (Module.info modul)) (T.VarN fvar)
71 TcExpr.constrain env (Module.program (Module.info modul)) (T.VarN fvar)
69
72
70 return (header, environ constraint)
73 return (header, environ constraint)