@@ -51,7 +51,7 @@ addDataType moduleName dtype name args dctors ctorKind = do
5151 env <- getEnv
5252 putEnv $ env { types = M. insert (Qualified (Just moduleName) name) (ctorKind, DataType args dctors) (types env) }
5353 forM_ dctors $ \ (dctor, tys) ->
54- rethrow (onErrorMessages (ErrorInDataConstructor dctor)) $
54+ warnAndRethrow (onErrorMessages (ErrorInDataConstructor dctor)) $
5555 addDataConstructor moduleName dtype name (map fst args) dctor tys
5656
5757addDataConstructor :: ModuleName -> DataDeclType -> ProperName -> [String ] -> ProperName -> [Type ] -> Check ()
@@ -137,7 +137,7 @@ typeCheckAll mainModuleName moduleName _ ds = mapM go ds <* mapM_ checkOrphanFix
137137 where
138138 go :: Declaration -> Check Declaration
139139 go (DataDeclaration dtype name args dctors) = do
140- rethrow (onErrorMessages (ErrorInTypeConstructor name)) $ do
140+ warnAndRethrow (onErrorMessages (ErrorInTypeConstructor name)) $ do
141141 when (dtype == Newtype ) $ checkNewtype dctors
142142 checkDuplicateTypeArguments $ map fst args
143143 ctorKind <- kindsOf True moduleName name args (concatMap snd dctors)
@@ -150,7 +150,7 @@ typeCheckAll mainModuleName moduleName _ ds = mapM go ds <* mapM_ checkOrphanFix
150150 checkNewtype [(_, _)] = throwError . errorMessage $ InvalidNewtype
151151 checkNewtype _ = throwError . errorMessage $ InvalidNewtype
152152 go (d@ (DataBindingGroupDeclaration tys)) = do
153- rethrow (onErrorMessages ErrorInDataBindingGroup ) $ do
153+ warnAndRethrow (onErrorMessages ErrorInDataBindingGroup ) $ do
154154 let syns = mapMaybe toTypeSynonym tys
155155 let dataDecls = mapMaybe toDataDecl tys
156156 (syn_ks, data_ks) <- kindsOfAll moduleName syns (map (\ (_, name, args, dctors) -> (name, args, concatMap snd dctors)) dataDecls)
@@ -171,22 +171,22 @@ typeCheckAll mainModuleName moduleName _ ds = mapM go ds <* mapM_ checkOrphanFix
171171 toDataDecl (PositionedDeclaration _ _ d') = toDataDecl d'
172172 toDataDecl _ = Nothing
173173 go (TypeSynonymDeclaration name args ty) = do
174- rethrow (onErrorMessages (ErrorInTypeSynonym name)) $ do
174+ warnAndRethrow (onErrorMessages (ErrorInTypeSynonym name)) $ do
175175 checkDuplicateTypeArguments $ map fst args
176176 kind <- kindsOf False moduleName name args [ty]
177177 let args' = args `withKinds` kind
178178 addTypeSynonym moduleName name args' ty kind
179179 return $ TypeSynonymDeclaration name args ty
180180 go (TypeDeclaration {}) = error " Type declarations should have been removed"
181181 go (ValueDeclaration name nameKind [] (Right val)) =
182- rethrow (onErrorMessages (ErrorInValueDeclaration name)) $ do
182+ warnAndRethrow (onErrorMessages (ErrorInValueDeclaration name)) $ do
183183 valueIsNotDefined moduleName name
184184 [(_, (val', ty))] <- typesOf mainModuleName moduleName [(name, val)]
185185 addValue moduleName name ty nameKind
186186 return $ ValueDeclaration name nameKind [] $ Right val'
187187 go (ValueDeclaration {}) = error " Binders were not desugared"
188188 go (BindingGroupDeclaration vals) =
189- rethrow (onErrorMessages (ErrorInBindingGroup (map (\ (ident, _, _) -> ident) vals))) $ do
189+ warnAndRethrow (onErrorMessages (ErrorInBindingGroup (map (\ (ident, _, _) -> ident) vals))) $ do
190190 forM_ (map (\ (ident, _, _) -> ident) vals) $ \ name ->
191191 valueIsNotDefined moduleName name
192192 tys <- typesOf mainModuleName moduleName $ map (\ (ident, _, ty) -> (ident, ty)) vals
@@ -203,7 +203,7 @@ typeCheckAll mainModuleName moduleName _ ds = mapM go ds <* mapM_ checkOrphanFix
203203 putEnv $ env { types = M. insert (Qualified (Just moduleName) name) (kind, ExternData ) (types env) }
204204 return d
205205 go (d@ (ExternDeclaration name ty)) = do
206- rethrow (onErrorMessages (ErrorInForeignImport name)) $ do
206+ warnAndRethrow (onErrorMessages (ErrorInForeignImport name)) $ do
207207 env <- getEnv
208208 kind <- kindOf moduleName ty
209209 guardWith (errorMessage (ExpectedType kind)) $ kind == Star
@@ -224,14 +224,14 @@ typeCheckAll mainModuleName moduleName _ ds = mapM go ds <* mapM_ checkOrphanFix
224224 go (d@ (ExternInstanceDeclaration dictName deps className tys)) =
225225 goInstance d dictName deps className tys
226226 go (PositionedDeclaration pos com d) =
227- rethrowWithPosition pos $ PositionedDeclaration pos com <$> go d
227+ warnAndRethrowWithPosition pos $ PositionedDeclaration pos com <$> go d
228228
229229 checkOrphanFixities :: Declaration -> Check ()
230230 checkOrphanFixities (FixityDeclaration _ name) = do
231231 env <- getEnv
232232 guardWith (errorMessage (OrphanFixityDeclaration name)) $ M. member (moduleName, Op name) $ names env
233233 checkOrphanFixities (PositionedDeclaration pos _ d) =
234- rethrowWithPosition pos $ checkOrphanFixities d
234+ warnAndRethrowWithPosition pos $ checkOrphanFixities d
235235 checkOrphanFixities _ = return ()
236236
237237 goInstance :: Declaration -> Ident -> [Constraint ] -> Qualified ProperName -> [Type ] -> Check Declaration
@@ -274,7 +274,7 @@ typeCheckAll mainModuleName moduleName _ ds = mapM go ds <* mapM_ checkOrphanFix
274274--
275275typeCheckModule :: Maybe ModuleName -> Module -> Check Module
276276typeCheckModule _ (Module _ _ _ _ Nothing ) = error " exports should have been elaborated"
277- typeCheckModule mainModuleName (Module ss coms mn decls (Just exps)) = rethrow (onErrorMessages (ErrorInModule mn)) $ do
277+ typeCheckModule mainModuleName (Module ss coms mn decls (Just exps)) = warnAndRethrow (onErrorMessages (ErrorInModule mn)) $ do
278278 modify (\ s -> s { checkCurrentModule = Just mn })
279279 decls' <- typeCheckAll mainModuleName mn exps decls
280280 forM_ exps $ \ e -> do
0 commit comments