diff options
| author | aarne <aarne@cs.chalmers.se> | 2009-04-06 14:07:22 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2009-04-06 14:07:22 +0000 |
| commit | c7376c78a99ef702486c77eda240104e7856b83c (patch) | |
| tree | cc4cb5187de4add62f3a8d3f11dc969bd6544b09 /src | |
| parent | 203d02ef34f66c04c082c5db55378c4450e2f671 (diff) | |
warning for overshadowed patterns, temporal solution
Diffstat (limited to 'src')
| -rw-r--r-- | src/GF/Compile/CheckGrammar.hs | 7 | ||||
| -rw-r--r-- | src/GF/Grammar/PatternMatch.hs | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs index 61c361199..47434d74e 100644 --- a/src/GF/Compile/CheckGrammar.hs +++ b/src/GF/Compile/CheckGrammar.hs @@ -774,8 +774,11 @@ checkLType env trm typ0 = do ps <- checkErr $ testOvershadow ps0 vs if null ps then return () - else checkWarn $ "WARNING: patterns never reached:" +++ - concat (intersperse ", " (map prt ps)) +---- else checkWarn $ "WARNING: patterns never reached:" +++ +---- concat (intersperse ", " (map prt ps)) + else trace ("WARNING: patterns never reached:" +++ + concat (intersperse ", " (map prt ps))) (return ()) +---- AR 6/4/2009: checkWarn doesn't show because of laziness (?) _ -> return () -- happens with variable types cs' <- mapM (checkCase arg val) cs diff --git a/src/GF/Grammar/PatternMatch.hs b/src/GF/Grammar/PatternMatch.hs index ba3139506..021735c79 100644 --- a/src/GF/Grammar/PatternMatch.hs +++ b/src/GF/Grammar/PatternMatch.hs @@ -55,7 +55,7 @@ testOvershadow pts vs = do let numpts = zip pts [0..] let cases = [(p,EInt i) | (p,i) <- numpts] ts <- mapM (liftM fst . matchPattern cases) vs - return $ [p | (p,i) <- numpts, notElem i [i | EInt i <- ts] ] + return [p | (p,i) <- numpts, notElem i [i | EInt i <- ts] ] findMatch :: [([Patt],Term)] -> [Term] -> Err (Term, Substitution) findMatch cases terms = case cases of |
