Use LintContext::report_diagnostic_if_enabled in check_tokens#18769
Merged
Use LintContext::report_diagnostic_if_enabled in check_tokens#18769
LintContext::report_diagnostic_if_enabled in check_tokens#18769Conversation
since we needed the LinterSettings for the report_diagnostic_if_enabled calls, I also replaced the standalone fields that were previously extracted from the Settings in the constructor
after the LinterSettings change, it was just a thin wrapper
Contributor
|
dcreager
added a commit
that referenced
this pull request
Jun 19, 2025
* main: (68 commits) Unify `OldDiagnostic` and `Message` (#18391) [`pylint`] Detect more exotic NaN literals in `PLW0177` (#18630) [`flake8-async`] Mark autofix for `ASYNC115` as unsafe if the call expression contains comments (#18753) [`flake8-bugbear`] Mark autofix for `B004` as unsafe if the `hasattr` call expr contains comments (#18755) Enforce `pytest` import for decorators (#18779) [`flake8-comprehension`] Mark autofix for `C420` as unsafe if there's comments inside the dict comprehension (#18768) [flake8-async] fix detection for large integer sleep durations in `ASYNC116` rule (#18767) Update dependency ruff to v0.12.0 (#18790) Update taiki-e/install-action action to v2.53.2 (#18789) Add lint rule for calling chmod with non-octal integers (#18541) Mark `RET501` fix unsafe if comments are inside (#18780) Use `LintContext::report_diagnostic_if_enabled` in `check_tokens` (#18769) [UP008]: use `super()`, not `__super__` in error messages (#18743) Use Depot Windows runners for `cargo test` (#18754) Run ty benchmarks when `ruff_benchmark` changes (#18758) Disallow newlines in format specifiers of single quoted f- or t-strings (#18708) [ty] Add more benchmarks (#18714) [ty] Anchor all exclude patterns (#18685) Include changelog reference for other major versions (#18745) Use updated pre-commit id (#18718) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
This PR avoids the
Vec::retaincall incheck_tokensby checking if rules are enabled as their diagnostics are constructed.ruff/crates/ruff_linter/src/checkers/tokens.rs
Lines 174 to 176 in 2a425e4
Since
LintContext::report_diagnostic_if_enabledrequired aLinterSettings, I added asettingsfield to the context itself instead of trying to pass it everywhere. This also turnedLogicalLinesContextinto a trivial wrapper aroundLintContext, so I just removed it in favor of usingLintContextdirectly too.The diff is a bit smaller with whitespace hidden since many blocks got moved into something like this:
Test Plan
Existing tests