mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 03:47:13 +00:00
Don't report CASE_EXPRESSION_TYPE_IS_NOT_SWITCH_EXPRESSION_SUBTYPE when patterns is enabled.
Change-Id: I780ab9a9c82e115d254c61311ac8015f46db12aa Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273540 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
parent
48d0d95edb
commit
95a390cfd9
|
@ -5,6 +5,7 @@
|
|||
import 'package:analyzer/src/error/codes.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import '../../generated/test_support.dart';
|
||||
import '../dart/resolution/context_collection_resolution.dart';
|
||||
|
||||
main() {
|
||||
|
@ -19,17 +20,8 @@ main() {
|
|||
class CaseExpressionTypeIsNotSwitchExpressionSubtypeTest
|
||||
extends PubPackageResolutionTest
|
||||
with CaseExpressionTypeIsNotSwitchExpressionSubtypeTestCases {
|
||||
@FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/50502')
|
||||
@override
|
||||
test_notSubtype() {
|
||||
return super.test_notSubtype();
|
||||
}
|
||||
|
||||
@FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/50502')
|
||||
@override
|
||||
test_subtype() {
|
||||
return super.test_subtype();
|
||||
}
|
||||
_Variant get _variant => _Variant.patterns;
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
|
@ -37,16 +29,37 @@ class CaseExpressionTypeIsNotSwitchExpressionSubtypeTest_Language218
|
|||
extends PubPackageResolutionTest
|
||||
with
|
||||
WithLanguage218Mixin,
|
||||
CaseExpressionTypeIsNotSwitchExpressionSubtypeTestCases {}
|
||||
CaseExpressionTypeIsNotSwitchExpressionSubtypeTestCases {
|
||||
@override
|
||||
_Variant get _variant => _Variant.nullSafe;
|
||||
}
|
||||
|
||||
mixin CaseExpressionTypeIsNotSwitchExpressionSubtypeTestCases
|
||||
on PubPackageResolutionTest {
|
||||
CompileTimeErrorCode get _errorCode {
|
||||
return CompileTimeErrorCode
|
||||
.CASE_EXPRESSION_TYPE_IS_NOT_SWITCH_EXPRESSION_SUBTYPE;
|
||||
}
|
||||
_Variant get _variant;
|
||||
|
||||
test_notSubtype() async {
|
||||
final List<ExpectedError> expectedErrors;
|
||||
switch (_variant) {
|
||||
case _Variant.nullSafe:
|
||||
expectedErrors = [
|
||||
error(
|
||||
CompileTimeErrorCode
|
||||
.CASE_EXPRESSION_TYPE_IS_NOT_SWITCH_EXPRESSION_SUBTYPE,
|
||||
145,
|
||||
2),
|
||||
error(
|
||||
CompileTimeErrorCode
|
||||
.CASE_EXPRESSION_TYPE_IS_NOT_SWITCH_EXPRESSION_SUBTYPE,
|
||||
171,
|
||||
10),
|
||||
];
|
||||
break;
|
||||
case _Variant.patterns:
|
||||
expectedErrors = [];
|
||||
break;
|
||||
}
|
||||
|
||||
await assertErrorsInCode('''
|
||||
class A {
|
||||
const A();
|
||||
|
@ -63,14 +76,11 @@ void f(A e) {
|
|||
switch (e) {
|
||||
case B0:
|
||||
break;
|
||||
case B(1):
|
||||
case const B(1):
|
||||
break;
|
||||
}
|
||||
}
|
||||
''', [
|
||||
error(_errorCode, 145, 2),
|
||||
error(_errorCode, 171, 4),
|
||||
]);
|
||||
''', expectedErrors);
|
||||
}
|
||||
|
||||
test_subtype() async {
|
||||
|
@ -90,12 +100,14 @@ class C extends A {
|
|||
|
||||
void f(A e) {
|
||||
switch (e) {
|
||||
case B(0):
|
||||
case const B(0):
|
||||
break;
|
||||
case C(0):
|
||||
case const C(0):
|
||||
break;
|
||||
}
|
||||
}
|
||||
''');
|
||||
}
|
||||
}
|
||||
|
||||
enum _Variant { nullSafe, patterns }
|
||||
|
|
Loading…
Reference in a new issue