@@ -29,6 +29,10 @@ import qualified AST.Variable as Variable
29import qualified AST.Type as Type
29import qualified AST.Type as Type
32writeExpectedJsEnvVarName :: String
36writeExpectedJsEnvVarName :: String
33writeExpectedJsEnvVarName =
37writeExpectedJsEnvVarName =
34 "ELM_WRITE_NEW_EXPECTED"
38 "ELM_WRITE_NEW_EXPECTED"
@@ -64,6 +68,7 @@ testsDir :: FilePath
65 "tests" </> "test-files"
69 "tests" </> "test-files"
67convertToExpectedJsFilePath :: String -> FilePath -> FilePath
72convertToExpectedJsFilePath :: String -> FilePath -> FilePath
68convertToExpectedJsFilePath expectedJsDir filePath =
73convertToExpectedJsFilePath expectedJsDir filePath =
@@ -73,11 +78,35 @@ convertToExpectedJsFilePath expectedJsDir filePath =
76−-- TEST HELPERS
81+-- COMPILE HELPERS
84+compile :: FilePath -> Text -> Either String Compiler.Result
85+compile filePath source =
88+ Compiler.Context Package.core False importDict interfaces
90+ (dealiaser, _warnings, result) =
91+ Compiler.compile context source
93+ formatErrors errors =
94+ concatMap (Compiler.errorToString dealiaser filePath source) errors
96+ either (Left . formatErrors) Right result
99+importDict :: Map.Map ModuleName.Raw ModuleName.Canonical
103+ ( ModuleName._module name, name )
105+ Map.fromList $ map toPair $ Map.keys interfaces
79−essentialInterfaces :: Module.Interfaces
108+interfaces :: Module.Interfaces
80−essentialInterfaces =
109+interfaces =
81 Map.fromList
110 Map.fromList
83 (ModuleName.inCore "Debug",
112 (ModuleName.inCore "Debug",
@@ -102,18 +131,8 @@ buildCoreInterface members =
102 Module.Interface Compiler.version Package.core exports imports types adts aliases fixities
131 Module.Interface Compiler.version Package.core exports imports types adts aliases fixities
105−compile :: FilePath -> Text -> Either String Compiler.Result
134+
106−compile filePath source =
135+-- FILE HELPER
107− let dependentModuleNames =
108− Map.keys essentialInterfaces
110− Compiler.Context Package.core False dependentModuleNames
111− (dealiaser, _warnings, result) =
112− Compiler.compile context source essentialInterfaces
113− formatErrors errors =
114− concatMap (Compiler.errorToString dealiaser filePath source) errors
116− either (Left . formatErrors) Right result
119readFileOrErrorStr :: FilePath -> IO String
138readFileOrErrorStr :: FilePath -> IO String