[project @ 2003-10-27 14:04:28 by simonpj]
authorsimonpj <unknown>
Mon, 27 Oct 2003 14:04:28 +0000 (14:04 +0000)
committersimonpj <unknown>
Mon, 27 Oct 2003 14:04:28 +0000 (14:04 +0000)
Eliminate bogus warning

ghc/compiler/coreSyn/Subst.lhs

index 2fba197..dee369c 100644 (file)
@@ -43,6 +43,7 @@ import CoreSyn                ( Expr(..), Bind(..), Note(..), CoreExpr,
                          Unfolding(..)
                        )
 import CoreFVs         ( exprFreeVars )
+import CoreUtils       ( exprIsTrivial )
 import TypeRep         ( Type(..), TyNote(..) )  -- friend
 import Type            ( ThetaType, PredType(..), 
                          tyVarsOfType, tyVarsOfTypes, mkAppTy, 
@@ -798,8 +799,10 @@ substWorker subst (HasWorker w a)
   = case lookupIdSubst subst w of
        (DoneId w1 _)     -> HasWorker w1 a
        (DoneEx (Var w1)) -> HasWorker w1 a
-       (DoneEx other)    -> WARN( True, text "substWorker: DoneEx" <+> ppr w )
+       (DoneEx other)    -> WARN( not (exprIsTrivial other), text "substWorker: DoneEx" <+> ppr w )
                                  NoWorker      -- Worker has got substituted away altogether
+                                               -- This can happen if it's trivial, 
+                                               -- via postInlineUnconditionally
        (ContEx se1 e)    -> WARN( True, text "substWorker: ContEx" <+> ppr w <+> ppr e)
                                  NoWorker      -- Ditto