From 31473ca2929a11aa8d3466dbda621f14aa28a155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 10 Jan 2025 01:44:42 +0100 Subject: [PATCH] validate range --- cli/ops/lint.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/cli/ops/lint.rs b/cli/ops/lint.rs index 96899512b0..055e36b5d3 100644 --- a/cli/ops/lint.rs +++ b/cli/ops/lint.rs @@ -78,11 +78,14 @@ impl LintPluginContainer { ) { let source_text_info = self.source_text_info.as_ref().unwrap(); let specifier = self.specifier.clone().unwrap(); + let source_range = source_text_info.range(); let start_pos = source_text_info.start_pos(); - let source_range = SourceRange::new(start_pos + start, start_pos + end); - // TODO(bartlomieju): validate this is a correct range + let diagnostic_range = SourceRange::new(start_pos + start, start_pos + end); + if !source_range.contains(&diagnostic_range) { + todo!("Return op error that range is wrong"); + } let range = LintDiagnosticRange { - range: source_range, + range: diagnostic_range, description: None, text_info: source_text_info.clone(), }; @@ -90,14 +93,15 @@ impl LintPluginContainer { let mut fixes: Vec = vec![]; if let Some(fix) = fix { + let fix_range = + SourceRange::new(start_pos + fix.range.0, start_pos + fix.range.1); + if !source_range.contains(&fix_range) { + todo!("Return op error that range is wrong"); + } fixes.push(LintFix { changes: vec![LintFixChange { new_text: fix.text.into(), - // TODO(bartlomieju): validate this is a correct range - range: SourceRange::new( - start_pos + fix.range.0, - start_pos + fix.range.1, - ), + range: fix_range, }], description: format!("Fix this {} problem", id).into(), });