X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fstranal%2FWwLib.lhs;fp=compiler%2Fstranal%2FWwLib.lhs;h=e7d0edf0f8c24f7c01f8047962cadc5fdb5f7c81;hp=7d78416bb3a335fafc88c62098dcdfa39cec17de;hb=21b05036b6659aa3370f76c24c0e08e7a31f302b;hpb=66413c79385a5b30a668e91789b8a334f6977ca9 diff --git a/compiler/stranal/WwLib.lhs b/compiler/stranal/WwLib.lhs index 7d78416..e7d0edf 100644 --- a/compiler/stranal/WwLib.lhs +++ b/compiler/stranal/WwLib.lhs @@ -20,6 +20,7 @@ import Demand ( Demand(..), DmdResult(..), Demands(..) ) import MkCore ( mkRuntimeErrorApp, aBSENT_ERROR_ID ) import MkId ( realWorldPrimId, voidArgId, mkUnpackCase, mkProductBox ) +import TysPrim ( realWorldStatePrimTy ) import TysWiredIn ( tupleCon ) import Type import Coercion ( mkSymCoercion, splitNewTypeRepCo_maybe ) @@ -524,8 +525,10 @@ mk_absent_let arg | Just (tc, _) <- splitTyConApp_maybe arg_ty , Just lit <- absentLiteralOf tc = Just (Let (NonRec arg (Lit lit))) + | arg_ty `coreEqType` realWorldStatePrimTy + = Just (Let (NonRec arg (Var realWorldPrimId))) | otherwise - = WARN( True, ptext (sLit "No asbent value for") <+> ppr arg_ty ) + = WARN( True, ptext (sLit "No absent value for") <+> ppr arg_ty ) Nothing where arg_ty = idType arg