mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-02 22:55:08 +00:00
![]() Summary -- This PR adds a macro-generated method to retrieve the `Rule` associated with a given `Violation` struct, which makes it substantially cheaper than parsing from the rule name. The rule is then converted to a `NoqaCode` for storage on the `Message` (and eventually on the new diagnostic type). The `ViolationMetadata::rule_name` method was now unused, so the `rule` method replaces it. Several types had to be moved from the `ruff_diagnostics` crate to the `ruff_linter` crate to make this work, namely the `Violation` traits and the old `Diagnostic` type, which had a constructor generic over a `Violation`. It's actually a fairly small PR, minus the hundreds of import changes. The main changes are in these files: - [crates/ruff_linter/src/message/mod.rs](https://github.com/astral-sh/ruff/pull/18234/files#diff-139754ea310d75f28307008d21c771a190038bd106efe3b9267cc2d6c0fa0921) - [crates/ruff_diagnostics/src/lib.rs](https://github.com/astral-sh/ruff/pull/18234/files#diff-8e8ea5c586935bf21ea439f24253fcfd5955d2cb130f5377c2fa7bfee3ea3a81) - [crates/ruff_linter/src/diagnostic.rs](https://github.com/astral-sh/ruff/pull/18234/files#diff-1d0c9aad90d8f9446079c5be5f284150d97797158715bd9729e6f1f70246297a) - [crates/ruff_linter/src/lib.rs](https://github.com/astral-sh/ruff/pull/18234/files#diff-eb93ef7e78a612f5fa9145412c75cf6b1a5cefba1c2233e4a11a880a1ce1fbcc) Test Plan -- Existing tests |
||
---|---|---|
.. | ||
checkers | ||
comments | ||
cst | ||
docstrings | ||
fix | ||
importer | ||
message | ||
registry | ||
rules | ||
settings | ||
snapshots | ||
codes.rs | ||
diagnostic.rs | ||
directives.rs | ||
doc_lines.rs | ||
fs.rs | ||
lib.rs | ||
line_width.rs | ||
linter.rs | ||
locator.rs | ||
logging.rs | ||
noqa.rs | ||
package.rs | ||
packaging.rs | ||
preview.rs | ||
pyproject_toml.rs | ||
registry.rs | ||
renamer.rs | ||
rule_redirects.rs | ||
rule_selector.rs | ||
source_kind.rs | ||
test.rs | ||
text_helpers.rs | ||
upstream_categories.rs | ||
violation.rs |