Skip to content

Commit c80e405

Browse files
committed
fix(linter/no-new-wrappers): fix panic in fixer with multi byte chars (#11773)
fixes #11768
1 parent e58a0b0 commit c80e405

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

crates/oxc_linter/src/rules/eslint/no_new_wrappers.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use oxc_ast::{
44
};
55
use oxc_diagnostics::OxcDiagnostic;
66
use oxc_macros::declare_oxc_lint;
7-
use oxc_span::Span;
7+
use oxc_span::{GetSpan, Span};
88

99
use crate::{
1010
AstNode,
@@ -106,7 +106,7 @@ fn remove_new_operator<'a>(
106106
name: &'a str,
107107
) -> RuleFix<'a> {
108108
debug_assert!(expr.callee.is_identifier_reference());
109-
let remove_new_fix = fixer.delete_range(Span::sized(expr.span.start, 4 /* "new " */));
109+
let remove_new_fix = fixer.delete_range(Span::new(expr.span.start, expr.callee.span().start));
110110

111111
let Some(arg) = expr.arguments.first().and_then(Argument::as_expression) else {
112112
return remove_new_fix;
@@ -180,6 +180,7 @@ fn test() {
180180
("var a = new String((((('hello')))));", "var a = 'hello';"),
181181
("var a = new Number(10);", "var a = 10;"),
182182
("var a = new Number(10 as number);", "var a = 10;"),
183+
("(new Number())", "(Number())"),
183184
];
184185

185186
Tester::new(NoNewWrappers::NAME, NoNewWrappers::PLUGIN, pass, fail)

0 commit comments

Comments
 (0)