Skip to content

Commit

Permalink
fix(analyzer): suppression comment fails with inner comments in funct…
Browse files Browse the repository at this point in the history
…ions
  • Loading branch information
fireairforce committed Jan 13, 2025
1 parent 94bf15e commit b9867ca
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
biome_analyze: patch
---

# fix suppression comment fails with inner comments in functions
21 changes: 9 additions & 12 deletions crates/biome_analyze/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

use biome_console::markup;
use biome_parser::AnyParse;
use std::cmp::Ordering;
use std::collections::{BTreeMap, BinaryHeap};
use std::fmt::{Debug, Display, Formatter};
use std::ops;
Expand Down Expand Up @@ -450,22 +449,20 @@ where
let index =
self.suppressions
.line_suppressions
.binary_search_by(|suppression| {
if suppression.text_range.end() < entry.text_range.start() {
Ordering::Less
} else if entry.text_range.end() < suppression.text_range.start() {
Ordering::Greater
} else {
Ordering::Equal
}
.partition_point(|suppression| {
suppression.text_range.end() < entry.text_range.start()
});

index
.ok()
.map(|index| &mut self.suppressions.line_suppressions[index])
if index >= self.suppressions.line_suppressions.len() {
None
} else {
Some(&mut self.suppressions.line_suppressions[index])
}
}
};

println!("suppression in analyzer yyyyy: {:?}", suppression);

let suppression = suppression.filter(|suppression| {
if suppression.suppress_all {
return true;
Expand Down
44 changes: 44 additions & 0 deletions crates/biome_js_analyze/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -874,6 +874,50 @@ let d;
);
}

#[test]
fn suppression_range_should_report_when_contains_inner_comment() {
const SOURCE: &str = "
// biome-ignore lint/complexity/useArrowFunction: single rule
const foo0 = function (bar: string) {
// biome-ignore lint/style/noParameterAssign: single rule
bar = 'baz';
};";

let parsed = parse(SOURCE, JsFileSource::js_module(), JsParserOptions::default());

let enabled_rules = vec![
RuleFilter::Rule("style", "noParameterAssign"),
RuleFilter::Rule("complexity", "useArrowFunction"),
];

let filter = AnalysisFilter {
categories: RuleCategoriesBuilder::default().with_lint().build(),
enabled_rules: Some(enabled_rules.as_slice()),
..AnalysisFilter::default()
};
let options = AnalyzerOptions::default();
analyze(
&parsed.tree(),
filter,
&options,
Vec::new(),
JsFileSource::js_module(),
Default::default(),
|signal| {
if let Some(diag) = signal.diagnostic() {
let error = diag
.with_file_path("dummyFile")
.with_file_source_code(SOURCE);
let text = print_diagnostic_to_string(&error);
eprintln!("{text}");
panic!("Unexpected diagnostic");
}

ControlFlow::<Never>::Continue(())
},
);
}

#[test]
fn unused_range_suppression() {
const SOURCE: &str = "
Expand Down

0 comments on commit b9867ca

Please sign in to comment.