Completion Issue 53515: Fix for shadowing in extensions.

Change-Id: I4b1b0651479ec669018ef5a74b91f0b20c6871e2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/358141
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/extension_member_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/extension_member_contributor.dart
index 505c032..8350ad6 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/extension_member_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/extension_member_contributor.dart
@@ -145,6 +145,7 @@
 
   void _addTypeMembers(InterfaceType type, CompletionSuggestionKind kind,
       double inheritanceDistance) {
+    builder.laterReplacesEarlier = false;
     for (var method in type.methods) {
       memberBuilder.addSuggestionForMethod(
           method: method, kind: kind, inheritanceDistance: inheritanceDistance);
diff --git a/pkg/analysis_server/test/services/completion/dart/location/extension_body_test.dart b/pkg/analysis_server/test/services/completion/dart/location/extension_body_test.dart
index f0bc6e95..4159425 100644
--- a/pkg/analysis_server/test/services/completion/dart/location/extension_body_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/location/extension_body_test.dart
@@ -124,4 +124,24 @@
     kind: keyword
 ''');
   }
+
+  Future<void> test_inMethod_parameterShadowField() async {
+    allowedIdentifiers = {'aaa'};
+    await computeSuggestions('''
+class A {
+  String aaa = '';
+}
+
+extension E on A {foo(int aaa) {  a^;} }
+''');
+    assertResponse(r'''
+replacement
+  left: 1
+suggestions
+  aaa
+    kind: parameter
+  assert
+    kind: keyword
+''');
+  }
 }