diff --git a/ghc/compiler/coreSyn/CoreUnfold.lhs b/ghc/compiler/coreSyn/CoreUnfold.lhs index 480edbb50548afb1f87b943da8fd333949f76bd4..02db3cbf640096b0b87e04c37ec00c0198753a8d 100644 --- a/ghc/compiler/coreSyn/CoreUnfold.lhs +++ b/ghc/compiler/coreSyn/CoreUnfold.lhs @@ -466,7 +466,8 @@ okToUnfoldInHiFile e = opt_UnfoldCasms || go e go (App fun arg) = go fun && go arg go (Lam _ body) = go body go (Let binds body) = and (map go (body :rhssOfBind binds)) - go (Case scrut bndr alts) = and (map go (scrut:rhssOfAlts alts)) + go (Case scrut bndr alts) = and (map go (scrut:rhssOfAlts alts)) && + not (any isLitLitLit [ lit | (LitAlt lit, _, _) <- alts ]) go (Note _ body) = go body go (Type _) = True