Fix updating of indexes containing escaped characters #156
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.
There are a number of different mechanisms with String#sub that pertain to the matching of backreferences and capture groups when using either the String or Hash type args for the replacement arg.
When an index contains unescaped characters, those are being incorrectly interpreted as capture groups. Using the block version of #sub avoids this.
For example, here's the behaviour we see with an index containing special characters that need escaping.
Existing index:
Updated index:
This becomes a problem given that the issue is in the
Updater
itself; we get stuck in a loop where annotation changes are always being detected, so a CI step with--frozen
will always fail.