Fix nested disable commands improved #5797
Open
+162
−24
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.
Addresses #5788
The problem is that Regions are created with all of the rule identifiers that are disabled in them, with a new region being created for each
swiftlint:
command, more or less.So an inner region may have multiple rules disabled, when disabled commands are nested, but not all of those rules might be violated within that specific region.
I guess people don't actually nest commands much in practice, at least for custom rules, or this would have created more noise.
This was not as hard to fix as I was afraid it might have been.
The basic idea is to remap the regions inside
superfluousDisableCommandViolations
, so that the new regions describe the specific region that an individual rule is disabled within.