@@ -17,15 +17,15 @@ import qualified AST.Variable as Var
1717import Elm.Utils ((|>))
1818import Nitpick.Pattern (Pattern(..), fromCanonicalPattern)
1919import qualified Reporting.Annotation as A
20+import qualified Reporting.Error.Pattern as Error
2021import qualified Reporting.Region as Region
2122import qualified Reporting.Result as Result
22−import qualified Reporting.Warning as Warning
2323
2424
2525patternMatches
2626 :: Module.Interfaces
2727 -> Module.CanonicalModule
28− -> Result.Result Warning.Warning e ()
28+ -> Result.Result w Error.Error ()
2929patternMatches interfaces modul =
3030 let
3131 name = Module.name modul
@@ -102,7 +102,7 @@ lookupOtherTags (Var.Canonical home name) tagDict =
102102checkExpression
103103 :: TagDict
104104 -> Canonical.Expr
105− -> Result.Result Warning.Warning e ()
105+ -> Result.Result w Error.Error ()
106106checkExpression tagDict (A.A region expression) =
107107 let
108108 go =
@@ -188,7 +188,7 @@ checkPatterns
188188 :: TagDict
189189 -> Region.Region
190190 -> [Pattern.CanonicalPattern]
191− -> Result.Result Warning.Warning e ()
191+ -> Result.Result w Error.Error ()
192192checkPatterns tagDict region patterns =
193193 checkPatternsHelp tagDict region [Anything] patterns
194194
@@ -198,14 +198,14 @@ checkPatternsHelp
198198 -> Region.Region
199199 -> [Pattern]
200200 -> [Pattern.CanonicalPattern]
201− -> Result.Result Warning.Warning e ()
201+ -> Result.Result w Error.Error ()
202202checkPatternsHelp tagDict region unhandled patterns =
203203 case (unhandled, patterns) of
204204 ([], []) ->
205205 return ()
206206
207207 (_:_, []) ->
208− Result.warn region (Warning.InexhaustivePatternMatch unhandled)
208+ Result.throw region (Error.Incomplete unhandled)
209209
210210 (_, pattern@(A.A localRegion _) : remainingPatterns) ->
211211 do newUnhandled <- filterPatterns tagDict localRegion pattern unhandled
@@ -217,7 +217,7 @@ filterPatterns
217217 -> Region.Region
218218 -> Pattern.CanonicalPattern
219219 -> [Pattern]
220− -> Result.Result Warning.Warning e [Pattern]
220+ -> Result.Result w Error.Error [Pattern]
221221filterPatterns tagDict region pattern unhandled =
222222 let
223223 nitPattern =
@@ -227,8 +227,8 @@ filterPatterns tagDict region pattern unhandled =
227227 intersection pat nitPattern == Nothing
228228 in
229229 if all noIntersection unhandled then
230− do Result.warn region Warning.RedundantPatternMatch
231− return unhandled
230+ Result.throw region Error.Redundant
231+
232232 else
233233 do let complementPatterns = complement tagDict nitPattern
234234 return $