[analyzer] fix method name for `concrete_class_with_abstract_member`

Fixes #49334

Change-Id: Idd47028064e4c98d693e7b9d831322a2c6c628ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249614
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart
index 61d60b6..c8e9c08 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart
@@ -61,7 +61,7 @@
     var functionElement = _getFunctionElement(body.parent);
     if (functionElement == null) return null;
 
-    var lines = ['// TODO: implement ${functionElement.name}'];
+    var lines = ['// TODO: implement ${functionElement.displayName}'];
 
     var returnValueType = functionElement.returnType;
     if (!returnValueType.isVoid) {
diff --git a/pkg/analysis_server/test/src/services/correction/fix/convert_into_block_body_test.dart b/pkg/analysis_server/test/src/services/correction/fix/convert_into_block_body_test.dart
index a9904be..d429ee6 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/convert_into_block_body_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/convert_into_block_body_test.dart
@@ -65,7 +65,7 @@
 enum E {
   v;
   set s(int _) {
-    // TODO: implement s=
+    // TODO: implement s
   }
 }
 ''');
diff --git a/pkg/analyzer/lib/src/error/inheritance_override.dart b/pkg/analyzer/lib/src/error/inheritance_override.dart
index 5d239db..e0deb86 100644
--- a/pkg/analyzer/lib/src/error/inheritance_override.dart
+++ b/pkg/analyzer/lib/src/error/inheritance_override.dart
@@ -749,14 +749,15 @@
   /// because the class itself defines an abstract method with this [name],
   /// report the more specific error, and return `true`.
   bool _reportConcreteClassWithAbstractMember(String name) {
-    bool checkMemberNameCombo(ClassMember member, String memberName) {
+    bool checkMemberNameCombo(
+        ClassMember member, String memberName, String displayName) {
       if (memberName == name) {
         reporter.reportErrorForNode(
           classElement.isEnum
               ? CompileTimeErrorCode.ENUM_WITH_ABSTRACT_MEMBER
               : CompileTimeErrorCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER,
           member,
-          [name, classElement.name],
+          [displayName, classElement.name],
         );
         return true;
       } else {
@@ -766,18 +767,18 @@
 
     for (var member in members) {
       if (member is MethodDeclaration) {
-        var name2 = member.name.name;
+        var displayName = member.name.name;
+        var name2 = displayName;
         if (member.isSetter) {
           name2 += '=';
         }
-        if (checkMemberNameCombo(member, name2)) return true;
+        if (checkMemberNameCombo(member, name2, displayName)) return true;
       } else if (member is FieldDeclaration) {
         for (var variableDeclaration in member.fields.variables) {
           var name2 = variableDeclaration.name.name;
-          if (checkMemberNameCombo(member, name2)) return true;
+          if (checkMemberNameCombo(member, name2, name2)) return true;
           if (!variableDeclaration.isFinal) {
-            name2 += '=';
-            if (checkMemberNameCombo(member, name2)) return true;
+            if (checkMemberNameCombo(member, '$name2=', name2)) return true;
           }
         }
       }
diff --git a/pkg/analyzer/test/src/diagnostics/concrete_class_with_abstract_member_test.dart b/pkg/analyzer/test/src/diagnostics/concrete_class_with_abstract_member_test.dart
index d81ddad..684d8d8 100644
--- a/pkg/analyzer/test/src/diagnostics/concrete_class_with_abstract_member_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/concrete_class_with_abstract_member_test.dart
@@ -25,8 +25,6 @@
 ''', [
       error(CompileTimeErrorCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER, 12, 16,
           text: "'x' must have a method body because 'A' isn't abstract."),
-      error(CompileTimeErrorCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER, 12, 16,
-          text: "'x=' must have a method body because 'A' isn't abstract."),
     ]);
   }
 
@@ -56,6 +54,17 @@
 }
 ''');
   }
+
+  test_setter() async {
+    await assertErrorsInCode('''
+class A {
+  set s(int i);
+}
+''', [
+      error(CompileTimeErrorCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER, 12, 13,
+          text: "'s' must have a method body because 'A' isn't abstract."),
+    ]);
+  }
 }
 
 mixin ConcreteClassWithAbstractMemberTestCases on PubPackageResolutionTest {