Test analyzer/FE integration of some more obscure invalid assignment cases.

This CL tests proper handling of the following erroneous assignments:
- Compound assignment to prefix increment (e.g. "++x += y;")
- Null aware assignment to prefix increment (e.g. "++x ??= y;")

Change-Id: I090ba2dacd754372674276b9fea3945588f3a731
Reviewed-on: https://dart-review.googlesource.com/71360
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
index ac3b708..aa48539 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_resolution_test.dart
@@ -1020,6 +1020,38 @@
     assertElement(yRef, findElement.parameter('y'));
   }
 
+  test_assign_to_prefix_increment_compound() async {
+    addTestFile('''
+void f(num x, int y) {
+  ++x += y;
+}
+''');
+    await resolveTestFile();
+
+    var xRef = findNode.simple('x +=');
+    assertType(xRef, 'num');
+    assertElement(xRef, findElement.parameter('x'));
+    var yRef = findNode.simple('y;');
+    assertType(yRef, 'int');
+    assertElement(yRef, findElement.parameter('y'));
+  }
+
+  test_assign_to_prefix_increment_null_aware() async {
+    addTestFile('''
+void f(num x, int y) {
+  ++x ??= y;
+}
+''');
+    await resolveTestFile();
+
+    var xRef = findNode.simple('x ??=');
+    assertType(xRef, 'num');
+    assertElement(xRef, findElement.parameter('x'));
+    var yRef = findNode.simple('y;');
+    assertType(yRef, 'int');
+    assertElement(yRef, findElement.parameter('y'));
+  }
+
   test_assign_with_synthetic_lhs() async {
     addTestFile('''
 void f(int x) {