[wildcards] extension type parameter scopes

Fixes:

CompileTimeError -> Pass (expected Pass)
co19/LanguageFeatures/Wildcards/binding_A02_t08

See: https://github.com/dart-lang/sdk/issues/55680

Change-Id: I5fffc47b52a2fa5d86e6be0b8a780bc3abcff1c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380206
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index d87a268..8f0777e 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -2595,6 +2595,8 @@
     ExtensionTypeElementImpl element,
   ) {
     for (var typeParameter in element.typeParameters) {
+      if (typeParameter.isWildcardVariable) continue;
+
       var name = typeParameter.name;
       // name is same as the name of the enclosing class
       if (element.name == name) {
diff --git a/pkg/analyzer/test/src/dart/resolution/extension_type_test.dart b/pkg/analyzer/test/src/dart/resolution/extension_type_test.dart
index 8b9f87a..0b7615b 100644
--- a/pkg/analyzer/test/src/dart/resolution/extension_type_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/extension_type_test.dart
@@ -334,4 +334,49 @@
   declaredElement: <testLibraryFragment>::@extensionType::A
 ''');
   }
+
+  test_typeParameters_wildcards() async {
+    await assertNoErrorsInCode(r'''
+extension type ET<_, _, _ extends num>(int _) {}
+''');
+
+    var node = findNode.singleExtensionTypeDeclaration;
+    assertResolvedNodeText(node, r'''
+ExtensionTypeDeclaration
+  extensionKeyword: extension
+  typeKeyword: type
+  name: ET
+  typeParameters: TypeParameterList
+    leftBracket: <
+    typeParameters
+      TypeParameter
+        name: _
+        declaredElement: _@18
+      TypeParameter
+        name: _
+        declaredElement: _@21
+      TypeParameter
+        name: _
+        extendsKeyword: extends
+        bound: NamedType
+          name: num
+          element: dart:core::<fragment>::@class::num
+          type: num
+        declaredElement: _@24
+    rightBracket: >
+  representation: RepresentationDeclaration
+    leftParenthesis: (
+    fieldType: NamedType
+      name: int
+      element: dart:core::<fragment>::@class::int
+      type: int
+    fieldName: _
+    rightParenthesis: )
+    fieldElement: <testLibraryFragment>::@extensionType::ET::@field::_
+    constructorElement: <testLibraryFragment>::@extensionType::ET::@constructor::new
+  leftBracket: {
+  rightBracket: }
+  declaredElement: <testLibraryFragment>::@extensionType::ET
+''');
+  }
 }