Skip to content

Commit 060cd29

Browse files
scheglovCommit Queue
authored andcommitted
Fine. Use ExecutableElementImpl2 for items.
Now that we store inherited members as IDs, not as items, we create items only for Impl(s). Change-Id: Ia06365303b5c8e775395f48c05d54ef18234866c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/421883 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 9b64f7c commit 060cd29

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

pkg/analyzer/lib/src/fine/library_manifest.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ class LibraryManifestBuilder {
193193
void _addInstanceElementGetter({
194194
required EncodeContext encodingContext,
195195
required InstanceItem instanceItem,
196-
required GetterElement2OrMember element,
196+
required GetterElementImpl element,
197197
}) {
198198
var lookupName = element.lookupName?.asLookupName;
199199
if (lookupName == null) {
@@ -213,22 +213,22 @@ class LibraryManifestBuilder {
213213
void _addInstanceElementInstanceExecutable({
214214
required EncodeContext encodingContext,
215215
required InstanceItem instanceItem,
216-
required ExecutableElement2OrMember element,
216+
required ExecutableElementImpl2 element,
217217
}) {
218218
switch (element) {
219-
case GetterElement2OrMember():
219+
case GetterElementImpl():
220220
_addInstanceElementGetter(
221221
encodingContext: encodingContext,
222222
instanceItem: instanceItem,
223223
element: element,
224224
);
225-
case MethodElement2OrMember():
225+
case MethodElementImpl2():
226226
_addInstanceElementMethod(
227227
encodingContext: encodingContext,
228228
instanceItem: instanceItem,
229229
element: element,
230230
);
231-
case SetterElement2OrMember():
231+
case SetterElementImpl():
232232
_addInstanceElementSetter(
233233
encodingContext: encodingContext,
234234
instanceItem: instanceItem,
@@ -240,7 +240,7 @@ class LibraryManifestBuilder {
240240
void _addInstanceElementMethod({
241241
required EncodeContext encodingContext,
242242
required InstanceItem instanceItem,
243-
required MethodElement2OrMember element,
243+
required MethodElementImpl2 element,
244244
}) {
245245
var lookupName = element.lookupName?.asLookupName;
246246
if (lookupName == null) {
@@ -260,7 +260,7 @@ class LibraryManifestBuilder {
260260
void _addInstanceElementSetter({
261261
required EncodeContext encodingContext,
262262
required InstanceItem instanceItem,
263-
required SetterElement2OrMember element,
263+
required SetterElementImpl element,
264264
}) {
265265
var lookupName = element.lookupName?.asLookupName;
266266
if (lookupName == null) {
@@ -763,12 +763,12 @@ class _LibraryMatch {
763763
required MatchContext interfaceMatchContext,
764764
required Map<LookupName, InstanceItemMemberItem> members,
765765
required LookupName lookupName,
766-
required ExecutableElement2 executable,
766+
required ExecutableElementImpl2 executable,
767767
}) {
768768
var item = members[lookupName];
769769

770770
switch (executable) {
771-
case GetterElement2OrMember():
771+
case GetterElementImpl():
772772
if (item is! InstanceItemGetterItem) {
773773
return false;
774774
}
@@ -782,7 +782,7 @@ class _LibraryMatch {
782782
refElementsMap[executable] = matchContext.elementList;
783783
refExternalIds.addAll(matchContext.externalIds);
784784
return true;
785-
case MethodElement2OrMember():
785+
case MethodElementImpl2():
786786
if (item is! InstanceItemMethodItem) {
787787
return false;
788788
}
@@ -796,7 +796,7 @@ class _LibraryMatch {
796796
refElementsMap[executable] = matchContext.elementList;
797797
refExternalIds.addAll(matchContext.externalIds);
798798
return true;
799-
case SetterElement2OrMember():
799+
case SetterElementImpl():
800800
if (item is! InstanceItemSetterItem) {
801801
return false;
802802
}
@@ -810,10 +810,10 @@ class _LibraryMatch {
810810
refElementsMap[executable] = matchContext.elementList;
811811
refExternalIds.addAll(matchContext.externalIds);
812812
return true;
813+
default:
814+
// SAFETY: the cases above handle all expected executables.
815+
throw StateError('(${executable.runtimeType}) $executable');
813816
}
814-
815-
// TODO(scheglov): fix it
816-
throw UnimplementedError('(${executable.runtimeType}) $executable');
817817
}
818818

819819
void _matchInstanceExecutables({

pkg/analyzer/lib/src/fine/manifest_item.dart

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,8 @@ class InstanceItemGetterItem extends InstanceItemMemberItem {
120120
factory InstanceItemGetterItem.fromElement({
121121
required ManifestItemId id,
122122
required EncodeContext context,
123-
required GetterElement2OrMember element,
123+
required GetterElementImpl element,
124124
}) {
125-
element as GetterElementImpl; // TODO(scheglov): remove it
126125
return InstanceItemGetterItem(
127126
id: id,
128127
metadata: ManifestMetadata.encode(
@@ -148,9 +147,8 @@ class InstanceItemGetterItem extends InstanceItemMemberItem {
148147
@override
149148
bool match(
150149
MatchContext context,
151-
covariant GetterElement2OrMember element,
150+
covariant GetterElementImpl element,
152151
) {
153-
element as GetterElementImpl; // TODO(scheglov): remove it
154152
return super.match(context, element) &&
155153
returnType.match(context, element.returnType) &&
156154
constInitializer.match(context, element.constInitializer);
@@ -191,7 +189,7 @@ sealed class InstanceItemMemberItem extends ManifestItem {
191189
@override
192190
bool match(
193191
MatchContext context,
194-
covariant ExecutableElement2OrMember element,
192+
covariant ExecutableElementImpl2 element,
195193
) {
196194
return super.match(context, element) && element.isStatic == isStatic;
197195
}
@@ -216,7 +214,7 @@ class InstanceItemMethodItem extends InstanceItemMemberItem {
216214
factory InstanceItemMethodItem.fromElement({
217215
required ManifestItemId id,
218216
required EncodeContext context,
219-
required MethodElement2OrMember element,
217+
required MethodElementImpl2 element,
220218
}) {
221219
return InstanceItemMethodItem(
222220
id: id,
@@ -238,7 +236,7 @@ class InstanceItemMethodItem extends InstanceItemMemberItem {
238236
@override
239237
bool match(
240238
MatchContext context,
241-
covariant MethodElement2OrMember element,
239+
covariant MethodElementImpl2 element,
242240
) {
243241
return super.match(context, element) &&
244242
functionType.match(context, element.type);
@@ -265,7 +263,7 @@ class InstanceItemSetterItem extends InstanceItemMemberItem {
265263
factory InstanceItemSetterItem.fromElement({
266264
required ManifestItemId id,
267265
required EncodeContext context,
268-
required SetterElement2OrMember element,
266+
required SetterElementImpl element,
269267
}) {
270268
return InstanceItemSetterItem(
271269
id: id,
@@ -290,7 +288,7 @@ class InstanceItemSetterItem extends InstanceItemMemberItem {
290288
@override
291289
bool match(
292290
MatchContext context,
293-
covariant SetterElement2OrMember element,
291+
covariant SetterElementImpl element,
294292
) {
295293
return super.match(context, element) &&
296294
valueType.match(context, element.formalParameters[0].type);

0 commit comments

Comments
 (0)