From: simonpj@microsoft.com Date: Thu, 23 Sep 2010 11:13:56 +0000 (+0000) Subject: Allow absent State# RealWorld arguments X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=21b05036b6659aa3370f76c24c0e08e7a31f302b Allow absent State# RealWorld arguments --- 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