Skip to content

Commit aa0f0e1

Browse files
johnniwintherCommit Queue
authored andcommitted
[cfe] Remove MemberBuilder.isConflictingSetter
Setters declared before assignable fields are now treated as the primary declaration and the assignable field as the duplicate. Change-Id: I39fd238e0634f3229a4f03f564a5a4ec2826eaf1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/431242 Commit-Queue: Johnni Winther <[email protected]> Reviewed-by: Chloe Stefantsova <[email protected]>
1 parent 0045c0e commit aa0f0e1

File tree

48 files changed

+811
-276
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+811
-276
lines changed

pkg/front_end/lib/src/base/lookup_result.dart

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import '../builder/builder.dart';
6-
import '../builder/member_builder.dart';
76
import 'scope.dart';
87

98
abstract class LookupResult {
@@ -37,20 +36,10 @@ abstract class LookupResult {
3736
}
3837
if (setable != null) {
3938
if (setable.next != null) {
40-
AmbiguousBuilder ambiguousBuilder =
41-
setable = new AmbiguousBuilder(name, setable, fileOffset, fileUri);
42-
Builder firstSetable = ambiguousBuilder.getFirstDeclaration();
43-
if (firstSetable is MemberBuilder && firstSetable.isConflictingSetter) {
44-
setable = null;
45-
}
46-
changed = true;
47-
} else if (setable is MemberBuilder && setable.isConflictingSetter) {
48-
setable = null;
39+
setable = new AmbiguousBuilder(name, setable, fileOffset, fileUri);
4940
changed = true;
5041
}
51-
if (setable != null &&
52-
staticOnly &&
53-
setable.isDeclarationInstanceMember) {
42+
if (staticOnly && setable.isDeclarationInstanceMember) {
5443
setable = null;
5544
changed = true;
5645
}

pkg/front_end/lib/src/base/name_space.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import '../builder/builder.dart';
66
import '../builder/declaration_builders.dart';
77
import '../builder/library_builder.dart';
88
import '../builder/member_builder.dart';
9-
import '../builder/property_builder.dart';
109
import 'lookup_result.dart';
1110
import 'scope.dart';
1211
import 'uris.dart';
@@ -119,11 +118,7 @@ base class ComputedMutableNameSpaceImpl implements ComputedMutableNameSpace {
119118
assert(
120119
existing.setable == null ||
121120
// Coverage-ignore(suite): Not run.
122-
existing.setable == member ||
123-
// Coverage-ignore(suite): Not run.
124-
// TODO(johnniwinther): Remove this case when getables and
125-
// setables are contained in the same map in the name space.
126-
(member is PropertyBuilder && member.isConflictingSetter),
121+
existing.setable == member,
127122
"Trying to map setable $member to $name "
128123
"replacing the existing value ${existing.setable}");
129124
if (existing.getable != null) {

pkg/front_end/lib/src/base/scope.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,7 @@ class AmbiguousBuilder extends ProblemBuilder {
410410
@override
411411
Message get message => templateDuplicatedDeclarationUse.withArguments(name);
412412

413-
// TODO(ahe): Also provide context.
414-
413+
// Coverage-ignore(suite): Not run.
415414
NamedBuilder getFirstDeclaration() {
416415
NamedBuilder declaration = builder;
417416
while (declaration.next != null) {
@@ -474,10 +473,6 @@ mixin ErroneousMemberBuilderMixin implements SourceMemberBuilder {
474473
// Coverage-ignore(suite): Not run.
475474
bool get isSynthesized => false;
476475

477-
@override
478-
// Coverage-ignore(suite): Not run.
479-
bool get isConflictingSetter => false;
480-
481476
@override
482477
DeclarationBuilder get declarationBuilder {
483478
throw new UnsupportedError('$runtimeType.declarationBuilder');

pkg/front_end/lib/src/builder/builder_mixins.dart

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,6 @@ mixin DeclarationBuilderMixin implements IDeclarationBuilder {
9494
} else if (builder.isDuplicate) {
9595
// Duplicates are not visible in the instance scope.
9696
builder = null;
97-
} else if (builder is MemberBuilder && builder.isConflictingSetter) {
98-
// Conflicting setters are not visible in the instance scope.
99-
// TODO(johnniwinther): Should we return an [AmbiguousBuilder] here and
100-
// above?
101-
builder = null;
10297
}
10398
}
10499
return builder as MemberBuilder?;

pkg/front_end/lib/src/builder/member_builder.dart

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,6 @@ abstract class MemberBuilder implements Builder, LookupResult, NamedBuilder {
8888
/// the getter and setter capabilities.
8989
Iterable<Reference> get exportedMemberReferences;
9090

91-
/// Returns `true` if this member is a setter that conflicts with the implicit
92-
/// setter of a field.
93-
bool get isConflictingSetter;
94-
9591
/// Returns the [ClassMember]s for the non-setter members created for this
9692
/// member builder.
9793
///
@@ -156,9 +152,6 @@ abstract class MemberBuilderImpl extends NamedBuilderImpl
156152
@override
157153
bool get isTopLevel => !isDeclarationMember;
158154

159-
@override
160-
bool get isConflictingSetter => false;
161-
162155
@override
163156
String get fullNameForErrors => name;
164157
}

pkg/front_end/lib/src/fragment/setter/declaration.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,8 @@ class RegularSetterDeclaration
263263
}
264264

265265
@override
266-
List<ClassMember> get localSetters => _fragment.builder.isConflictingSetter
267-
? const []
268-
: [new SetterClassMember(_fragment.builder)];
266+
List<ClassMember> get localSetters =>
267+
[new SetterClassMember(_fragment.builder)];
269268
}
270269

271270
/// Interface for using a [SetterFragment] to create a [BodyBuilderContext].

pkg/front_end/lib/src/source/source_builder_mixins.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ mixin SourceDeclarationBuilderMixin
164164
void _buildMember(SourceMemberBuilder memberBuilder, Member member,
165165
Member? tearOff, BuiltMemberKind memberKind,
166166
{required bool addMembersToLibrary}) {
167-
if (!memberBuilder.isDuplicate && !memberBuilder.isConflictingSetter) {
167+
if (!memberBuilder.isDuplicate) {
168168
if (memberKind == BuiltMemberKind.ExtensionTypeRepresentationField) {
169169
addMemberInternal(memberBuilder, memberKind, member, tearOff);
170170
} else {

pkg/front_end/lib/src/source/source_class_builder.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1324,7 +1324,7 @@ class SourceClassBuilder extends ClassBuilderImpl
13241324

13251325
void _addMemberToClass(SourceMemberBuilder memberBuilder, Member member) {
13261326
member.parent = cls;
1327-
if (!memberBuilder.isDuplicate && !memberBuilder.isConflictingSetter) {
1327+
if (!memberBuilder.isDuplicate) {
13281328
if (member is Procedure) {
13291329
cls.addProcedure(member);
13301330
} else if (member is Field) {

pkg/front_end/lib/src/source/source_library_builder.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -383,13 +383,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
383383
if (existing == member) {
384384
return false;
385385
} else {
386-
if (member is MemberBuilder && member.isConflictingSetter) {
387-
// Coverage-ignore-block(suite): Not run.
388-
// TODO(johnniwinther): Remove this case when getables and setables are
389-
// contained in the same map in the name space.
390-
_exportNameSpace.addLocalMember(name, member, setter: isSetter);
391-
return true;
392-
} else if (existing != null) {
386+
if (existing != null) {
393387
NamedBuilder result = _computeAmbiguousDeclarationForExport(
394388
name, existing, member,
395389
uriOffset: uriOffset);
@@ -1056,7 +1050,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
10561050
}
10571051
} else if (member is Procedure) {
10581052
member.isStatic = true;
1059-
if (!declaration.isDuplicate && !declaration.isConflictingSetter) {
1053+
if (!declaration.isDuplicate) {
10601054
library.addProcedure(member);
10611055
}
10621056
} else {

pkg/front_end/lib/src/source/source_member_builder.dart

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -93,19 +93,6 @@ abstract class SourceMemberBuilderImpl extends MemberBuilderImpl
9393
new MemberDataForTesting()
9494
: null;
9595

96-
bool? _isConflictingSetter;
97-
98-
@override
99-
bool get isConflictingSetter {
100-
return _isConflictingSetter ??= false;
101-
}
102-
103-
void set isConflictingSetter(bool value) {
104-
assert(_isConflictingSetter == null,
105-
'$this.isConflictingSetter has already been fixed.');
106-
_isConflictingSetter = value;
107-
}
108-
10996
@override
11097
// Coverage-ignore(suite): Not run.
11198
void buildOutlineExpressions(ClassHierarchy classHierarchy,

0 commit comments

Comments
 (0)