on master help sign in
Use the NOINLINE names in Elm.Compiler.Imports
bd8936fEvan Czaplicki
src/AST/Module/Name.hs+11−1
@@ -3,7 +3,7 @@
3module AST.Module.Name
3module AST.Module.Name
4 ( Canonical(..)
4 ( Canonical(..)
5 , basics, char, string
5 , basics, char, string
6− , maybe, list, array
6+ , maybe, result, list, array, tuple
7 , platform, cmd, sub
7 , platform, cmd, sub
8 , virtualDom, debug, bitwise
8 , virtualDom, debug, bitwise
9 , jsonDecode, jsonEncode
9 , jsonDecode, jsonEncode
@@ -66,6 +66,11 @@ maybe :: Canonical
66maybe = Canonical Pkg.core N.maybe
66maybe = Canonical Pkg.core N.maybe
67
67
68
68
69+{-# NOINLINE result #-}
70+result :: Canonical
71+result = Canonical Pkg.core N.result
72+
73+
69{-# NOINLINE list #-}
74{-# NOINLINE list #-}
70list :: Canonical
75list :: Canonical
71list = Canonical Pkg.core N.list
76list = Canonical Pkg.core N.list
@@ -76,6 +81,11 @@ array :: Canonical
76array = Canonical Pkg.core N.array
81array = Canonical Pkg.core N.array
77
82
78
83
84+{-# NOINLINE tuple #-}
85+tuple :: Canonical
86+tuple = Canonical Pkg.core N.tuple
87+
88+
79
89
80-- EFFECTS
90-- EFFECTS
81
91
src/Elm/Compiler/Imports.hs+14−13
@@ -7,6 +7,7 @@ module Elm.Compiler.Imports
7
7
8
8
9import qualified AST.Source as Src
9import qualified AST.Source as Src
10+import qualified AST.Module.Name as Module
10import qualified Elm.Name as N
11import qualified Elm.Name as N
11import qualified Elm.Package as Pkg
12import qualified Elm.Package as Pkg
12import qualified Reporting.Annotation as A
13import qualified Reporting.Annotation as A
@@ -30,22 +31,22 @@ addDefaults pkgName imports =
30
31
31defaults :: [Src.Import]
32defaults :: [Src.Import]
32defaults =
33defaults =
33− [ import_ "Basics" Nothing Src.Open
34+ [ import_ Module.basics Nothing Src.Open
34− , import_ "Debug" Nothing closed
35+ , import_ Module.debug Nothing closed
35− , import_ "List" Nothing (operator "::")
36+ , import_ Module.list Nothing (operator "::")
36− , import_ "Maybe" Nothing (typeOpen "Maybe")
37+ , import_ Module.maybe Nothing (typeOpen N.maybe)
37− , import_ "Result" Nothing (typeOpen "Result")
38+ , import_ Module.result Nothing (typeOpen N.result)
38− , import_ "String" Nothing (typeClosed "String")
39+ , import_ Module.string Nothing (typeClosed N.string)
39− , import_ "Char" Nothing (typeClosed "Char")
40+ , import_ Module.char Nothing (typeClosed N.char)
40− , import_ "Tuple" Nothing closed
41+ , import_ Module.tuple Nothing closed
41− , import_ "Platform" Nothing (typeClosed "Program")
42+ , import_ Module.platform Nothing (typeClosed N.program)
42− , import_ "Platform.Cmd" (Just "Cmd") (typeClosed "Cmd")
43+ , import_ Module.cmd (Just N.cmd) (typeClosed N.cmd)
43− , import_ "Platform.Sub" (Just "Sub") (typeClosed "Sub")
44+ , import_ Module.sub (Just N.sub) (typeClosed N.sub)
44 ]
45 ]
45
46
46
47
47−import_ :: N.Name -> Maybe N.Name -> Src.Exposing -> Src.Import
48+import_ :: Module.Canonical -> Maybe N.Name -> Src.Exposing -> Src.Import
48−import_ name maybeAlias exposing =
49+import_ (Module.Canonical _ name) maybeAlias exposing =
49 Src.Import (A.At zero name) maybeAlias exposing
50 Src.Import (A.At zero name) maybeAlias exposing
50
51
51
52
src/Elm/Name.hs+6−1
@@ -25,7 +25,7 @@ module Elm.Name
25 , fromText
25 , fromText
26 -- interned
26 -- interned
27 , int, float, bool, char, string
27 , int, float, bool, char, string
28− , maybe, list, array, tuple, jsArray
28+ , maybe, result, list, array, tuple, jsArray
29 , task, router, cmd, sub, platform, browser
29 , task, router, cmd, sub, platform, browser
30 , shader, debug, bitwise, basics
30 , shader, debug, bitwise, basics
31 , utils, negate, value
31 , utils, negate, value
@@ -201,6 +201,11 @@ maybe :: Name
201maybe = "Maybe"
201maybe = "Maybe"
202
202
203
203
204+{-# NOINLINE result #-}
205+result :: Name
206+result = "Result"
207+
208+
204{-# NOINLINE list #-}
209{-# NOINLINE list #-}
205list :: Name
210list :: Name
206list = "List"
211list = "List"