Fixes to rubbish literals
- In CoreToStg, the application
RUBBISH[rep] x
was simplified toRUBBISH[rep]
. But it is possible that the result of the function is represented differently than the function. - In Unarise,
LitRubbish (primRepToType prep)
is incorrect:LitRubbish
takes aRuntimeRep
such asIntRep
, whileprimRepToType
returns a type such asAny @(TYPE IntRep)
. UseprimRepToRuntimeRep
instead. This code is never run in the testsuite. - In StgToByteCode, all rubbish literals were assumed to be boxed. This code predates representation-polymorphic
RubbishLit
and I think it was not updated.
I don't have a testcase for any of those issues, but the code looks wrong.