git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Return the imports/exports Env in parseAndDesugar

This new information will be necessary for documenting re-exports.

commit0f4e0fd062e84fbac3dd6217491b20db51cc0829 authorHarry Garrood <harry@garrood.me> dateTue 29 Dec 2015, 08:40 (11 years ago) parent4c1d5af
3 files changed+10−9
psc-docs/Main.hs+1−1 src/Language/PureScript/Docs/ParseAndDesugar.hs+8−7 src/Language/PureScript/Publish.hs+1−1
psc-docs/Main.hs+1−1
@@ -74,7 +74,7 @@ docgen (PSCDocsOptions fmt inputGlob output) = do
7474 Left err -> do
7575 hPutStrLn stderr $ P.prettyPrintMultipleErrors False err
7676 exitFailure
77− Right (ms', _) ->
77+ Right (ms', _, _) ->
7878 case output of
7979 EverythingToStdOut ->
8080 putStrLn (D.renderModulesAsMarkdown ms')
src/Language/PureScript/Docs/ParseAndDesugar.hs+8−7
@@ -38,12 +38,13 @@ import Language.PureScript.Docs.Convert (collectBookmarks)
3838-- * Collect a list of bookmarks from the whole set of source files
3939-- * Collect a list of desugared modules from just the input source files (not
4040-- dependencies)
41−-- * Return the desugared modules and the bookmarks.
41+-- * Return the desugared modules, the bookmarks, and the imports/exports
42+-- Env (which is needed for producing documentation).
4243parseAndDesugar ::
4344 (Functor m, Applicative m, MonadError P.MultipleErrors m, MonadIO m) =>
4445 [FilePath]
4546 -> [(PackageName, FilePath)]
46− -> m ([P.Module], [Bookmark])
47+ -> m ([P.Module], [Bookmark], P.Env)
4748parseAndDesugar inputFiles depsFiles = do
4849 inputFiles' <- traverse (parseAs Local) inputFiles
4950 depsFiles' <- traverse (\(pkgName, f) -> parseAs (FromDep pkgName) f) depsFiles
@@ -73,15 +74,15 @@ desugarWithBookmarks ::
7374 (MonadError P.MultipleErrors m, MonadIO m) =>
7475 [(FileInfo, P.Module)]
7576 -> [P.Module]
76− -> m ([P.Module], [Bookmark])
77+ -> m ([P.Module], [Bookmark], P.Env)
7778desugarWithBookmarks msInfo msSorted = do
78− msDesugared <- throwLeft (desugar msSorted)
79+ (env, msDesugared) <- throwLeft (desugar msSorted)
7980
8081 let msDeps = getDepsModuleNames (map (\(fp, m) -> (,m) <$> fp) msInfo)
8182 msPackages = map (addPackage msDeps) msDesugared
8283 bookmarks = concatMap collectBookmarks msPackages
8384
84− return (takeLocals msPackages, bookmarks)
85+ return (takeLocals msPackages, bookmarks, env)
8586
8687throwLeft :: (MonadError l m) => Either l r -> m r
8788throwLeft = either throwError return
@@ -105,13 +106,13 @@ importPrim = P.addDefaultImport (P.ModuleName [P.ProperName C.prim])
105106desugar ::
106107 (Functor m, Applicative m, MonadError P.MultipleErrors m) =>
107108 [P.Module]
108− -> m [P.Module]
109+ -> m (P.Env, [P.Module])
109110desugar = P.evalSupplyT 0 . desugar'
110111 where
111112 desugar' =
112113 traverse P.desugarDoModule
113114 >=> P.desugarCasesModule
114− >=> ignoreWarnings . P.desugarImports []
115+ >=> ignoreWarnings . P.desugarImportsWithEnv []
115116
116117 ignoreWarnings m = liftM fst (runWriterT m)
117118
src/Language/PureScript/Publish.hs+1−1
@@ -146,7 +146,7 @@ preparePackage' opts = do
146146getModulesAndBookmarks :: PrepareM ([D.Bookmark], [D.Module])
147147getModulesAndBookmarks = do
148148 (inputFiles, depsFiles) <- liftIO getInputAndDepsFiles
149− (modules', bookmarks) <- parseAndDesugar inputFiles depsFiles
149+ (modules', bookmarks, _) <- parseAndDesugar inputFiles depsFiles
150150
151151 return (bookmarks, map D.convertModule modules')
152152