fix: improper handling of inlined blocks in inline-blocks transform #86
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.
This patches the inline-blocks pass to ensure that inlined blocks are not visited multiple times by the inliner - once inlined, these blocks are treated as not inlineable from that point forward, allowing us to visit successor blocks with the inliner normally without considering the inlined block itself.
Additionally, the following issues are addressed:
remove
link
field ofBlockData
was superfluous and has been for some time, but was missed because it is a public field of a public struct, and there are places where we were incorrectly referencing this field as if it was in use. In fact, thelink
field we care about is the one associated with theLayoutNode
used byOrderedArenaMap
, and theBlockData
one was never linked into anything, resulting in some places incorrectly treating blocks as detached when they were in fact attached.Closes #85
I'll merge #83 after this is merged