diff --git a/crates/oxc_linter/src/rules/eslint/no_unused_vars/allowed.rs b/crates/oxc_linter/src/rules/eslint/no_unused_vars/allowed.rs index 92d84b767..6330ac5bb 100644 --- a/crates/oxc_linter/src/rules/eslint/no_unused_vars/allowed.rs +++ b/crates/oxc_linter/src/rules/eslint/no_unused_vars/allowed.rs @@ -42,6 +42,9 @@ impl<'s, 'a> Symbol<'s, 'a> { // e.g. var foo = function bar() { } // we don't want to check for violations on `bar`, just `foo` | AstKind::VariableDeclarator(_) + // new (class CustomRenderer{}) + // new (function() {}) + | AstKind::NewExpression(_) => { return true; } diff --git a/crates/oxc_linter/src/rules/eslint/no_unused_vars/tests/oxc.rs b/crates/oxc_linter/src/rules/eslint/no_unused_vars/tests/oxc.rs index ebe11f0f0..1d3b476ee 100644 --- a/crates/oxc_linter/src/rules/eslint/no_unused_vars/tests/oxc.rs +++ b/crates/oxc_linter/src/rules/eslint/no_unused_vars/tests/oxc.rs @@ -13,6 +13,12 @@ fn test_vars_simple() { ("let a = 1; if (true) { console.log(a) }", None), ("let _a = 1", Some(json!([{ "varsIgnorePattern": "^_" }]))), ("const { foo: _foo, baz } = obj; f(baz);", Some(json!([{ "varsIgnorePattern": "^_" }]))), + ( + r"export const rendered = marked(markdown, { + renderer: new (class CustomRenderer extends Renderer {})(), + });", + None, + ), ]; let fail = vec![ ("let a = 1", None),