TypeUpdating: Fix heap type updates on heap type children #7848
+67
−11
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::getTempType
had the right logic to handle aType, which included the right logic to handle the HeapType of a
Type: Look in
typeIndices
and 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.h
are 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.