From 1baf9181713e4aad911cbd82e88b509b6bacb7e8 Mon Sep 17 00:00:00 2001 From: simonpj Date: Wed, 29 Oct 2003 18:10:14 +0000 Subject: [PATCH] [project @ 2003-10-29 18:10:14 by simonpj] Squish bogus warning --- ghc/compiler/stranal/DmdAnal.lhs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ghc/compiler/stranal/DmdAnal.lhs b/ghc/compiler/stranal/DmdAnal.lhs index fe588f0..2c6f394 100644 --- a/ghc/compiler/stranal/DmdAnal.lhs +++ b/ghc/compiler/stranal/DmdAnal.lhs @@ -17,7 +17,7 @@ import CmdLineOpts ( DynFlags, DynFlag(..), opt_MaxWorkerArgs ) import NewDemand -- All of it import CoreSyn import PprCore -import CoreUtils ( exprIsValue, exprArity ) +import CoreUtils ( exprIsValue, exprIsTrivial, exprArity ) import DataCon ( dataConTyCon ) import TyCon ( isProductTyCon, isRecursiveTyCon ) import Id ( Id, idType, idInlinePragma, @@ -415,7 +415,9 @@ dmdAnalRhs top_lvl rec_flag sigs (id, rhs) arity = idArity id -- The idArity should be up to date -- The simplifier was run just beforehand (rhs_dmd_ty, rhs') = dmdAnal sigs (vanillaCall arity) rhs - (lazy_fv, sig_ty) = WARN( arity /= dmdTypeDepth rhs_dmd_ty, ppr id ) + (lazy_fv, sig_ty) = WARN( arity /= dmdTypeDepth rhs_dmd_ty && not (exprIsTrivial rhs), ppr id ) + -- The RHS can be eta-reduced to just a variable, + -- in which case we should not complain. mkSigTy top_lvl rec_flag id rhs rhs_dmd_ty id' = id `setIdNewStrictness` sig_ty sigs' = extendSigEnv top_lvl sigs id sig_ty -- 1.7.10.4