I've investigated a bit more. You are right `typeHasFixedRuntimeRep` works fine, the panic was caused by querying the representation type of `LitRubbish` type argument. In some cases `getRuntimeRep` causes GHC panic for `LitRubbish` type arguments.
I did solve the issue with special casing the LitRubbish type argument handling by using only the `runtimeRepPrimRep` function. In the general case I tested the type with `isUnboxedTupleType` and `isUnboxedSumType` which rely on `getRuntimeRep`.
Thanks for the tips and feedback.
Regards,
Csaba

On Wed, Sep 14, 2022 at 6:44 PM Sam Derbyshire <sam.derbyshire@gmail.com> wrote:
Hmm, that's strange, both isTypeLevPoly and typeHasFixedRuntimeRep have the same precondition: the kind of the type is of the form TYPE rep. So they should panic in the same circumstances. Can you give a bit more information? What panics are you running into?

On Wed, 14 Sept 2022 at 18:40, Csaba Hruska <csaba.hruska@gmail.com> wrote:
Hi,
Thanks for the tip, I've tried it and it behaves differently than isTypeLevPoly. I can get panic when querying the reptype for fixed reptypes. That means isTypeLevPoly semantically is not the same as the negated result of typeHasFixedRuntimeRep.

On Wed, 14 Sep 2022, 18:19 Sam Derbyshire, <sam.derbyshire@gmail.com> wrote:
Hi Csaba,

I think you want the function typeHasFixedRuntimeRep from GHC.Core.Type.

Best,

Sam

On Wed, 14 Sept 2022 at 18:12, Csaba Hruska <csaba.hruska@gmail.com> wrote:
Hello GHC Devs,

I've noticed that the `isTypeLevPoly` function has been removed from GHC since 9.4.
I used it to decide the validity of querying the representation type of every value in the STG IR.
It was mandatory to prevent GHC panics, because there are a lot of partial functions in GHC.
Is there an alternative to `isTypeLevPoly` in GHC 9.4?

Best regards,
Csaba Hruska
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs