Skip to content

Fix pending enum layout - #89

Merged
jcmosc merged 4 commits into
mainfrom
fix-pending-enum-layout
Oct 23, 2026
Merged

jcmosc merged 4 commits into
mainfrom
fix-pending-enum-layout

Conversation

@jcmosc

@jcmosc jcmosc commented Oct 22, 2026

Copy link
Copy Markdown
Owner

No description provided.

jcmosc and others added 4 commits October 22, 2026 18:43
Case items share the enum item's offset space, and the comparison starts
each case at the enum's offset. Starting the case emitter at 0 encoded an
extra skip equal to the enum's offset, so enums laid out inline at a
nonzero offset compared the wrong bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Match AttributeGraph: an enum's layout is invalid if any case's children
are invalid, not only when a case extends past the enum's size.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The field is the offset in the value up to which layout entries have been
emitted, not a size.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nding

A synchronous layout build that finds a nested enum's layout still queued
visits the enum inline at a nonzero offset. Check that values differing in
an enum payload still compare unequal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jcmosc
jcmosc merged commit 001a69b into main Oct 23, 2026
2 checks passed
@jcmosc
jcmosc deleted the fix-pending-enum-layout branch October 24, 2026 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant