[feaLib] More efficient inline multisub compilation #3770
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.
Specifically we were always creating a new ChainContextualRule for each glyph in an input class, even when their replacements were identical, which means we would later miss the chance to use a format3 encoding, which would have been smaller.
The implementation here feels... fine, I guess? In fea-rs we don't decompose the input set, but we also don't support the syntax,
sub a [b c]' d by e f
which is supported by fontmake (but has not yet appeared in any font we've handled) which might motivate the decomposition.