From f73258981479239707fc6262a94cceb7c11a73b9 Mon Sep 17 00:00:00 2001 From: camc314 <18101008+camc314@users.noreply.github.com> Date: Tue, 1 Jul 2025 11:24:06 +0000 Subject: [PATCH] fix(linter): panic in `consistent-type-imports` when the source contains a `{` (#12002) fixes #11993 --- .../src/rules/typescript/consistent_type_imports.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/oxc_linter/src/rules/typescript/consistent_type_imports.rs b/crates/oxc_linter/src/rules/typescript/consistent_type_imports.rs index 240d8d29b65cc..96005d9309794 100644 --- a/crates/oxc_linter/src/rules/typescript/consistent_type_imports.rs +++ b/crates/oxc_linter/src/rules/typescript/consistent_type_imports.rs @@ -793,7 +793,8 @@ fn fix_insert_type_specifier_for_import_declaration<'a>( ) -> FixerResult> { let FixOptions { fixer, import_decl, ctx, .. } = options; let fixer = fixer.for_multifix(); - let import_source = ctx.source_range(import_decl.span); + let import_specifiers_span = Span::new(import_decl.span.start, import_decl.source.span.start); + let import_source = ctx.source_range(import_specifiers_span); let mut rule_fixes = fixer.new_fix_with_capacity(1); // "import { Foo, Bar } from 'foo'" => "import type { Foo, Bar } from 'foo'" @@ -3391,6 +3392,11 @@ export class Foo extends Bar {} ", None, ), + ( + "\nimport Foo from'{'; type k = Foo", + "\nimport type Foo from'{'; type k = Foo", + Some(serde_json::json!([{ "prefer": "type-imports" }])), + ), ]; // To format fix code.