@@ -18,7 +18,10 @@ import Test.HUnit (Assertion, assertFailure, assertBool, assertEqual)
1818
1919import qualified Elm.Compiler as Compiler
2020import qualified Elm.Package as Package
21−
21+import qualified AST.Module as Module
22+import qualified AST.Module.Name as ModuleName
23+import qualified AST.Variable as Variable
24+import qualified AST.Type as Type
2225
2326
2427writeExpectedJsEnvVarName :: String
@@ -68,12 +71,40 @@ convertToExpectedJsFilePath expectedJsDir filePath =
6871-- TEST HELPERS
6972
7073
74+essentialInterfaces :: Module.Interfaces
75+essentialInterfaces =
76+ Map.fromList
77+ [
78+ (ModuleName.inCore ["Debug"],
79+ buildCoreInterface
80+ [
81+ ("crash", Type.Lambda (Type.Var "String") (Type.Var "a"))
82+ ]
83+ )
84+ ]
85+
86+
87+buildCoreInterface :: [(String, Type.Canonical)] -> Module.Interface
88+buildCoreInterface members =
89+ let exports = map (Variable.Value . fst) members
90+ imports = []
91+ types = Map.fromList members
92+ adts = Map.empty
93+ aliases = Map.empty
94+ fixities = []
95+ ports = []
96+ in
97+ Module.Interface Compiler.version Package.coreName exports types imports adts aliases fixities ports
98+
99+
71100compileString :: FilePath -> String -> Either String Compiler.Result
72101compileString filePath source =
73− let context =
74− Compiler.Context Package.coreName True False []
102+ let dependentModuleNames =
103+ Map.keys essentialInterfaces
104+ context =
105+ Compiler.Context Package.coreName True False dependentModuleNames
75106 (dealiaser, _warnings, result) =
76− Compiler.compile context source Map.empty
107+ Compiler.compile context source essentialInterfaces
77108 formatErrors errors =
78109 concatMap (Compiler.errorToString dealiaser filePath source) errors
79110 in