fix unused result checking for switch expression cases

Fixes: https://github.com/dart-lang/sdk/issues/52314

Change-Id: I02a952ee94084599273193b509987f46ac6198e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/302381
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
pq 2023-05-09 19:38:35 +00:00 committed by Commit Queue
parent 65630baac9
commit b0b393773f
2 changed files with 20 additions and 0 deletions

View file

@ -235,6 +235,7 @@ class UseResultVerifier {
parent is PropertyAccess ||
parent is ReturnStatement ||
parent is SetOrMapLiteral ||
parent is SwitchExpressionCase ||
parent is SwitchStatement ||
parent is ThrowExpression ||
parent is VariableDeclaration ||

View file

@ -1222,6 +1222,25 @@ const a = 'a';
''');
}
/// https://github.com/dart-lang/sdk/issues/52314
test_switchExpression() async {
await assertNoErrorsInCode(r'''
import 'package:meta/meta.dart';
class C {
bool m(Object o) {
return switch (o) {
String() => methodWithAnnotation(),
_ => false,
};
}
@useResult
bool methodWithAnnotation() => true;
}
''');
}
test_topLevelFunction_prefixExpression_bang() async {
await assertNoErrorsInCode(r'''
import 'package:meta/meta.dart';