@@ -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