on master help sign in
Switch Nitpick/ over to Data.Name (annotations only)
ea403e7Evan Czaplicki
compiler/src/Nitpick/PatternMatches.hs+14−14
@@ -25,7 +25,7 @@ import Data.Utf8 (Utf8)
25import qualified AST.Canonical as Can
25import qualified AST.Canonical as Can
26import qualified AST.Module.Name as ModuleName
26import qualified AST.Module.Name as ModuleName
27import qualified Data.Index as Index
27import qualified Data.Index as Index
28−import qualified Elm.Name as N
28+import qualified Data.Name as Name
29import qualified Reporting.Annotation as A
29import qualified Reporting.Annotation as A
30import qualified Reporting.Region as R
30import qualified Reporting.Region as R
31
31
@@ -37,7 +37,7 @@ import qualified Reporting.Region as R
37data Pattern
37data Pattern
38 = Anything
38 = Anything
39 | Literal Literal
39 | Literal Literal
40− | Ctor Can.Union N.Name [Pattern]
40+ | Ctor Can.Union Name.Name [Pattern]
41
41
42
42
43data Literal
43data Literal
@@ -95,7 +95,7 @@ simplify (A.At _ pattern) =
95 Literal (Chr chr)
95 Literal (Chr chr)
96
96
97 Can.PBool union bool ->
97 Can.PBool union bool ->
98− Ctor union (if bool then N.true else N.false) []
98+ Ctor union (if bool then Name.true else Name.false) []
99
99
100
100
101cons :: Can.Pattern -> Pattern -> Pattern
101cons :: Can.Pattern -> Pattern -> Pattern
@@ -153,34 +153,34 @@ list =
153 consCtor =
153 consCtor =
154 Can.Ctor consName Index.second 2
154 Can.Ctor consName Index.second 2
155 [ Can.TVar "a"
155 [ Can.TVar "a"
156− , Can.TType ModuleName.list N.list [Can.TVar "a"]
156+ , Can.TType ModuleName.list Name.list [Can.TVar "a"]
157 ]
157 ]
158 in
158 in
159 Can.Union ["a"] [ nilCtor, consCtor ] 2 Can.Normal
159 Can.Union ["a"] [ nilCtor, consCtor ] 2 Can.Normal
160
160
161
161
162{-# NOINLINE unitName #-}
162{-# NOINLINE unitName #-}
163−unitName :: N.Name
163+unitName :: Name.Name
164unitName = "#0"
164unitName = "#0"
165
165
166
166
167{-# NOINLINE pairName #-}
167{-# NOINLINE pairName #-}
168−pairName :: N.Name
168+pairName :: Name.Name
169pairName = "#2"
169pairName = "#2"
170
170
171
171
172{-# NOINLINE tripleName #-}
172{-# NOINLINE tripleName #-}
173−tripleName :: N.Name
173+tripleName :: Name.Name
174tripleName = "#3"
174tripleName = "#3"
175
175
176
176
177{-# NOINLINE consName #-}
177{-# NOINLINE consName #-}
178−consName :: N.Name
178+consName :: Name.Name
179consName = "::"
179consName = "::"
180
180
181
181
182{-# NOINLINE nilName #-}
182{-# NOINLINE nilName #-}
183−nilName :: N.Name
183+nilName :: Name.Name
184nilName = "[]"
184nilName = "[]"
185
185
186
186
@@ -458,7 +458,7 @@ isExhaustive matrix n =
458 concatMap isAltExhaustive altList
458 concatMap isAltExhaustive altList
459
459
460
460
461−isMissing :: Can.Union -> Map.Map N.Name a -> Can.Ctor -> Maybe Pattern
461+isMissing :: Can.Union -> Map.Map Name.Name a -> Can.Ctor -> Maybe Pattern
462isMissing union ctors (Can.Ctor name _ arity _) =
462isMissing union ctors (Can.Ctor name _ arity _) =
463 if Map.member name ctors then
463 if Map.member name ctors then
464 Nothing
464 Nothing
@@ -466,7 +466,7 @@ isMissing union ctors (Can.Ctor name _ arity _) =
466 Just (Ctor union name (replicate arity Anything))
466 Just (Ctor union name (replicate arity Anything))
467
467
468
468
469−recoverCtor :: Can.Union -> N.Name -> Int -> [Pattern] -> [Pattern]
469+recoverCtor :: Can.Union -> Name.Name -> Int -> [Pattern] -> [Pattern]
470recoverCtor union name arity patterns =
470recoverCtor union name arity patterns =
471 let
471 let
472 (args, rest) =
472 (args, rest) =
@@ -552,7 +552,7 @@ isUseful matrix vector =
552
552
553
553
554-- INVARIANT: (length row == N) ==> (length result == arity + N - 1)
554-- INVARIANT: (length row == N) ==> (length result == arity + N - 1)
555−specializeRowByCtor :: N.Name -> Int -> [Pattern] -> Maybe [Pattern]
555+specializeRowByCtor :: Name.Name -> Int -> [Pattern] -> Maybe [Pattern]
556specializeRowByCtor ctorName arity row =
556specializeRowByCtor ctorName arity row =
557 case row of
557 case row of
558 Ctor _ name args : patterns ->
558 Ctor _ name args : patterns ->
@@ -638,12 +638,12 @@ isComplete matrix =
638-- COLLECT CTORS
638-- COLLECT CTORS
639
639
640
640
641−collectCtors :: [[Pattern]] -> Map.Map N.Name Can.Union
641+collectCtors :: [[Pattern]] -> Map.Map Name.Name Can.Union
642collectCtors matrix =
642collectCtors matrix =
643 List.foldl' collectCtorsHelp Map.empty matrix
643 List.foldl' collectCtorsHelp Map.empty matrix
644
644
645
645
646−collectCtorsHelp :: Map.Map N.Name Can.Union -> [Pattern] -> Map.Map N.Name Can.Union
646+collectCtorsHelp :: Map.Map Name.Name Can.Union -> [Pattern] -> Map.Map Name.Name Can.Union
647collectCtorsHelp ctors row =
647collectCtorsHelp ctors row =
648 case row of
648 case row of
649 Ctor union name _ : _ ->
649 Ctor union name _ : _ ->