git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Recurse into case expressions when checking exhaustivity
93fd3b7Phil Freeman
.gitignore+1
@@ -15,3 +15,4 @@ node_modules
15tmp/
15tmp/
16.stack-work/
16.stack-work/
17tests/support/flattened/
17tests/support/flattened/
18+output
src/Language/PureScript/Linter/Exhaustive.hs+1−1
@@ -292,7 +292,7 @@ checkExhaustiveDecls env mn = mapM_ onDecl
292 onExpr (Abs _ e) = onExpr e
292 onExpr (Abs _ e) = onExpr e
293 onExpr (App e1 e2) = onExpr e1 >> onExpr e2
293 onExpr (App e1 e2) = onExpr e1 >> onExpr e2
294 onExpr (IfThenElse e1 e2 e3) = onExpr e1 >> onExpr e2 >> onExpr e3
294 onExpr (IfThenElse e1 e2 e3) = onExpr e1 >> onExpr e2 >> onExpr e3
295− onExpr (Case es cas) = checkExhaustive env mn (length es) cas >> mapM_ onCaseAlternative cas
295+ onExpr (Case es cas) = checkExhaustive env mn (length es) cas >> mapM_ onExpr es >> mapM_ onCaseAlternative cas
296 onExpr (TypedValue _ e _) = onExpr e
296 onExpr (TypedValue _ e _) = onExpr e
297 onExpr (Let ds e) = mapM_ onDecl ds >> onExpr e
297 onExpr (Let ds e) = mapM_ onDecl ds >> onExpr e
298 onExpr (PositionedValue pos _ e) = censor (addHint (PositionedError pos)) (onExpr e)
298 onExpr (PositionedValue pos _ e) = censor (addHint (PositionedError pos)) (onExpr e)