TypeUpdating: Fix heap type updates on heap type children#7848
Merged
kripken merged 11 commits intoWebAssembly:mainfrom Aug 20, 2025
Merged
TypeUpdating: Fix heap type updates on heap type children#7848kripken merged 11 commits intoWebAssembly:mainfrom
kripken merged 11 commits intoWebAssembly:mainfrom
Conversation
tlively
approved these changes
Aug 20, 2025
Comment on lines
+1327
to
+1329
| // XXX This will not scan HeapType children that are not also children of | ||
| // Type children, which happens with Continuation (has a HeapType | ||
| // child that is not a Type). |
Member
There was a problem hiding this comment.
It's unclear to me whether this is a problem that needs to be fixed or just a helpful note to inform any future changes.
Member
Author
There was a problem hiding this comment.
I think this will be a problem if we have features that depend on it. Atm I think we don't.
I was just auditing this code and realized that this was a potential future bug. And, regardless, the right thing here is to scan heap types, not types.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GlobalTypeRewriter::getTempTypehad the right logic to handle aType, which included the right logic to handle the HeapType of a
Type: Look in
typeIndicesand use that mapping if it is present. Weneed the same thing for HeapTypes as well, which this adds in a
new
getTempHeapType.This was not noticed before because Continuations are the first
thing to have a direct HeapType child which is not through a Type.
So Types worked before, but not direct HeapType children, which
ended up mapped to the old type before the rewriting.
Changes to
wasm-type.hare NFC but I think make it easier to read,as it makes that logic entirely parallel to the lines above it.
One existing test has an update, which fixes it by removing the
ref to the old type.