Version 3.6.0-29.0.dev

Merge 68042eea861d1bf8059599b0de864e792beb9ecc into dev
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context_impl.dart
index c4cf992..669c8f3 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/identifier_context_impl.dart
@@ -377,84 +377,6 @@
   }
 }
 
-/// See [IdentifierContext.extensionShowHideElementGetter],
-/// [IdentifierContext.extensionShowHideElementMemberOrType],
-/// [IdentifierContext.extensionShowHideElementOperator],
-/// [IdentifierContext.extensionShowHideElementSetter].
-class ExtensionShowHideElementIdentifierContext extends IdentifierContext {
-  static const int _getterKind = 0;
-  static const int _memberOrTypeKind = 1;
-  static const int _operator = 2;
-  static const int _setterKind = 3;
-
-  final int _kind;
-
-  const ExtensionShowHideElementIdentifierContext.getter()
-      : _kind = _getterKind,
-        super('extensionShowHideElementGetter', inDeclaration: true);
-
-  const ExtensionShowHideElementIdentifierContext.memberOrType()
-      : _kind = _memberOrTypeKind,
-        super('extensionShowHideElementMemberOrType', inDeclaration: true);
-
-  const ExtensionShowHideElementIdentifierContext.operator()
-      : _kind = _operator,
-        super('extensionShowHideElementOperator', inDeclaration: true);
-
-  const ExtensionShowHideElementIdentifierContext.setter()
-      : _kind = _setterKind,
-        super('extensionShowHideElementSetter', inDeclaration: true);
-
-  @override
-  Token ensureIdentifier(Token token, Parser parser) {
-    Token identifier = token.next!;
-    if (identifier.isIdentifier ||
-        _kind == _operator && identifier.isOperator) {
-      return identifier;
-    }
-
-    // Recovery
-    const List<String> afterIdentifier = const [
-      '<',
-      '{',
-      'extends',
-      'with',
-      'implements',
-      'on',
-      '=',
-    ];
-    if (identifier.isEof ||
-        (looksLikeStartOfNextTopLevelDeclaration(identifier) &&
-            (identifier.next == null ||
-                !isOneOfOrEof(identifier.next!, afterIdentifier))) ||
-        (isOneOfOrEof(identifier, afterIdentifier) &&
-            (identifier.next == null ||
-                !isOneOfOrEof(identifier.next!, afterIdentifier)))) {
-      identifier = parser.insertSyntheticIdentifier(token, this,
-          message: codes.templateExpectedIdentifier.withArguments(identifier));
-    } else {
-      if (!identifier.isKeywordOrIdentifier) {
-        parser.reportRecoverableErrorWithToken(
-            identifier, codes.templateExpectedIdentifier);
-        // When in doubt, consume the token to ensure we make progress
-        // but insert a synthetic identifier to satisfy listeners.
-        identifier = parser.rewriter.insertSyntheticIdentifier(identifier);
-      } else {
-        // Use the keyword as the identifier.
-        parser.reportRecoverableErrorWithToken(
-            identifier, codes.templateExpectedIdentifierButGotKeyword);
-      }
-    }
-    return identifier;
-  }
-
-  @override
-  bool operator ==(Object other) {
-    return other is ExtensionShowHideElementIdentifierContext &&
-        _kind == other._kind;
-  }
-}
-
 /// See [IdentifierContext.fieldDeclaration].
 class FieldDeclarationIdentifierContext extends IdentifierContext {
   const FieldDeclarationIdentifierContext()
diff --git a/tools/VERSION b/tools/VERSION
index e3f4130..9d131a0 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 3
 MINOR 6
 PATCH 0
-PRERELEASE 28
+PRERELEASE 29
 PRERELEASE_PATCH 0