Sort diagnostics by line number to prevent stale signs #955
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.
Some signs would not be removed from the sign column when their
diagnostic was fixed.
Debugging revealed that signs_to_add would include two signs for the
same line.
state.signsis keyed by line number so the second sign fora line will overwrite the first when signs_to_add is recorded in state.
The first sign's id is lost when it's overwritten so it can't be
removed.
signs_to_add included two signs for the same line because itertools
group_byonly groups consecutive runs (it's more efficient, you onlyneed to remember the current group and can flush it when the key
changes).
This quick fix sorts diagnostics by line number so that group_by gives
us one group per line number.
fixes #952