diff --git a/crates/ruff_linter/src/checkers/tokens.rs b/crates/ruff_linter/src/checkers/tokens.rs index 8d1f5a28fd..3a057b819d 100644 --- a/crates/ruff_linter/src/checkers/tokens.rs +++ b/crates/ruff_linter/src/checkers/tokens.rs @@ -137,7 +137,7 @@ pub(crate) fn check_tokens( flake8_implicit_str_concat::rules::implicit( &mut diagnostics, tokens, - &settings.flake8_implicit_str_concat, + settings, locator, indexer, ); diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/rules/implicit.rs b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/rules/implicit.rs index 23350cfec9..489e34545b 100644 --- a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/rules/implicit.rs +++ b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/rules/implicit.rs @@ -1,15 +1,16 @@ use itertools::Itertools; -use ruff_python_parser::lexer::LexResult; -use ruff_python_parser::Tok; -use ruff_text_size::{Ranged, TextRange}; use ruff_diagnostics::{Diagnostic, Edit, Fix, FixAvailability, Violation}; use ruff_macros::{derive_message_formats, violation}; use ruff_python_ast::str::{leading_quote, trailing_quote}; use ruff_python_index::Indexer; +use ruff_python_parser::lexer::LexResult; +use ruff_python_parser::Tok; use ruff_source_file::Locator; +use ruff_text_size::{Ranged, TextRange}; -use crate::rules::flake8_implicit_str_concat::settings::Settings; +use crate::registry::AsRule; +use crate::settings::LinterSettings; /// ## What it does /// Checks for implicitly concatenated strings on a single line. @@ -94,7 +95,7 @@ impl Violation for MultiLineImplicitStringConcatenation { pub(crate) fn implicit( diagnostics: &mut Vec, tokens: &[LexResult], - settings: &Settings, + settings: &LinterSettings, locator: &Locator, indexer: &Indexer, ) { @@ -102,7 +103,9 @@ pub(crate) fn implicit( .iter() .flatten() .filter(|(tok, _)| { - !tok.is_comment() && (settings.allow_multiline || !tok.is_non_logical_newline()) + !tok.is_comment() + && (settings.flake8_implicit_str_concat.allow_multiline + || !tok.is_non_logical_newline()) }) .tuple_windows() { @@ -134,8 +137,10 @@ pub(crate) fn implicit( TextRange::new(a_range.start(), b_range.end()), ); - if let Some(fix) = concatenate_strings(a_range, b_range, locator) { - diagnostic.set_fix(fix); + if settings.rules.should_fix(diagnostic.kind.rule()) { + if let Some(fix) = concatenate_strings(a_range, b_range, locator) { + diagnostic.set_fix(fix); + } } diagnostics.push(diagnostic);