on master help sign in
Revert "Merge pull request #1470 from brianhempel/faster_builds"
4f5db92Evan Czaplicki
src/Nitpick/Pattern.hs+1−1
@@ -17,7 +17,7 @@ data Pattern
17 | Anything
17 | Anything
18 | Literal L.Literal
18 | Literal L.Literal
19 | AnythingBut (Set.Set L.Literal)
19 | AnythingBut (Set.Set L.Literal)
20− deriving (Eq, Ord)
20+ deriving (Eq)
21
21
22
22
23fromCanonicalPattern :: P.Canonical -> Pattern
23fromCanonicalPattern :: P.Canonical -> Pattern
src/Nitpick/PatternMatches.hs+11−12
@@ -209,25 +209,25 @@ checkExpression tagDict (A.A region expression) =
209
209
210checkPatterns :: TagDict -> Region.Region -> Error.Origin -> [Pattern.Canonical] -> Result wrn ()
210checkPatterns :: TagDict -> Region.Region -> Error.Origin -> [Pattern.Canonical] -> Result wrn ()
211checkPatterns tagDict region origin patterns =
211checkPatterns tagDict region origin patterns =
212− checkPatternsHelp tagDict region origin (Set.singleton Anything) patterns
212+ checkPatternsHelp tagDict region origin [Anything] patterns
213
213
214
214
215checkPatternsHelp
215checkPatternsHelp
216 :: TagDict
216 :: TagDict
217 -> Region.Region
217 -> Region.Region
218 -> Error.Origin
218 -> Error.Origin
219− -> Set.Set Pattern
219+ -> [Pattern]
220 -> [Pattern.Canonical]
220 -> [Pattern.Canonical]
221 -> Result wrn ()
221 -> Result wrn ()
222checkPatternsHelp tagDict region origin unhandled patterns =
222checkPatternsHelp tagDict region origin unhandled patterns =
223− case patterns of
223+ case (unhandled, patterns) of
224− [] ->
224+ ([], []) ->
225− if Set.size unhandled == 0 then
226− return ()
225+ return ()
227− else
226+
227+ (_:_, []) ->
228− Result.throw region (Error.Incomplete origin unhandled)
228+ Result.throw region (Error.Incomplete origin unhandled)
229
229
230− pattern@(A.A localRegion _) : remainingPatterns ->
230+ (_, pattern@(A.A localRegion _) : remainingPatterns) ->
231 do newUnhandled <- filterPatterns tagDict localRegion pattern unhandled
231 do newUnhandled <- filterPatterns tagDict localRegion pattern unhandled
232 checkPatternsHelp tagDict region origin newUnhandled remainingPatterns
232 checkPatternsHelp tagDict region origin newUnhandled remainingPatterns
233
233
@@ -236,8 +236,8 @@ filterPatterns
236 :: TagDict
236 :: TagDict
237 -> Region.Region
237 -> Region.Region
238 -> Pattern.Canonical
238 -> Pattern.Canonical
239− -> Set.Set Pattern
239+ -> [Pattern]
240− -> Result wrn (Set.Set Pattern)
240+ -> Result wrn [Pattern]
241filterPatterns tagDict region pattern unhandled =
241filterPatterns tagDict region pattern unhandled =
242 let
242 let
243 nitPattern =
243 nitPattern =
@@ -252,7 +252,6 @@ filterPatterns tagDict region pattern unhandled =
252 else
252 else
253 do let complementPatterns = complement tagDict nitPattern
253 do let complementPatterns = complement tagDict nitPattern
254 return $
254 return $
255− Set.fromList $
256 concatMap
255 concatMap
257 (\p -> Maybe.mapMaybe (intersection p) complementPatterns)
256 (\p -> Maybe.mapMaybe (intersection p) complementPatterns)
258 unhandled
257 unhandled
src/Reporting/Error/Pattern.hs+3−4
@@ -1,7 +1,6 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2module Reporting.Error.Pattern where
2module Reporting.Error.Pattern where
3
3
4−import qualified Data.Set as Set
5import Text.PrettyPrint.ANSI.Leijen (text)
4import Text.PrettyPrint.ANSI.Leijen (text)
6
5
7import qualified Nitpick.Pattern as Pattern
6import qualified Nitpick.Pattern as Pattern
@@ -12,7 +11,7 @@ import qualified Reporting.Report as Report
12
11
13
12
14data Error
13data Error
15− = Incomplete Origin (Set.Set Pattern.Pattern)
14+ = Incomplete Origin [Pattern.Pattern]
16 | Redundant
15 | Redundant
17
16
18
17
@@ -58,11 +57,11 @@ toReport _localizer err =
58 (text "Any value with this shape will be handled by a previous pattern.")
57 (text "Any value with this shape will be handled by a previous pattern.")
59
58
60
59
61−unhandledError :: Set.Set Pattern.Pattern -> String -> String
60+unhandledError :: [Pattern.Pattern] -> String -> String
62unhandledError unhandledPatterns relevantMessage =
61unhandledError unhandledPatterns relevantMessage =
63 let
62 let
64 (visiblePatterns, rest) =
63 (visiblePatterns, rest) =
65− splitAt 4 (Set.toList unhandledPatterns)
64+ splitAt 4 unhandledPatterns
66
65
67 patternList =
66 patternList =
68 map (Pattern.toString False) visiblePatterns
67 map (Pattern.toString False) visiblePatterns