@@ -64,7 +64,7 @@ data Env =
6464 Env
6565 { _key :: Reporting. BKey
6666 , _root :: FilePath
67- , _pkg :: Pkg. Name
67+ , _project :: Parse. ProjectType
6868 , _srcDirs :: [FilePath ]
6969 , _buildID :: Details. BuildID
7070 , _locals :: Map. Map ModuleName. Raw Details. Local
@@ -76,10 +76,10 @@ makeEnv :: Reporting.BKey -> FilePath -> Details.Details -> Env
7676makeEnv key root (Details. Details _ validOutline buildID locals foreigns _) =
7777 case validOutline of
7878 Details. ValidApp srcDirs ->
79- Env key root Pkg. dummyName (NE. toList srcDirs) buildID locals foreigns
79+ Env key root Parse. Application (NE. toList srcDirs) buildID locals foreigns
8080
8181 Details. ValidPkg pkg _ _ ->
82- Env key root pkg [" src" ] buildID locals foreigns
82+ Env key root ( Parse. Package pkg) [" src" ] buildID locals foreigns
8383
8484
8585
@@ -239,7 +239,7 @@ crawlDeps env mvar deps blockedValue =
239239
240240
241241crawlModule :: Env -> MVar StatusDict -> DocsNeed -> ModuleName. Raw -> IO Status
242- crawlModule env@ (Env _ root pkg srcDirs buildID locals foreigns) mvar docsNeed name =
242+ crawlModule env@ (Env _ root projectType srcDirs buildID locals foreigns) mvar docsNeed name =
243243 do let fileName = ModuleName. toFilePath name <.> " elm"
244244 let inRoot path = File. exists (root </> path)
245245
@@ -276,18 +276,18 @@ crawlModule env@(Env _ root pkg srcDirs buildID locals foreigns) mvar docsNeed n
276276 return $ SBadImport $ Import. AmbiguousForeign dep d ds
277277
278278 Nothing ->
279- if Name. isKernel name && Pkg . isKernel pkg then
279+ if Name. isKernel name && Parse . isKernel projectType then
280280 do exists <- File. exists (" src" </> ModuleName. toFilePath name <.> " js" )
281281 return $ if exists then SKernel else SBadImport Import. NotFound
282282 else
283283 return $ SBadImport Import. NotFound
284284
285285
286286crawlFile :: Env -> MVar StatusDict -> DocsNeed -> ModuleName. Raw -> FilePath -> File. Time -> Details. BuildID -> IO Status
287- crawlFile env@ (Env _ root pkg _ buildID _ _) mvar docsNeed expectedName path time lastChange =
287+ crawlFile env@ (Env _ root projectType _ buildID _ _) mvar docsNeed expectedName path time lastChange =
288288 do source <- File. readUtf8 (root </> path)
289289
290- case Parse. fromByteString pkg source of
290+ case Parse. fromByteString projectType source of
291291 Left err ->
292292 return $ SBadSyntax path time source err
293293
@@ -338,15 +338,15 @@ data CachedInterface
338338
339339
340340checkModule :: Env -> Dependencies -> MVar ResultDict -> ModuleName. Raw -> Status -> IO Result
341- checkModule env@ (Env _ root pkg _ _ _ _) foreigns resultsMVar name status =
341+ checkModule env@ (Env _ root projectType _ _ _ _) foreigns resultsMVar name status =
342342 case status of
343343 SCached local@ (Details. Local path time deps hasMain lastChange lastCompile) ->
344344 do results <- readMVar resultsMVar
345345 depsStatus <- checkDeps root results deps lastCompile
346346 case depsStatus of
347347 DepsChange ifaces ->
348348 do source <- File. readUtf8 path
349- case Parse. fromByteString pkg source of
349+ case Parse. fromByteString projectType source of
350350 Right modul -> compile env (DocsNeed False ) local source ifaces modul
351351 Left err ->
352352 return $ RProblem $
@@ -362,7 +362,7 @@ checkModule env@(Env _ root pkg _ _ _ _) foreigns resultsMVar name status =
362362 DepsNotFound problems ->
363363 do source <- File. readUtf8 path
364364 return $ RProblem $ Error. Module name path time source $
365- case Parse. fromByteString pkg source of
365+ case Parse. fromByteString projectType source of
366366 Right (Src. Module _ _ _ imports _ _ _ _ _) ->
367367 Error. BadImports (toImportErrors env results imports problems)
368368
@@ -675,7 +675,10 @@ checkInside name p1 status =
675675
676676
677677compile :: Env -> DocsNeed -> Details. Local -> B. ByteString -> Map. Map ModuleName. Raw I. Interface -> Src. Module -> IO Result
678- compile (Env key root pkg _ buildID _ _) docsNeed (Details. Local path time deps main lastChange _) source ifaces modul =
678+ compile (Env key root projectType _ buildID _ _) docsNeed (Details. Local path time deps main lastChange _) source ifaces modul =
679+ let
680+ pkg = projectTypeToPkg projectType
681+ in
679682 case Compile. compile pkg ifaces modul of
680683 Right (Compile. Artifacts canonical annotations objects) ->
681684 do let name = Src. getName modul
@@ -703,6 +706,13 @@ compile (Env key root pkg _ buildID _ _) docsNeed (Details.Local path time deps
703706 Error. Module (Src. getName modul) path time source err
704707
705708
709+ projectTypeToPkg :: Parse. ProjectType -> Pkg. Name
710+ projectTypeToPkg projectType =
711+ case projectType of
712+ Parse. Package pkg -> pkg
713+ Parse. Application -> Pkg. dummyName
714+
715+
706716
707717-- WRITE DETAILS
708718
@@ -847,9 +857,9 @@ data ReplArtifacts =
847857fromRepl :: FilePath -> Details. Details -> B. ByteString -> IO (Either Exit. Repl ReplArtifacts )
848858fromRepl root details source =
849859 let
850- env@ (Env _ _ pkg _ _ _ _) = makeEnv Reporting. ignorer root details
860+ env@ (Env _ _ projectType _ _ _ _) = makeEnv Reporting. ignorer root details
851861 in
852- case Parse. fromByteString pkg source of
862+ case Parse. fromByteString projectType source of
853863 Left syntaxError ->
854864 return $ Left $ Exit. ReplBadInput source $ Error. BadSyntax syntaxError
855865
@@ -878,8 +888,11 @@ fromRepl root details source =
878888
879889
880890finalizeReplArtifacts :: Env -> B. ByteString -> Src. Module -> DepsStatus -> ResultDict -> Map. Map ModuleName. Raw Result -> IO (Either Exit. Repl ReplArtifacts )
881- finalizeReplArtifacts env@ (Env _ root pkg _ _ _ _) source modul@ (Src. Module _ _ _ imports _ _ _ _ _) depsStatus resultMVars results =
891+ finalizeReplArtifacts env@ (Env _ root projectType _ _ _ _) source modul@ (Src. Module _ _ _ imports _ _ _ _ _) depsStatus resultMVars results =
882892 let
893+ pkg =
894+ projectTypeToPkg projectType
895+
883896 compileInput ifaces =
884897 case Compile. compile pkg ifaces modul of
885898 Right (Compile. Artifacts canonical annotations objects) ->
@@ -1070,7 +1083,7 @@ data MainStatus
10701083
10711084
10721085crawlMain :: Env -> MVar StatusDict -> MainLocation -> IO MainStatus
1073- crawlMain env@ (Env _ _ pkg _ buildID _ _) mvar given =
1086+ crawlMain env@ (Env _ _ projectType _ buildID _ _) mvar given =
10741087 case given of
10751088 LInside name ->
10761089 do statusMVar <- newEmptyMVar
@@ -1082,7 +1095,7 @@ crawlMain env@(Env _ _ pkg _ buildID _ _) mvar given =
10821095 LOutside path ->
10831096 do time <- File. getTime path
10841097 source <- File. readUtf8 path
1085- case Parse. fromByteString pkg source of
1098+ case Parse. fromByteString projectType source of
10861099 Right modul@ (Src. Module _ _ _ imports values _ _ _ _) ->
10871100 do let deps = map Src. getImportName imports
10881101 let local = Details. Local path time deps (any isMain values) buildID buildID
@@ -1134,8 +1147,9 @@ checkMain env@(Env _ root _ _ _ _ _) results pendingMain =
11341147
11351148
11361149compileOutside :: Env -> Details. Local -> B. ByteString -> Map. Map ModuleName. Raw I. Interface -> Src. Module -> IO MainResult
1137- compileOutside (Env key _ pkg _ _ _ _) (Details. Local path time _ _ _ _) source ifaces modul =
1150+ compileOutside (Env key _ projectType _ _ _ _) (Details. Local path time _ _ _ _) source ifaces modul =
11381151 let
1152+ pkg = projectTypeToPkg projectType
11391153 name = Src. getName modul
11401154 in
11411155 case Compile. compile pkg ifaces modul of
@@ -1157,13 +1171,13 @@ data Main
11571171
11581172
11591173toArtifacts :: Env -> Dependencies -> Map. Map ModuleName. Raw Result -> NE. List MainResult -> Either Exit. BuildProblem Artifacts
1160- toArtifacts (Env _ _ pkg _ _ _ _) foreigns results mainResults =
1174+ toArtifacts (Env _ _ projectType _ _ _ _) foreigns results mainResults =
11611175 case gatherProblemsOrMains results mainResults of
11621176 Left (NE. List e es) ->
11631177 Left (Exit. BuildBadModules e es)
11641178
11651179 Right mains ->
1166- Right $ Artifacts pkg foreigns mains $
1180+ Right $ Artifacts (projectTypeToPkg projectType) foreigns mains $
11671181 Map. foldrWithKey addInside (foldr addOutside [] mainResults) results
11681182
11691183
0 commit comments