Keep track of relevant axes when descending in normalize #3670
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.
When we descend through types in normalize, we need to keep track of a successive intersection of which axes we actually care about (eg if some are skipped because of modalities). This adds a new
relevant_axes
argument to loop which tracks that, and only does the join along the intersection of those relevant axes and the relevant axes in the type_info.This fixes a bug where we didn't actually mode cross when a type which doesn't normally mode cross along that axis was nested inside a modality which should have allowed crossing.