Version 2.18.0-76.0.dev

Merge commit '2316c7291c82a6200b6e18da9876c1c6b9509e5d' into 'dev'
diff --git a/pkg/analyzer/test/src/dart/resolution/assignment_test.dart b/pkg/analyzer/test/src/dart/resolution/assignment_test.dart
index ac8c980..4d61216 100644
--- a/pkg/analyzer/test/src/dart/resolution/assignment_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/assignment_test.dart
@@ -2834,12 +2834,6 @@
   staticElement: dart:core::@class::num::@method::+
   staticType: int
 ''');
-
-    assertSimpleIdentifierAssignmentTarget(
-      assignment.leftHandSide,
-    );
-
-    assertType(assignment.rightHandSide, 'int');
   }
 
   test_simpleIdentifier_topLevelVariable_simple() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart
index e1e22db..c4ef684 100644
--- a/pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart
@@ -710,10 +710,6 @@
   staticType: dynamic
 ''');
     }
-
-    assertSimpleIdentifierAssignmentTarget(
-      node.operand,
-    );
   }
 
   test_inc_prefixedIdentifier_instance() async {
@@ -1229,10 +1225,6 @@
   staticType: int*
 ''');
     }
-
-    assertSimpleIdentifierAssignmentTarget(
-      node.operand,
-    );
   }
 
   test_inc_simpleIdentifier_topGetter_topSetter() async {
@@ -1280,10 +1272,6 @@
   staticType: int*
 ''');
     }
-
-    assertSimpleIdentifierAssignmentTarget(
-      node.operand,
-    );
   }
 
   test_inc_simpleIdentifier_topGetter_topSetter_fromClass() async {
@@ -1333,10 +1321,6 @@
   staticType: int*
 ''');
     }
-
-    assertSimpleIdentifierAssignmentTarget(
-      node.operand,
-    );
   }
 }
 
diff --git a/pkg/analyzer/test/src/dart/resolution/prefix_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/prefix_expression_test.dart
index 4421bb0..c04f8a3 100644
--- a/pkg/analyzer/test/src/dart/resolution/prefix_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/prefix_expression_test.dart
@@ -1192,10 +1192,6 @@
   staticType: int*
 ''');
     }
-
-    assertSimpleIdentifierAssignmentTarget(
-      node.operand,
-    );
   }
 
   test_plusPlus_simpleIdentifier_thisGetter_thisSetter() async {
@@ -1243,10 +1239,6 @@
   staticType: int*
 ''');
     }
-
-    assertSimpleIdentifierAssignmentTarget(
-      node.operand,
-    );
   }
 
   test_plusPlus_simpleIdentifier_topGetter_topSetter() async {
@@ -1294,10 +1286,6 @@
   staticType: int*
 ''');
     }
-
-    assertSimpleIdentifierAssignmentTarget(
-      node.operand,
-    );
   }
 
   test_plusPlus_simpleIdentifier_topGetter_topSetter_fromClass() async {
@@ -1347,10 +1335,6 @@
   staticType: int*
 ''');
     }
-
-    assertSimpleIdentifierAssignmentTarget(
-      node.operand,
-    );
   }
 
   /// Verify that we get all necessary types when building the dependencies
diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart
index 51a5dd8..b6d8a5b 100644
--- a/pkg/analyzer/test/src/dart/resolution/resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart
@@ -513,18 +513,6 @@
     assertType(node, type);
   }
 
-  /// TODO(scheglov) https://github.com/dart-lang/sdk/issues/43608
-  void assertSimpleIdentifierAssignmentTarget(Expression node) {
-    if (node is! SimpleIdentifier) {
-      _failNotSimpleIdentifier(node);
-    }
-
-    // TODO(scheglov) Enforce maybe?
-    // Currently VariableResolverVisitor sets it.
-    // expect(node.staticElement, isNull);
-    expect(node.staticType, isNull);
-  }
-
   void assertSubstitution(
     MapSubstitution substitution,
     Map<String, String> expected,
diff --git a/pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart b/pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart
index 1785fe3..d78fa8a 100644
--- a/pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart
@@ -703,10 +703,6 @@
       error(HintCode.DEAD_CODE, 29, 2),
     ]);
 
-    assertSimpleIdentifierAssignmentTarget(
-      findNode.simple('foo'),
-    );
-
     var assignment = findNode.assignment('foo += 0');
     assertResolvedNodeText(assignment, r'''
 AssignmentExpression
@@ -758,10 +754,6 @@
       error(HintCode.DEAD_CODE, 28, 2),
     ]);
 
-    assertSimpleIdentifierAssignmentTarget(
-      findNode.simple('foo'),
-    );
-
     var assignment = findNode.assignment('foo = 0');
     assertResolvedNodeText(assignment, r'''
 AssignmentExpression
diff --git a/pkg/dartdev/test/utils.dart b/pkg/dartdev/test/utils.dart
index e77686f..f159c9b 100644
--- a/pkg/dartdev/test/utils.dart
+++ b/pkg/dartdev/test/utils.dart
@@ -109,11 +109,15 @@
     await _process?.exitCode;
     _process = null;
     int deleteAttempts = 5;
-    while (dir.existsSync()) {
+    while (deleteAttempts >= 0) {
+      deleteAttempts--;
       try {
+        if (!dir.existsSync()) {
+          return;
+        }
         dir.deleteSync(recursive: true);
       } catch (e) {
-        if ((--deleteAttempts) <= 0) {
+        if (deleteAttempts <= 0) {
           rethrow;
         }
         await Future.delayed(Duration(milliseconds: 500));
diff --git a/tools/VERSION b/tools/VERSION
index cb08dfb..c8e491d 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 18
 PATCH 0
-PRERELEASE 75
+PRERELEASE 76
 PRERELEASE_PATCH 0
\ No newline at end of file