git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #1760 from hdgarrood/remove-parse-desugar-error
342c17fPhil Freeman
psc-docs/Main.hs+1−7
@@ -70,13 +70,7 @@ docgen (PSCDocsOptions fmt inputGlob output) = do
70 Markdown -> do
70 Markdown -> do
71 e <- D.parseAndDesugar input [] (\_ ms -> return ms)
71 e <- D.parseAndDesugar input [] (\_ ms -> return ms)
72 case e of
72 case e of
73− Left (D.ParseError err) -> do
73+ Left err -> do
74− hPutStrLn stderr $ show err
75− exitFailure
76− Left (D.SortModulesError err) -> do
77− hPutStrLn stderr $ P.prettyPrintMultipleErrors False err
78− exitFailure
79− Left (D.DesugarError err) -> do
80 hPutStrLn stderr $ P.prettyPrintMultipleErrors False err
74 hPutStrLn stderr $ P.prettyPrintMultipleErrors False err
81 exitFailure
75 exitFailure
82 Right ms' ->
76 Right ms' ->
src/Language/PureScript/Docs/ParseAndDesugar.hs+9−16
@@ -2,7 +2,6 @@
2
2
3module Language.PureScript.Docs.ParseAndDesugar
3module Language.PureScript.Docs.ParseAndDesugar
4 ( parseAndDesugar
4 ( parseAndDesugar
5− , ParseDesugarError(..)
6 ) where
5 ) where
7
6
8import Prelude ()
7import Prelude ()
@@ -24,12 +23,6 @@ import qualified Language.PureScript.Constants as C
24import Language.PureScript.Docs.Types
23import Language.PureScript.Docs.Types
25import Language.PureScript.Docs.Convert (collectBookmarks)
24import Language.PureScript.Docs.Convert (collectBookmarks)
26
25
27−data ParseDesugarError
28− = ParseError P.MultipleErrors
29− | SortModulesError P.MultipleErrors
30− | DesugarError P.MultipleErrors
31− deriving (Show)
32−
33-- |
26-- |
34-- Given:
27-- Given:
35--
28--
@@ -50,7 +43,7 @@ parseAndDesugar ::
50 [FilePath]
43 [FilePath]
51 -> [(PackageName, FilePath)]
44 -> [(PackageName, FilePath)]
52 -> ([Bookmark] -> [P.Module] -> IO a)
45 -> ([Bookmark] -> [P.Module] -> IO a)
53− -> IO (Either ParseDesugarError a)
46+ -> IO (Either P.MultipleErrors a)
54parseAndDesugar inputFiles depsFiles callback = do
47parseAndDesugar inputFiles depsFiles callback = do
55 inputFiles' <- traverse (parseAs Local) inputFiles
48 inputFiles' <- traverse (parseAs Local) inputFiles
56 depsFiles' <- traverse (\(pkgName, f) -> parseAs (FromDep pkgName) f) depsFiles
49 depsFiles' <- traverse (\(pkgName, f) -> parseAs (FromDep pkgName) f) depsFiles
@@ -63,15 +56,15 @@ parseAndDesugar inputFiles depsFiles callback = do
63
56
64parseFiles ::
57parseFiles ::
65 [(FileInfo, FilePath)]
58 [(FileInfo, FilePath)]
66− -> ExceptT ParseDesugarError IO [(FileInfo, P.Module)]
59+ -> ExceptT P.MultipleErrors IO [(FileInfo, P.Module)]
67parseFiles =
60parseFiles =
68− throwLeft ParseError . P.parseModulesFromFiles fileInfoToString
61+ throwLeft . P.parseModulesFromFiles fileInfoToString
69
62
70sortModules ::
63sortModules ::
71 [P.Module]
64 [P.Module]
72− -> ExceptT ParseDesugarError IO [P.Module]
65+ -> ExceptT P.MultipleErrors IO [P.Module]
73sortModules =
66sortModules =
74− fmap fst . throwLeft SortModulesError . sortModules' . map importPrim
67+ fmap fst . throwLeft . sortModules' . map importPrim
75 where
68 where
76 sortModules' :: [P.Module] -> Either P.MultipleErrors ([P.Module], P.ModuleGraph)
69 sortModules' :: [P.Module] -> Either P.MultipleErrors ([P.Module], P.ModuleGraph)
77 sortModules' = P.sortModules
70 sortModules' = P.sortModules
@@ -79,9 +72,9 @@ sortModules =
79desugarWithBookmarks ::
72desugarWithBookmarks ::
80 [(FileInfo, P.Module)]
73 [(FileInfo, P.Module)]
81 -> [P.Module]
74 -> [P.Module]
82− -> ExceptT ParseDesugarError IO ([Bookmark], [P.Module])
75+ -> ExceptT P.MultipleErrors IO ([Bookmark], [P.Module])
83desugarWithBookmarks msInfo msSorted = do
76desugarWithBookmarks msInfo msSorted = do
84− msDesugared <- throwLeft DesugarError (desugar msSorted)
77+ msDesugared <- throwLeft (desugar msSorted)
85
78
86 let msDeps = getDepsModuleNames (map (\(fp, m) -> (,m) <$> fp) msInfo)
79 let msDeps = getDepsModuleNames (map (\(fp, m) -> (,m) <$> fp) msInfo)
87 msPackages = map (addPackage msDeps) msDesugared
80 msPackages = map (addPackage msDeps) msDesugared
@@ -89,8 +82,8 @@ desugarWithBookmarks msInfo msSorted = do
89
82
90 return (bookmarks, takeLocals msPackages)
83 return (bookmarks, takeLocals msPackages)
91
84
92−throwLeft :: (MonadError e m) => (l -> e) -> Either l r -> m r
85+throwLeft :: (MonadError l m) => Either l r -> m r
93−throwLeft f = either (throwError . f) return
86+throwLeft = either throwError return
94
87
95-- | Specifies whether a PureScript source file is considered as:
88-- | Specifies whether a PureScript source file is considered as:
96--
89--
src/Language/PureScript/Publish.hs+1−1
@@ -147,7 +147,7 @@ getModulesAndBookmarks :: PrepareM ([D.Bookmark], [D.Module])
147getModulesAndBookmarks = do
147getModulesAndBookmarks = do
148 (inputFiles, depsFiles) <- liftIO getInputAndDepsFiles
148 (inputFiles, depsFiles) <- liftIO getInputAndDepsFiles
149 liftIO (D.parseAndDesugar inputFiles depsFiles renderModules)
149 liftIO (D.parseAndDesugar inputFiles depsFiles renderModules)
150− >>= either (userError . ParseAndDesugarError) return
150+ >>= either (userError . CompileError) return
151 where
151 where
152 renderModules bookmarks modules =
152 renderModules bookmarks modules =
153 return (bookmarks, map D.convertModule modules)
153 return (bookmarks, map D.convertModule modules)
src/Language/PureScript/Publish/ErrorsWarnings.hs+3−14
@@ -33,7 +33,6 @@ import Web.Bower.PackageMeta (BowerError, PackageName, runPackageName, showBower
33import qualified Web.Bower.PackageMeta as Bower
33import qualified Web.Bower.PackageMeta as Bower
34
34
35import qualified Language.PureScript as P
35import qualified Language.PureScript as P
36−import qualified Language.PureScript.Docs as D
37
36
38import Language.PureScript.Publish.BoxesHelpers
37import Language.PureScript.Publish.BoxesHelpers
39
38
@@ -61,7 +60,7 @@ data UserError
61 | AmbiguousVersions [Version] -- Invariant: should contain at least two elements
60 | AmbiguousVersions [Version] -- Invariant: should contain at least two elements
62 | BadRepositoryField RepositoryFieldError
61 | BadRepositoryField RepositoryFieldError
63 | MissingDependencies (NonEmpty PackageName)
62 | MissingDependencies (NonEmpty PackageName)
64− | ParseAndDesugarError D.ParseDesugarError
63+ | CompileError P.MultipleErrors
65 | DirtyWorkingTree
64 | DirtyWorkingTree
66 deriving (Show)
65 deriving (Show)
67
66
@@ -188,19 +187,9 @@ displayUserError e = case e of
188 [ "Please install ", them, " first, by running `bower install`."
187 [ "Please install ", them, " first, by running `bower install`."
189 ])
188 ])
190 ]
189 ]
191− ParseAndDesugarError (D.ParseError err) ->
190+ CompileError err ->
192 vcat
191 vcat
193− [ para "Parse error:"
192+ [ para "Compile error:"
194− , indented (P.prettyPrintMultipleErrorsBox False err)
195− ]
196− ParseAndDesugarError (D.SortModulesError err) ->
197− vcat
198− [ para "Error in sortModules:"
199− , indented (P.prettyPrintMultipleErrorsBox False err)
200− ]
201− ParseAndDesugarError (D.DesugarError err) ->
202− vcat
203− [ para "Error while desugaring:"
204 , indented (P.prettyPrintMultipleErrorsBox False err)
193 , indented (P.prettyPrintMultipleErrorsBox False err)
205 ]
194 ]
206 DirtyWorkingTree ->
195 DirtyWorkingTree ->