Analyzer: rearrange invalid_assignment tests for null safety
I started trying to move checker_tests out from that very old test
class into invalid_assignment, and it was overwhelming. I rolled back
most of the work and kept this part.
Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: Ic41b562cf263b4dae271de2da0f2ec5a716d6dfa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185491
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
index d984401..a4c02f4 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
@@ -10,14 +10,13 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(InvalidAssignmentTest);
- defineReflectiveTests(InvalidAssignmentNnbdTest);
+ defineReflectiveTests(InvalidAssignmentWithoutNullSafetyTest);
});
}
@reflectiveTest
-class InvalidAssignmentNnbdTest extends InvalidAssignmentTest
- with WithNullSafetyMixin {
- @override
+class InvalidAssignmentTest extends PubPackageResolutionTest
+ with InvalidAssignmentTestCases {
test_ifNullAssignment() async {
await assertErrorsInCode('''
void f(int i) {
@@ -29,9 +28,7 @@
]);
}
- @override
test_ifNullAssignment_sameType() async {
- // This test is overridden solely to make [j] nullable.
await assertNoErrorsInCode('''
void f(int i) {
int? j;
@@ -40,9 +37,7 @@
''');
}
- @override
test_ifNullAssignment_superType() async {
- // This test is overridden solely to make [n] nullable.
await assertNoErrorsInCode('''
void f(int i) {
num? n;
@@ -75,9 +70,7 @@
]);
}
- @override
test_typeParameter() async {
- // This test is overridden solely to make [value] nullable.
// https://github.com/dart-lang/sdk/issues/14221
await assertErrorsInCode(r'''
class B<T> {
@@ -92,9 +85,7 @@
}
}
-@reflectiveTest
-class InvalidAssignmentTest extends PubPackageResolutionTest
- with WithoutNullSafetyMixin {
+mixin InvalidAssignmentTestCases on PubPackageResolutionTest {
test_assignment_to_dynamic() async {
await assertErrorsInCode(r'''
f() {
@@ -175,35 +166,6 @@
]);
}
- test_ifNullAssignment() async {
- await assertErrorsInCode('''
-void f(int i) {
- double d;
- d ??= i;
-}
-''', [
- error(CompileTimeErrorCode.INVALID_ASSIGNMENT, 36, 1),
- ]);
- }
-
- test_ifNullAssignment_sameType() async {
- await assertNoErrorsInCode('''
-void f(int i) {
- int j;
- j ??= i;
-}
-''');
- }
-
- test_ifNullAssignment_superType() async {
- await assertNoErrorsInCode('''
-void f(int i) {
- num n;
- n ??= i;
-}
-''');
- }
-
test_implicitlyImplementFunctionViaCall_1() async {
// issue 18341
//
@@ -543,20 +505,6 @@
]);
}
- test_typeParameter() async {
- // https://github.com/dart-lang/sdk/issues/14221
- await assertErrorsInCode(r'''
-class B<T> {
- T value;
- void test(num n) {
- value = n;
- }
-}
-''', [
- error(CompileTimeErrorCode.INVALID_ASSIGNMENT, 57, 1),
- ]);
- }
-
test_typeParameterRecursion_regress35306() async {
await assertErrorsInCode(r'''
class A {}
@@ -606,3 +554,50 @@
]);
}
}
+
+@reflectiveTest
+class InvalidAssignmentWithoutNullSafetyTest extends PubPackageResolutionTest
+ with InvalidAssignmentTestCases, WithoutNullSafetyMixin {
+ test_ifNullAssignment() async {
+ await assertErrorsInCode('''
+void f(int i) {
+ double d;
+ d ??= i;
+}
+''', [
+ error(CompileTimeErrorCode.INVALID_ASSIGNMENT, 36, 1),
+ ]);
+ }
+
+ test_ifNullAssignment_sameType() async {
+ await assertNoErrorsInCode('''
+void f(int i) {
+ int j;
+ j ??= i;
+}
+''');
+ }
+
+ test_ifNullAssignment_superType() async {
+ await assertNoErrorsInCode('''
+void f(int i) {
+ num n;
+ n ??= i;
+}
+''');
+ }
+
+ test_typeParameter() async {
+ // https://github.com/dart-lang/sdk/issues/14221
+ await assertErrorsInCode(r'''
+class B<T> {
+ T value;
+ void test(num n) {
+ value = n;
+ }
+}
+''', [
+ error(CompileTimeErrorCode.INVALID_ASSIGNMENT, 57, 1),
+ ]);
+ }
+}