git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #1658 from purescript/error-context
f8fff2dGary Burgess
src/Language/PureScript/Sugar/Names/Imports.hs+3−3
@@ -31,7 +31,7 @@ import Data.Foldable (traverse_, for_)
31import Control.Arrow (first)
31import Control.Arrow (first)
32import Control.Monad
32import Control.Monad
33import Control.Monad.Error.Class (MonadError(..))
33import Control.Monad.Error.Class (MonadError(..))
34−import Control.Monad.Writer (MonadWriter(..), censor)
34+import Control.Monad.Writer (MonadWriter(..))
35
35
36import qualified Data.Map as M
36import qualified Data.Map as M
37
37
@@ -53,7 +53,7 @@ findImports = foldM (go Nothing) M.empty
53 checkImportRefType typ
53 checkImportRefType typ
54 let imp = (pos, typ, qual)
54 let imp = (pos, typ, qual)
55 return $ M.insert mn (maybe [imp] (imp :) (mn `M.lookup` result)) result
55 return $ M.insert mn (maybe [imp] (imp :) (mn `M.lookup` result)) result
56− go _ result (PositionedDeclaration pos _ d) = rethrowWithPosition pos $ go (Just pos) result d
56+ go _ result (PositionedDeclaration pos _ d) = warnAndRethrowWithPosition pos $ go (Just pos) result d
57 go _ result _ = return result
57 go _ result _ = return result
58
58
59 -- Ensure that classes don't appear in an `import X hiding (...)`
59 -- Ensure that classes don't appear in an `import X hiding (...)`
@@ -69,7 +69,7 @@ findImports = foldM (go Nothing) M.empty
69--
69--
70resolveImports :: (Applicative m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => Env -> Module -> m Imports
70resolveImports :: (Applicative m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => Env -> Module -> m Imports
71resolveImports env (Module _ _ currentModule decls _) =
71resolveImports env (Module _ _ currentModule decls _) =
72− censor (addHint (ErrorInModule currentModule)) $ do
72+ warnAndRethrow (addHint (ErrorInModule currentModule)) $ do
73 imports <- findImports decls
73 imports <- findImports decls
74
74
75 for_ (M.toList imports) $ \(mn, imps) -> do
75 for_ (M.toList imports) $ \(mn, imps) -> do