Extract RuleDefinition as the base identity for rules - #1007
Merged
Conversation
Member
|
IMO |
Base automatically changed from
vs_move_default_severity_to_class_level
to
main
August 14, 2026 16:12
vinistock
force-pushed
the
vs_extract_rule_definition
branch
from
August 14, 2026 17:44
4abc55f to
65d7c1e
Compare
Member
Author
|
I moved it under the linter. However, after trying out the module approach, I find it a bit strange. I would keep it as a parent class that defines the identity of a rule. |
vinistock
force-pushed
the
vs_extract_rule_definition
branch
from
August 14, 2026 19:53
65d7c1e to
fd06555
Compare
st0012
approved these changes
Aug 14, 2026
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.
Third step towards #1000
We need to share the concept of a rule across Rust and Ruby, the graph and the linter. However,
Rulecurrently enforces that each descendant must implementlint. This is an issue for unification because graph and linter diagnostics are collected differently.In reality, the common concept is not
Rule, but aRuleDefinition. All we need is the identity of the rule: a name and the default severity. With this, we can treat all rules similarly for the configuration as it applies to theRuleDefinitionand not theRule.In more abstract terms, this PR makes
RuleDefinitionthe identity of a rule, whileRuleis the execution abstraction for the definition.