From f2b32731dfc9f8d347688aaa874cda841e36b438 Mon Sep 17 00:00:00 2001 From: Boshen <1430279+Boshen@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:45:14 +0000 Subject: [PATCH] fix(linter): fix fixer panic in typescript/consistent_indexed_object_style (#4165) --- .../rules/typescript/consistent_indexed_object_style.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/oxc_linter/src/rules/typescript/consistent_indexed_object_style.rs b/crates/oxc_linter/src/rules/typescript/consistent_indexed_object_style.rs index 322bd5934..f94ee32d5 100644 --- a/crates/oxc_linter/src/rules/typescript/consistent_indexed_object_style.rs +++ b/crates/oxc_linter/src/rules/typescript/consistent_indexed_object_style.rs @@ -230,8 +230,8 @@ impl Rule for ConsistentIndexedObjectStyle { ), |fixer| { let key = fixer.source_range(first.span); - let params_span = Span::new(first.span.end + 2, tref.span.end - 1); - let params = fixer.source_range(params_span); + let params_span = Span::new(first.span.end + 1, tref.span.end - 1); + let params = fixer.source_range(params_span).trim(); let content = format!("{{ [key: {key}]: {params} }}"); fixer.replace(tref.span, content) }, @@ -263,6 +263,11 @@ fn test() { "type Foo = { [key: string]: T };", Some(serde_json::json!(["index-signature"])), ), + ( + "export function getCookies (headers: Headers): Record", + "export function getCookies (headers: Headers): { [key: string]: Ă˜string }", + Some(serde_json::json!(["index-signature"])), + ), ]; let pass = vec![