X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fstranal%2FWwLib.lhs;h=e7d0edf0f8c24f7c01f8047962cadc5fdb5f7c81;hb=edc0bafd3fcd01b85a2e8894e5dfe149eb0e0857;hp=7d78416bb3a335fafc88c62098dcdfa39cec17de;hpb=8ddee6152c215e8e8ee1cbfff3481ea5bc062305;p=ghc-hetmet.git 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