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),
+    ]);
+  }
+}