From 9ebd6baeb3955a9f3daa9b57a3d1b8f3b328893d Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Thu, 27 Jul 2006 15:50:09 +0000 Subject: [PATCH] Lazy patterns are like wild-cards for overlap warnings MERGE TO STABLE Fixes Trac #827 Test is should_compiler/ds058 --- compiler/deSugar/Check.lhs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/deSugar/Check.lhs b/compiler/deSugar/Check.lhs index 9aac5ce..097a008 100644 --- a/compiler/deSugar/Check.lhs +++ b/compiler/deSugar/Check.lhs @@ -623,7 +623,8 @@ simplify_pat pat@(WildPat gt) = pat simplify_pat (VarPat id) = WildPat (idType id) simplify_pat (VarPatOut id _) = WildPat (idType id) -- Ignore the bindings simplify_pat (ParPat p) = unLoc (simplify_lpat p) -simplify_pat (LazyPat p) = unLoc (simplify_lpat p) +simplify_pat (LazyPat p) = WildPat (hsPatType p) -- For overlap and exhaustiveness checking + -- purposes, a ~pat is like a wildcard simplify_pat (BangPat p) = unLoc (simplify_lpat p) simplify_pat (AsPat id p) = unLoc (simplify_lpat p) simplify_pat (SigPatOut p _) = unLoc (simplify_lpat p) -- I'm not sure this is right -- 1.7.10.4