Version 2.18.0-233.0.dev
Merge commit '09ec1743fe97b22969a394f8d830074dbd1ad8a2' into 'dev'
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 {
diff --git a/pkg/front_end/test/incremental_compiler_leak_test.dart b/pkg/front_end/test/incremental_compiler_leak_test.dart
index 581d63f..2385fab 100644
--- a/pkg/front_end/test/incremental_compiler_leak_test.dart
+++ b/pkg/front_end/test/incremental_compiler_leak_test.dart
@@ -192,32 +192,12 @@
String? uriString = classDetails.location?.script?.uri;
if (uriString == null) return true;
if (uriString.startsWith("package:front_end/")) {
- // Classes used for lazy initialization will naturally fluctuate.
- if (classDetails.name == "DillClassBuilder") return true;
- if (classDetails.name == "DillExtensionBuilder") return true;
- if (classDetails.name == "DillExtensionMemberBuilder") return true;
- if (classDetails.name == "DillMemberBuilder") return true;
- if (classDetails.name == "DillTypeAliasBuilder") return true;
-
- // These classes have proved to fluctuate, although the reason is less
- // clear.
- if (classDetails.name == "InheritedImplementationInterfaceConflict") {
- return true;
- }
- if (classDetails.name == "AbstractMemberOverridingImplementation") {
- return true;
- }
- if (classDetails.name == "VoidTypeBuilder") return true;
- if (classDetails.name == "NamedTypeBuilder") return true;
- if (classDetails.name == "DillClassMember") return true;
- if (classDetails.name == "Scope") return true;
- if (classDetails.name == "ConstructorScope") return true;
- if (classDetails.name == "ScopeBuilder") return true;
- if (classDetails.name == "ConstructorScopeBuilder") return true;
- if (classDetails.name == "NullTypeDeclarationBuilder") return true;
- if (classDetails.name == "NullabilityBuilder") return true;
-
- return false;
+ // Because of lazy loading many things naturally fluctuate.
+ // We'll therefore restrict this to Source* stuff and
+ // DillLibraryBuilder for front_end stuff.
+ if (classDetails.name?.startsWith("Source") ?? false) return false;
+ if (classDetails.name == "DillLibraryBuilder") return false;
+ return true;
} else if (uriString.startsWith("package:kernel/")) {
// DirtifyingList is used for lazy stuff and naturally change in numbers.
if (classDetails.name == "DirtifyingList") return true;
diff --git a/tools/VERSION b/tools/VERSION
index ff8d5ab..d47f5f9 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 18
PATCH 0
-PRERELEASE 232
+PRERELEASE 233
PRERELEASE_PATCH 0
\ No newline at end of file