Fix duplicate locations in rename edits. #526
Merged
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.
In some cases, names of definitions also appear as use locations in the TModel. In those cases, the rename logic would mark that location as both a definition and use.
Since the addition of annotated edits, locations are not deduplicated, so VS Code would receive multiple edits for the same location, and fail to apply all of them. Many renames would fail due to this, depending on what kind of name the cursor was on.
This PR fixes this behaviour; it postpones attaching annotations to most rename locations, simplifying location deduplication (and, as a side-effect, de-duplicates the annotations as well). It also adds assertions against duplicate edit locations to the test framework.