mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-11-03 21:24:29 +00:00 
			
		
		
		
	Apply fix availability and applicability when adding to DiagnosticGuard and remove NoqaCode::rule (#18834)
				
					
				
			## Summary This PR removes the last two places we were using `NoqaCode::rule` in `linter.rs` (see https://github.com/astral-sh/ruff/pull/18391#discussion_r2154637329 and https://github.com/astral-sh/ruff/pull/18391#discussion_r2154649726) by checking whether fixes are actually desired before adding them to a `DiagnosticGuard`. I implemented this by storing a `Violation`'s `Rule` on the `DiagnosticGuard` so that we could check if it was enabled in the embedded `LinterSettings` when trying to set a fix. All of the corresponding `set_fix` methods on `OldDiagnostic` were now unused (except in tests where I just set `.fix` directly), so I moved these to the guard instead of keeping both sets. The very last place where we were using `NoqaCode::rule` was in the cache. I just reverted this to parsing the `Rule` from the name. I had forgotten to update the comment there anyway. Hopefully this doesn't cause too much of a perf hit. In terms of binary size, we're back down almost to where `main` was two days ago (https://github.com/astral-sh/ruff/pull/18391#discussion_r2155034320): ``` 41,559,344 bytes for main 2 days ago 41,669,840 bytes for #18391 41,653,760 bytes for main now (after #18391 merged) 41,602,224 bytes for this branch ``` Only 43 kb up, but that shouldn't all be me this time :) ## Test Plan Existing tests and benchmarks on this PR
This commit is contained in:
		
							parent
							
								
									0edbd6c390
								
							
						
					
					
						commit
						02ae8e1210
					
				
					 11 changed files with 73 additions and 102 deletions
				
			
		| 
						 | 
				
			
			@ -22,7 +22,7 @@ use ruff_cache::cache_dir;
 | 
			
		|||
use ruff_formatter::IndentStyle;
 | 
			
		||||
use ruff_graph::{AnalyzeSettings, Direction};
 | 
			
		||||
use ruff_linter::line_width::{IndentWidth, LineLength};
 | 
			
		||||
use ruff_linter::registry::{INCOMPATIBLE_CODES, Rule, RuleSet};
 | 
			
		||||
use ruff_linter::registry::{INCOMPATIBLE_CODES, Rule, RuleNamespace, RuleSet};
 | 
			
		||||
use ruff_linter::rule_selector::{PreviewOptions, Specificity};
 | 
			
		||||
use ruff_linter::rules::{flake8_import_conventions, isort, pycodestyle};
 | 
			
		||||
use ruff_linter::settings::fix_safety_table::FixSafetyTable;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue