diff --git a/apps/oxlint/fixtures/tsgolint/no-unnecessary-condition.ts b/apps/oxlint/fixtures/tsgolint/no-unnecessary-condition.ts index b8108409f87b3..260e349abdf67 100644 --- a/apps/oxlint/fixtures/tsgolint/no-unnecessary-condition.ts +++ b/apps/oxlint/fixtures/tsgolint/no-unnecessary-condition.ts @@ -1,3 +1,13 @@ declare const b1: object; declare const b2: boolean; export const t1 = b1 && b2; + +function checkNumber(x: number) { + // eslint-disable-next-line typescript/no-unnecessary-condition + if (x != null) { + return x; + } + return 0; +} + +checkNumber(1); diff --git a/apps/oxlint/src/snapshots/fixtures__tsgolint_--type-aware@oxlint.snap b/apps/oxlint/src/snapshots/fixtures__tsgolint_--type-aware@oxlint.snap index 68de925c21d4f..ff9c50899079b 100644 --- a/apps/oxlint/src/snapshots/fixtures__tsgolint_--type-aware@oxlint.snap +++ b/apps/oxlint/src/snapshots/fixtures__tsgolint_--type-aware@oxlint.snap @@ -165,6 +165,7 @@ working directory: fixtures/tsgolint 2 | declare const b2: boolean; 3 | export const t1 = b1 && b2; : ^^ + 4 | `---- x typescript-eslint(strict-boolean-expressions): Unexpected object value in conditional. An object is always truthy. @@ -172,6 +173,7 @@ working directory: fixtures/tsgolint 2 | declare const b2: boolean; 3 | export const t1 = b1 && b2; : ^^ + 4 | `---- x typescript-eslint(no-unnecessary-qualifier): Qualifier is unnecessary since 'B' is in scope. diff --git a/crates/oxc_linter/src/tsgolint.rs b/crates/oxc_linter/src/tsgolint.rs index af84d239c074e..01bf19d621fce 100644 --- a/crates/oxc_linter/src/tsgolint.rs +++ b/crates/oxc_linter/src/tsgolint.rs @@ -1059,7 +1059,10 @@ fn should_skip_diagnostic( path: &Path, tsgolint_diagnostic: &TsGoLintRuleDiagnostic, ) -> bool { - let span = tsgolint_diagnostic.span; + let span = tsgolint_diagnostic + .labeled_ranges + .first() + .map_or(tsgolint_diagnostic.span, |range| Span::new(range.range.pos, range.range.end)); if let Some(directives) = disable_directives_map.get(path) { directives.contains(&tsgolint_diagnostic.rule, span)