[M3devel] narrow still failing..
mika at async.caltech.edu
mika at async.caltech.edu
Wed Jan 22 21:47:49 CET 2014
Aha so declaring the type as <: ROOT will probably work as a workaround?
Thank you for looking into this.
"Rodney M. Bates" writes:
>Some more info:
>
>The front end is generating incorrect narrow code, only
>where the type T is an unrevealed <: REFANY. When T and Root
>are known, it calls RTHooks.CheckIsType for ISTYPE, NARROW,
>and implicit narrow in an assignment.
>
>When opaque, for explicit and implicit narrow, it simply compares
>the typecode of x to a single typecode (no doubt for T) and demands
>they be equal. In this case, the actual allocated type of x is Root,
>a proper subtype of T.
>
>For ISTYPE, it does call CheckIsType even when the types are opaque.
>
>The fact that it happens only when the types are opaque lends
>credibility to the fact that this bug has gone unnoticed at least
>as far back as PM3.
More information about the M3devel
mailing list