Skip to content

Commit 8e78cb2

Browse files
committed
fix(linter/no-unused-expression): false positive with satisfies expressions
1 parent b3b482a commit 8e78cb2

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,7 @@ impl NoUnusedExpressions {
179179
Expression::TSAsExpression(ts_as_expression) => {
180180
self.is_disallowed(&ts_as_expression.expression)
181181
}
182-
Expression::TSSatisfiesExpression(ts_satisfies_expression) => {
183-
self.is_disallowed(&ts_satisfies_expression.expression)
184-
}
182+
Expression::TSSatisfiesExpression(_) => false,
185183
Expression::TSTypeAssertion(ts_type_assertion) => {
186184
self.is_disallowed(&ts_type_assertion.expression)
187185
}
@@ -342,6 +340,24 @@ fn test() {
342340
Some(serde_json::json!([{ "allowTernary": true }])),
343341
),
344342
("const _func = (value: number) => value + 1;", None),
343+
(
344+
"
345+
type FooBarBaz = 'foo' | 'bar' | 'baz';
346+
export function satisfiesTest(c: FooBarBaz): string {
347+
switch(c) {
348+
case 'foo':
349+
return 'foo';
350+
case 'bar':
351+
return 'bar';
352+
default:
353+
c satisfies never;
354+
return '';
355+
}
356+
}
357+
",
358+
None,
359+
),
360+
("value satisfies number;", None),
345361
];
346362

347363
let fail = vec![

0 commit comments

Comments
 (0)