[cfe] Implement getter-setter-error for extension types
Closes https://github.com/dart-lang/sdk/issues/58579
Change-Id: I64c4120d80982b38f1ac378acde04351325b632d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/432260
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
diff --git a/pkg/front_end/lib/src/builder/member_builder.dart b/pkg/front_end/lib/src/builder/member_builder.dart
index 4860357..dc2dda6 100644
--- a/pkg/front_end/lib/src/builder/member_builder.dart
+++ b/pkg/front_end/lib/src/builder/member_builder.dart
@@ -223,9 +223,9 @@
ClassMember get interfaceMember => this;
@override
+ // Coverage-ignore(suite): Not run.
MemberResult getMemberResult(ClassMembersBuilder membersBuilder) {
if (isStatic) {
- // Coverage-ignore-block(suite): Not run.
return new StaticMemberResult(getMember(membersBuilder), memberKind,
isDeclaredAsField:
isDeclaredAsField(memberBuilder, forSetter: forSetter),
diff --git a/pkg/front_end/lib/src/dill/dill_extension_type_member_builder.dart b/pkg/front_end/lib/src/dill/dill_extension_type_member_builder.dart
index db54120..38e41cc 100644
--- a/pkg/front_end/lib/src/dill/dill_extension_type_member_builder.dart
+++ b/pkg/front_end/lib/src/dill/dill_extension_type_member_builder.dart
@@ -121,6 +121,7 @@
Iterable<Reference> get exportedMemberReferences => [_procedure.reference];
@override
+ // Coverage-ignore(suite): Not run.
FieldQuality get fieldQuality => FieldQuality.Absent;
@override
@@ -168,6 +169,7 @@
Iterable<Reference> get exportedMemberReferences => [_procedure.reference];
@override
+ // Coverage-ignore(suite): Not run.
FieldQuality get fieldQuality => FieldQuality.Absent;
@override
diff --git a/pkg/front_end/lib/src/dill/dill_member_builder.dart b/pkg/front_end/lib/src/dill/dill_member_builder.dart
index 55b5389..05740aa 100644
--- a/pkg/front_end/lib/src/dill/dill_member_builder.dart
+++ b/pkg/front_end/lib/src/dill/dill_member_builder.dart
@@ -367,6 +367,7 @@
"member $memberBuilder.");
@override
+ // Coverage-ignore(suite): Not run.
bool get isSourceDeclaration => false;
@override
@@ -428,6 +429,7 @@
}
@override
+ // Coverage-ignore(suite): Not run.
MemberResult getMemberResult(ClassMembersBuilder membersBuilder) {
Member member = getMember(membersBuilder);
if (member is Procedure &&
diff --git a/pkg/front_end/lib/src/fragment/field/class_member.dart b/pkg/front_end/lib/src/fragment/field/class_member.dart
index 3714796..1608f31 100644
--- a/pkg/front_end/lib/src/fragment/field/class_member.dart
+++ b/pkg/front_end/lib/src/fragment/field/class_member.dart
@@ -191,6 +191,7 @@
}
@override
+ // Coverage-ignore(suite): Not run.
MemberResult getMemberResult(ClassMembersBuilder membersBuilder) {
return new TypeDeclarationInstanceMemberResult(
getMember(membersBuilder), memberKind,
diff --git a/pkg/front_end/lib/src/kernel/hierarchy/class_member.dart b/pkg/front_end/lib/src/kernel/hierarchy/class_member.dart
index dd2cbe5..b04f61a 100644
--- a/pkg/front_end/lib/src/kernel/hierarchy/class_member.dart
+++ b/pkg/front_end/lib/src/kernel/hierarchy/class_member.dart
@@ -55,6 +55,7 @@
ClassMembersBuilder membersBuilder, TypeDeclarationType thisType);
}
+// Coverage-ignore(suite): Not run.
class TypeDeclarationInstanceMemberResult implements MemberResult {
final Member member;
final ClassMemberKind kind;
@@ -90,8 +91,7 @@
DartType getMemberType(
ClassMembersBuilder membersBuilder, TypeDeclarationType thisType) {
DartType type = switch (kind) {
- ClassMemberKind.Method => // Coverage-ignore(suite): Not run.
- member.getterType,
+ ClassMemberKind.Method => member.getterType,
ClassMemberKind.Getter => member.getterType,
ClassMemberKind.Setter => member.setterType,
};
@@ -107,6 +107,7 @@
}
}
+// Coverage-ignore(suite): Not run.
class StaticMemberResult implements MemberResult {
final Member member;
final ClassMemberKind kind;
@@ -134,14 +135,14 @@
DartType getMemberType(
ClassMembersBuilder membersBuilder, TypeDeclarationType thisType) {
return switch (kind) {
- ClassMemberKind.Method => // Coverage-ignore(suite): Not run.
- member.getterType,
+ ClassMemberKind.Method => member.getterType,
ClassMemberKind.Getter => member.getterType,
ClassMemberKind.Setter => member.setterType,
};
}
}
+// Coverage-ignore(suite): Not run.
class ExtensionTypeMemberResult implements MemberResult {
final ExtensionTypeDeclaration extensionTypeDeclaration;
final Member member;
@@ -177,7 +178,6 @@
"Unexpected member type for $member (${member.runtimeType}).");
FunctionType type = member.getterType as FunctionType;
if (type.typeParameters.isNotEmpty) {
- // Coverage-ignore-block(suite): Not run.
type = FunctionTypeInstantiator.instantiate(
type,
membersBuilder.hierarchyBuilder.types.getTypeArgumentsAsInstanceOf(
@@ -185,7 +185,6 @@
}
switch (kind) {
case ClassMemberKind.Method:
- // Coverage-ignore(suite): Not run.
// For methods [member] is the tear-off so the member type is the return
// type.
return type.returnType;
@@ -373,6 +372,7 @@
bool get isSetter => forSetter;
@override
+ // Coverage-ignore(suite): Not run.
bool get isSourceDeclaration => false;
@override
@@ -388,6 +388,7 @@
ClassMembersBuilder membersBuilder, Set<ClassMember> overriddenMembers) {}
@override
+ // Coverage-ignore(suite): Not run.
MemberResult getMemberResult(ClassMembersBuilder membersBuilder) {
return new TypeDeclarationInstanceMemberResult(
getMember(membersBuilder), memberKind,
@@ -1078,6 +1079,7 @@
// Coverage-ignore(suite): Not run.
memberBuilder.setterQuality == SetterQuality.ImplicitAbstract);
} else {
+ // Coverage-ignore-block(suite): Not run.
return memberBuilder is PropertyBuilder && memberBuilder.hasField;
}
}
diff --git a/pkg/front_end/lib/src/kernel/hierarchy/delayed.dart b/pkg/front_end/lib/src/kernel/hierarchy/delayed.dart
index 3557f5d..5a8fdbc 100644
--- a/pkg/front_end/lib/src/kernel/hierarchy/delayed.dart
+++ b/pkg/front_end/lib/src/kernel/hierarchy/delayed.dart
@@ -91,8 +91,10 @@
LibraryBuilder get libraryBuilder => declarationBuilder.libraryBuilder;
+ // Coverage-ignore(suite): Not run.
int get declarationOffset => declarationBuilder.fileOffset;
+ // Coverage-ignore(suite): Not run.
Uri get declarationUri => declarationBuilder.fileUri;
void _checkGetterSetter({
@@ -130,6 +132,7 @@
.withLocation(setterUri, setterOffset, name.text.length)
]);
} else if (getterIsDeclared) {
+ // Coverage-ignore-block(suite): Not run.
Template<Message Function(DartType, String, DartType, String)>
template = templateInvalidGetterSetterTypeSetterInheritedGetter;
if (getterIsField) {
@@ -167,6 +170,7 @@
.withLocation(getterUri, getterOffset, name.text.length)
]);
} else {
+ // Coverage-ignore-block(suite): Not run.
Template<Message Function(DartType, String, DartType, String)>
template = templateInvalidGetterSetterTypeBothInheritedGetter;
Template<Message Function(String)> context =
@@ -263,6 +267,7 @@
}
}
+// Coverage-ignore(suite): Not run.
class DelayedExtensionTypeGetterSetterCheck extends DelayedGetterSetterCheck {
final SourceExtensionTypeDeclarationBuilder extensionTypeDeclarationBuilder;
final Name name;
diff --git a/pkg/front_end/lib/src/kernel/hierarchy/extension_type_members.dart b/pkg/front_end/lib/src/kernel/hierarchy/extension_type_members.dart
index b3a2634..7b271f6 100644
--- a/pkg/front_end/lib/src/kernel/hierarchy/extension_type_members.dart
+++ b/pkg/front_end/lib/src/kernel/hierarchy/extension_type_members.dart
@@ -218,13 +218,21 @@
/// `ET1.property2` is _not_ a subtype of the setter
/// `ET2.property1`.
///
- _membersBuilder.registerGetterSetterCheck(
- new DelayedExtensionTypeGetterSetterCheck(
- extensionTypeDeclarationBuilder
- as SourceExtensionTypeDeclarationBuilder,
- name,
- getableMember,
- setableMember));
+ SourceExtensionTypeDeclarationBuilder
+ sourceExtensionTypeDeclarationBuilder =
+ extensionTypeDeclarationBuilder
+ as SourceExtensionTypeDeclarationBuilder;
+ if (!sourceExtensionTypeDeclarationBuilder
+ .libraryBuilder.libraryFeatures.getterSetterError.isEnabled) {
+ // Coverage-ignore-block(suite): Not run.
+ _membersBuilder.registerGetterSetterCheck(
+ new DelayedExtensionTypeGetterSetterCheck(
+ extensionTypeDeclarationBuilder
+ as SourceExtensionTypeDeclarationBuilder,
+ name,
+ getableMember,
+ setableMember));
+ }
}
}
}
diff --git a/pkg/front_end/lib/src/source/source_property_builder.dart b/pkg/front_end/lib/src/source/source_property_builder.dart
index a23924e..a3ab2b6 100644
--- a/pkg/front_end/lib/src/source/source_property_builder.dart
+++ b/pkg/front_end/lib/src/source/source_property_builder.dart
@@ -611,6 +611,7 @@
}
@override
+ // Coverage-ignore(suite): Not run.
MemberResult getMemberResult(ClassMembersBuilder membersBuilder) {
if (isStatic) {
return new StaticMemberResult(getMember(membersBuilder), memberKind,
@@ -742,6 +743,7 @@
}
@override
+ // Coverage-ignore(suite): Not run.
MemberResult getMemberResult(ClassMembersBuilder membersBuilder) {
if (isStatic) {
return new StaticMemberResult(getMember(membersBuilder), memberKind,
diff --git a/pkg/front_end/test/coverage_suite_expected.dart b/pkg/front_end/test/coverage_suite_expected.dart
index 0251ae0..f2c728c 100644
--- a/pkg/front_end/test/coverage_suite_expected.dart
+++ b/pkg/front_end/test/coverage_suite_expected.dart
@@ -295,7 +295,7 @@
),
// 100.0%.
"package:front_end/src/builder/formal_parameter_builder.dart": (
- hitCount: 170,
+ hitCount: 173,
missCount: 0,
),
// 100.0%.
@@ -330,7 +330,7 @@
),
// 100.0%.
"package:front_end/src/builder/member_builder.dart": (
- hitCount: 83,
+ hitCount: 63,
missCount: 0,
),
// 100.0%.
@@ -450,7 +450,7 @@
),
// 100.0%.
"package:front_end/src/dill/dill_extension_type_member_builder.dart": (
- hitCount: 156,
+ hitCount: 154,
missCount: 0,
),
// 100.0%.
@@ -465,7 +465,7 @@
),
// 100.0%.
"package:front_end/src/dill/dill_member_builder.dart": (
- hitCount: 255,
+ hitCount: 245,
missCount: 0,
),
// 100.0%.
@@ -565,7 +565,7 @@
),
// 100.0%.
"package:front_end/src/fragment/field/class_member.dart": (
- hitCount: 136,
+ hitCount: 129,
missCount: 0,
),
// 100.0%.
@@ -680,7 +680,7 @@
),
// 100.0%.
"package:front_end/src/kernel/body_builder.dart": (
- hitCount: 7213,
+ hitCount: 7215,
missCount: 0,
),
// 100.0%.
@@ -730,7 +730,7 @@
),
// 100.0%.
"package:front_end/src/kernel/dynamic_module_validator.dart": (
- hitCount: 411,
+ hitCount: 408,
missCount: 0,
),
// 100.0%.
@@ -760,17 +760,17 @@
),
// 100.0%.
"package:front_end/src/kernel/hierarchy/class_member.dart": (
- hitCount: 388,
+ hitCount: 290,
missCount: 0,
),
// 100.0%.
"package:front_end/src/kernel/hierarchy/delayed.dart": (
- hitCount: 212,
+ hitCount: 137,
missCount: 0,
),
// 100.0%.
"package:front_end/src/kernel/hierarchy/extension_type_members.dart": (
- hitCount: 389,
+ hitCount: 390,
missCount: 0,
),
// 100.0%.
@@ -986,7 +986,7 @@
),
// 100.0%.
"package:front_end/src/source/source_library_builder.dart": (
- hitCount: 1123,
+ hitCount: 1125,
missCount: 0,
),
// 100.0%.
@@ -1006,7 +1006,7 @@
),
// 100.0%.
"package:front_end/src/source/source_property_builder.dart": (
- hitCount: 520,
+ hitCount: 474,
missCount: 0,
),
// 100.0%.
diff --git a/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.expect b/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.expect
index 86afb3b..4fa89f0 100644
--- a/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.expect
+++ b/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.expect
@@ -79,61 +79,6 @@
// void set method4(int value) {}
// ^^^^^^^
//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:89:11: Error: The type 'int' of the getter 'ExtensionType11.property' is not a subtype of the type 'String' of the setter 'ExtensionType11.property'.
-// int get property => 42; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:90:12: Context: This is the declaration of the setter 'ExtensionType11.property'.
-// void set property(String value) {} /* Error */
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:93:16: Error: The type 'int' of the inherited getter 'ClassL.property' is not a subtype of the type 'String' of the inherited setter 'ClassM.property'.
-// extension type ExtensionType12a(ClassLM n) /* Error */
-// ^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:93:11: Context: This is the declaration of the getter 'ClassL.property'.
-// int get property => 42;
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:97:12: Context: This is the declaration of the setter 'ClassM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:98:12: Error: The type 'int' of the inherited getter 'ClassL.property' is not a subtype of the type 'bool' of the setter 'ExtensionType12b.property'.
-// void set property(bool value) {} /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:93:11: Context: This is the declaration of the getter 'ClassL.property'.
-// int get property => 42;
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:103:12: Error: The type 'bool' of the getter 'ExtensionType12c.property' is not a subtype of the type 'String' of the inherited setter 'ClassM.property'.
-// bool get property => true; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:97:12: Context: This is the declaration of the setter 'ClassM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:112:16: Error: The type 'int' of the inherited getter 'ExtensionTypeL.property' is not a subtype of the type 'String' of the inherited setter 'ExtensionTypeM.property'.
-// extension type ExtensionType13a(ClassLM i) /* Error */
-// ^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:103:11: Context: This is the declaration of the getter 'ExtensionTypeL.property'.
-// int get property => 42;
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:107:12: Context: This is the declaration of the setter 'ExtensionTypeM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:117:12: Error: The type 'int' of the inherited getter 'ExtensionTypeL.property' is not a subtype of the type 'bool' of the setter 'ExtensionType13b.property'.
-// void set property(bool value) {} /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:103:11: Context: This is the declaration of the getter 'ExtensionTypeL.property'.
-// int get property => 42;
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:122:12: Error: The type 'bool' of the getter 'ExtensionType13c.property' is not a subtype of the type 'String' of the inherited setter 'ExtensionTypeM.property'.
-// bool get property => true; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:107:12: Context: This is the declaration of the setter 'ExtensionTypeM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
// pkg/front_end/testcases/extension_types/implements_conflicts.dart:42:16: Error: Extension type 'ExtensionType6a' inherits multiple members named 'method2' with incompatible signatures.
// Try adding a declaration of 'method2' to 'ExtensionType6a'.
// extension type ExtensionType6a(ClassF c) /* Error */
diff --git a/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.modular.expect b/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.modular.expect
index 86afb3b..4fa89f0 100644
--- a/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.modular.expect
@@ -79,61 +79,6 @@
// void set method4(int value) {}
// ^^^^^^^
//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:89:11: Error: The type 'int' of the getter 'ExtensionType11.property' is not a subtype of the type 'String' of the setter 'ExtensionType11.property'.
-// int get property => 42; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:90:12: Context: This is the declaration of the setter 'ExtensionType11.property'.
-// void set property(String value) {} /* Error */
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:93:16: Error: The type 'int' of the inherited getter 'ClassL.property' is not a subtype of the type 'String' of the inherited setter 'ClassM.property'.
-// extension type ExtensionType12a(ClassLM n) /* Error */
-// ^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:93:11: Context: This is the declaration of the getter 'ClassL.property'.
-// int get property => 42;
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:97:12: Context: This is the declaration of the setter 'ClassM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:98:12: Error: The type 'int' of the inherited getter 'ClassL.property' is not a subtype of the type 'bool' of the setter 'ExtensionType12b.property'.
-// void set property(bool value) {} /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:93:11: Context: This is the declaration of the getter 'ClassL.property'.
-// int get property => 42;
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:103:12: Error: The type 'bool' of the getter 'ExtensionType12c.property' is not a subtype of the type 'String' of the inherited setter 'ClassM.property'.
-// bool get property => true; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:97:12: Context: This is the declaration of the setter 'ClassM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:112:16: Error: The type 'int' of the inherited getter 'ExtensionTypeL.property' is not a subtype of the type 'String' of the inherited setter 'ExtensionTypeM.property'.
-// extension type ExtensionType13a(ClassLM i) /* Error */
-// ^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:103:11: Context: This is the declaration of the getter 'ExtensionTypeL.property'.
-// int get property => 42;
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:107:12: Context: This is the declaration of the setter 'ExtensionTypeM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:117:12: Error: The type 'int' of the inherited getter 'ExtensionTypeL.property' is not a subtype of the type 'bool' of the setter 'ExtensionType13b.property'.
-// void set property(bool value) {} /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:103:11: Context: This is the declaration of the getter 'ExtensionTypeL.property'.
-// int get property => 42;
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:122:12: Error: The type 'bool' of the getter 'ExtensionType13c.property' is not a subtype of the type 'String' of the inherited setter 'ExtensionTypeM.property'.
-// bool get property => true; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:107:12: Context: This is the declaration of the setter 'ExtensionTypeM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
// pkg/front_end/testcases/extension_types/implements_conflicts.dart:42:16: Error: Extension type 'ExtensionType6a' inherits multiple members named 'method2' with incompatible signatures.
// Try adding a declaration of 'method2' to 'ExtensionType6a'.
// extension type ExtensionType6a(ClassF c) /* Error */
diff --git a/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.outline.expect b/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.outline.expect
index 914befd..24e638d 100644
--- a/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.outline.expect
@@ -79,61 +79,6 @@
// void set method4(int value) {}
// ^^^^^^^
//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:89:11: Error: The type 'int' of the getter 'ExtensionType11.property' is not a subtype of the type 'String' of the setter 'ExtensionType11.property'.
-// int get property => 42; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:90:12: Context: This is the declaration of the setter 'ExtensionType11.property'.
-// void set property(String value) {} /* Error */
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:93:16: Error: The type 'int' of the inherited getter 'ClassL.property' is not a subtype of the type 'String' of the inherited setter 'ClassM.property'.
-// extension type ExtensionType12a(ClassLM n) /* Error */
-// ^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:93:11: Context: This is the declaration of the getter 'ClassL.property'.
-// int get property => 42;
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:97:12: Context: This is the declaration of the setter 'ClassM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:98:12: Error: The type 'int' of the inherited getter 'ClassL.property' is not a subtype of the type 'bool' of the setter 'ExtensionType12b.property'.
-// void set property(bool value) {} /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:93:11: Context: This is the declaration of the getter 'ClassL.property'.
-// int get property => 42;
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:103:12: Error: The type 'bool' of the getter 'ExtensionType12c.property' is not a subtype of the type 'String' of the inherited setter 'ClassM.property'.
-// bool get property => true; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:97:12: Context: This is the declaration of the setter 'ClassM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:112:16: Error: The type 'int' of the inherited getter 'ExtensionTypeL.property' is not a subtype of the type 'String' of the inherited setter 'ExtensionTypeM.property'.
-// extension type ExtensionType13a(ClassLM i) /* Error */
-// ^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:103:11: Context: This is the declaration of the getter 'ExtensionTypeL.property'.
-// int get property => 42;
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:107:12: Context: This is the declaration of the setter 'ExtensionTypeM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:117:12: Error: The type 'int' of the inherited getter 'ExtensionTypeL.property' is not a subtype of the type 'bool' of the setter 'ExtensionType13b.property'.
-// void set property(bool value) {} /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:103:11: Context: This is the declaration of the getter 'ExtensionTypeL.property'.
-// int get property => 42;
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:122:12: Error: The type 'bool' of the getter 'ExtensionType13c.property' is not a subtype of the type 'String' of the inherited setter 'ExtensionTypeM.property'.
-// bool get property => true; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:107:12: Context: This is the declaration of the setter 'ExtensionTypeM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
// pkg/front_end/testcases/extension_types/implements_conflicts.dart:42:16: Error: Extension type 'ExtensionType6a' inherits multiple members named 'method2' with incompatible signatures.
// Try adding a declaration of 'method2' to 'ExtensionType6a'.
// extension type ExtensionType6a(ClassF c) /* Error */
diff --git a/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.transformed.expect b/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.transformed.expect
index c4f4535..4f1679a 100644
--- a/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extension_types/implements_conflicts.dart.strong.transformed.expect
@@ -79,61 +79,6 @@
// void set method4(int value) {}
// ^^^^^^^
//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:89:11: Error: The type 'int' of the getter 'ExtensionType11.property' is not a subtype of the type 'String' of the setter 'ExtensionType11.property'.
-// int get property => 42; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:90:12: Context: This is the declaration of the setter 'ExtensionType11.property'.
-// void set property(String value) {} /* Error */
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:93:16: Error: The type 'int' of the inherited getter 'ClassL.property' is not a subtype of the type 'String' of the inherited setter 'ClassM.property'.
-// extension type ExtensionType12a(ClassLM n) /* Error */
-// ^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:93:11: Context: This is the declaration of the getter 'ClassL.property'.
-// int get property => 42;
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:97:12: Context: This is the declaration of the setter 'ClassM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:98:12: Error: The type 'int' of the inherited getter 'ClassL.property' is not a subtype of the type 'bool' of the setter 'ExtensionType12b.property'.
-// void set property(bool value) {} /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:93:11: Context: This is the declaration of the getter 'ClassL.property'.
-// int get property => 42;
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:103:12: Error: The type 'bool' of the getter 'ExtensionType12c.property' is not a subtype of the type 'String' of the inherited setter 'ClassM.property'.
-// bool get property => true; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:97:12: Context: This is the declaration of the setter 'ClassM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:112:16: Error: The type 'int' of the inherited getter 'ExtensionTypeL.property' is not a subtype of the type 'String' of the inherited setter 'ExtensionTypeM.property'.
-// extension type ExtensionType13a(ClassLM i) /* Error */
-// ^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:103:11: Context: This is the declaration of the getter 'ExtensionTypeL.property'.
-// int get property => 42;
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:107:12: Context: This is the declaration of the setter 'ExtensionTypeM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:117:12: Error: The type 'int' of the inherited getter 'ExtensionTypeL.property' is not a subtype of the type 'bool' of the setter 'ExtensionType13b.property'.
-// void set property(bool value) {} /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:103:11: Context: This is the declaration of the getter 'ExtensionTypeL.property'.
-// int get property => 42;
-// ^^^^^^^^
-//
-// pkg/front_end/testcases/extension_types/implements_conflicts.dart:122:12: Error: The type 'bool' of the getter 'ExtensionType13c.property' is not a subtype of the type 'String' of the inherited setter 'ExtensionTypeM.property'.
-// bool get property => true; /* Error */
-// ^^^^^^^^
-// pkg/front_end/testcases/extension_types/implements_conflicts_lib.dart:107:12: Context: This is the declaration of the setter 'ExtensionTypeM.property'.
-// void set property(String value) {}
-// ^^^^^^^^
-//
// pkg/front_end/testcases/extension_types/implements_conflicts.dart:42:16: Error: Extension type 'ExtensionType6a' inherits multiple members named 'method2' with incompatible signatures.
// Try adding a declaration of 'method2' to 'ExtensionType6a'.
// extension type ExtensionType6a(ClassF c) /* Error */
diff --git a/pkg/front_end/testcases/extension_types/issue53539.dart b/pkg/front_end/testcases/extension_types/issue53539.dart
index 05ca223..6ebf46a 100644
--- a/pkg/front_end/testcases/extension_types/issue53539.dart
+++ b/pkg/front_end/testcases/extension_types/issue53539.dart
@@ -3,5 +3,5 @@
// BSD-style license that can be found in the LICENSE file.
extension type ET(int id) {
- void set id(String i) /* Error */ {}
+ void set id(String i) {}
}
diff --git a/pkg/front_end/testcases/extension_types/issue53539.dart.strong.expect b/pkg/front_end/testcases/extension_types/issue53539.dart.strong.expect
index e99e91a..6bbaee3 100644
--- a/pkg/front_end/testcases/extension_types/issue53539.dart.strong.expect
+++ b/pkg/front_end/testcases/extension_types/issue53539.dart.strong.expect
@@ -1,14 +1,4 @@
library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extension_types/issue53539.dart:5:23: Error: The type 'int' of the getter 'ET.id' is not a subtype of the type 'String' of the setter 'ET.id'.
-// extension type ET(int id) {
-// ^^
-// pkg/front_end/testcases/extension_types/issue53539.dart:6:12: Context: This is the declaration of the setter 'ET.id'.
-// void set id(String i) /* Error */ {}
-// ^^
-//
import self as self;
import "dart:core" as core;
diff --git a/pkg/front_end/testcases/extension_types/issue53539.dart.strong.modular.expect b/pkg/front_end/testcases/extension_types/issue53539.dart.strong.modular.expect
index e99e91a..6bbaee3 100644
--- a/pkg/front_end/testcases/extension_types/issue53539.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/extension_types/issue53539.dart.strong.modular.expect
@@ -1,14 +1,4 @@
library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extension_types/issue53539.dart:5:23: Error: The type 'int' of the getter 'ET.id' is not a subtype of the type 'String' of the setter 'ET.id'.
-// extension type ET(int id) {
-// ^^
-// pkg/front_end/testcases/extension_types/issue53539.dart:6:12: Context: This is the declaration of the setter 'ET.id'.
-// void set id(String i) /* Error */ {}
-// ^^
-//
import self as self;
import "dart:core" as core;
diff --git a/pkg/front_end/testcases/extension_types/issue53539.dart.strong.outline.expect b/pkg/front_end/testcases/extension_types/issue53539.dart.strong.outline.expect
index d4c231c..deb934c 100644
--- a/pkg/front_end/testcases/extension_types/issue53539.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/extension_types/issue53539.dart.strong.outline.expect
@@ -1,14 +1,4 @@
library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extension_types/issue53539.dart:5:23: Error: The type 'int' of the getter 'ET.id' is not a subtype of the type 'String' of the setter 'ET.id'.
-// extension type ET(int id) {
-// ^^
-// pkg/front_end/testcases/extension_types/issue53539.dart:6:12: Context: This is the declaration of the setter 'ET.id'.
-// void set id(String i) /* Error */ {}
-// ^^
-//
import self as self;
import "dart:core" as core;
diff --git a/pkg/front_end/testcases/extension_types/issue53539.dart.strong.transformed.expect b/pkg/front_end/testcases/extension_types/issue53539.dart.strong.transformed.expect
index e99e91a..6bbaee3 100644
--- a/pkg/front_end/testcases/extension_types/issue53539.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extension_types/issue53539.dart.strong.transformed.expect
@@ -1,14 +1,4 @@
library;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/extension_types/issue53539.dart:5:23: Error: The type 'int' of the getter 'ET.id' is not a subtype of the type 'String' of the setter 'ET.id'.
-// extension type ET(int id) {
-// ^^
-// pkg/front_end/testcases/extension_types/issue53539.dart:6:12: Context: This is the declaration of the setter 'ET.id'.
-// void set id(String i) /* Error */ {}
-// ^^
-//
import self as self;
import "dart:core" as core;