diff --git a/crates/oxc_linter/src/rules/eslint/no_unused_private_class_members.rs b/crates/oxc_linter/src/rules/eslint/no_unused_private_class_members.rs index 82686754b9d52..51462e6e80c91 100644 --- a/crates/oxc_linter/src/rules/eslint/no_unused_private_class_members.rs +++ b/crates/oxc_linter/src/rules/eslint/no_unused_private_class_members.rs @@ -234,6 +234,7 @@ fn is_value_context(parent: &AstNode, child: &AstNode, semantic: &Semantic<'_>) | AstKind::SpreadElement(_) | AstKind::AssignmentPattern(_) | AstKind::SwitchCase(_) + | AstKind::SwitchStatement(_) | AstKind::ThrowStatement(_) | AstKind::WhileStatement(_) | AstKind::DoWhileStatement(_) @@ -510,6 +511,7 @@ fn test() { r"class ExampleBar { #bar = 0; bar(bar) { bar = ++this.#bar; return bar; } }", r"class Test { #url: string; constructor(url: string) { this.#url = url; } open() { return new WebSocket(this.#url); } }", r"export class Foo { #fetch: typeof fetch; constructor() { this.#fetch = fetch; } async bar() { return (0, this.#fetch)('https://example.com'); } }", + r"export class StateMachine { #state = 'idle'; step() { switch (this.#state) { case 'idle': { this.#state = 'running'; break; } case 'running': { this.#state = 'done'; break; } } } }", ]; let fail = vec![