@@ -22,6 +22,7 @@ import Language.PureScript.Declarations as P
2222import Language.PureScript.Names as P
2323import Language.PureScript.Parser as P
2424import Language.PureScript.CodeGen as P
25+import Language.PureScript.CodeGen.Common as P
2526import Language.PureScript.TypeChecker as P
2627import Language.PureScript.Pretty as P
2728import Language.PureScript.Sugar as P
@@ -63,20 +64,16 @@ compile opts ms = do
6364 modify (\s -> s { checkCurrentModule = Just moduleName })
6465 Module moduleName <$> typeCheckAll mainModuleIdent moduleName decls
6566 regrouped <- createBindingGroupsModule . collapseBindingGroupsModule $ elaborated
66− let entryPoints = (ModuleName . splitProperNames) `map` optionsModules opts
67+ let entryPoints = moduleNameFromString `map` optionsModules opts
6768 let elim = if null entryPoints then regrouped else eliminateDeadCode env entryPoints regrouped
6869 let js = mapMaybe (flip (moduleToJs opts) env) elim
6970 let exts = intercalate "\n" . map (flip moduleToPs env) $ elim
70− js' <- case optionsMain opts of
71− Just mainModuleName -> do
72− when ((ModuleName [ProperName mainModuleName], Ident "main") `M.notMember` (names env)) $
73− Left $ mainModuleName ++ ".main is undefined"
74− return $ js ++ [JSApp (JSAccessor "main" (JSAccessor mainModuleName (JSVar "_ps"))) []]
71+ js' <- case mainModuleIdent of
72+ Just mmi@(ModuleName pns) -> do
73+ when ((mmi, Ident "main") `M.notMember` (names env)) $
74+ Left $ (show mmi) ++ ".main is undefined"
75+ return $ js ++ [JSApp (JSAccessor "main" (JSAccessor (moduleNameToJs mmi) (JSVar "_ps"))) []]
7576 _ -> return js
7677 return (prettyPrintJS [(wrapExportsContainer opts js')], exts, env)
7778 where
78− mainModuleIdent = ModuleName . splitProperNames <$> optionsMain opts
79− splitProperNames s = case dropWhile (== '.') s of
80− "" -> []
81− s' -> ProperName w : splitProperNames s''
82− where (w, s'') = break (== '.') s'
79+ mainModuleIdent = moduleNameFromString <$> optionsMain opts