You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A field of a union of same-layout object types is read from the base type (#384)
`s.kind` / `s.r` on `s: { kind: "circle", r: number } | { kind: "square", r:
number }` failed verification: "'ts.PropertyRef' op operand #0 must be ...
tuple reference type ... but got '!ts.ref<!ts.union<...>>'". Such a union
needs no tag and is stored as its base type, and property access switched to
that type (actualType = baseType), but the value it accessed stayed the union,
and MLIRPropertyAccessCodeLogic still held the original expression: the tuple
accessor read the field through the union's reference.
The value is now cast to the base type, and the access logic is given it
(MLIRPropertyAccessCodeLogic::setExpression). Found in the #231 review.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
0 commit comments