Skip to content

Commit 0452ea6

Browse files
scheglovCommit Queue
authored andcommitted
Fine. Move InstanceItemMemberItem.writeKind() into separate method.
Sometimes we know the exact kind, so don't need writing it. Change-Id: Iaa0573aa6af722ae64f272b6327cd9985e5a6ec7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/424260 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent ecbbf4a commit 0452ea6

File tree

1 file changed

+44
-22
lines changed

1 file changed

+44
-22
lines changed

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

Lines changed: 44 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ sealed class InstanceItem<E extends InstanceElementImpl2>
102102
sink.writeMap(
103103
declaredMembers,
104104
writeKey: (name) => name.write(sink),
105-
writeValue: (member) => member.write(sink),
105+
writeValue: (member) => member.writeWithKind(sink),
106106
);
107107
}
108108

@@ -158,9 +158,8 @@ class InstanceItemDuplicateItem
158158
}
159159

160160
@override
161-
void write(BufferedSink sink) {
162-
sink.writeEnum(_ManifestItemKind2.instanceDuplicate);
163-
super.write(sink);
161+
void writeKind(BufferedSink sink) {
162+
sink.writeEnum(_InstanceItemMemberItemKind.duplicate);
164163
}
165164
}
166165

@@ -212,11 +211,15 @@ class InstanceItemGetterItem extends InstanceItemMemberItem<GetterElementImpl> {
212211

213212
@override
214213
void write(BufferedSink sink) {
215-
sink.writeEnum(_ManifestItemKind2.instanceGetter);
216214
super.write(sink);
217215
returnType.write(sink);
218216
constInitializer.writeOptional(sink);
219217
}
218+
219+
@override
220+
void writeKind(BufferedSink sink) {
221+
sink.writeEnum(_InstanceItemMemberItemKind.getter);
222+
}
220223
}
221224

222225
sealed class InstanceItemMemberItem<E extends ExecutableElementImpl2>
@@ -240,20 +243,27 @@ sealed class InstanceItemMemberItem<E extends ExecutableElementImpl2>
240243
sink.writeBool(isStatic);
241244
}
242245

246+
void writeKind(BufferedSink sink);
247+
248+
void writeWithKind(BufferedSink sink) {
249+
writeKind(sink);
250+
write(sink);
251+
}
252+
243253
static InstanceItemMemberItem<ExecutableElementImpl2> read(
244254
SummaryDataReader reader,
245255
) {
246-
var kind = reader.readEnum(_ManifestItemKind2.values);
256+
var kind = reader.readEnum(_InstanceItemMemberItemKind.values);
247257
switch (kind) {
248-
case _ManifestItemKind2.instanceDuplicate:
258+
case _InstanceItemMemberItemKind.duplicate:
249259
return InstanceItemDuplicateItem.read(reader);
250-
case _ManifestItemKind2.instanceGetter:
260+
case _InstanceItemMemberItemKind.getter:
251261
return InstanceItemGetterItem.read(reader);
252-
case _ManifestItemKind2.instanceMethod:
262+
case _InstanceItemMemberItemKind.method:
253263
return InstanceItemMethodItem.read(reader);
254-
case _ManifestItemKind2.instanceSetter:
264+
case _InstanceItemMemberItemKind.setter:
255265
return InstanceItemSetterItem.read(reader);
256-
case _ManifestItemKind2.interfaceConstructor:
266+
case _InstanceItemMemberItemKind.constructor:
257267
return InterfaceItemConstructorItem.read(reader);
258268
}
259269
}
@@ -300,10 +310,14 @@ class InstanceItemMethodItem
300310

301311
@override
302312
void write(BufferedSink sink) {
303-
sink.writeEnum(_ManifestItemKind2.instanceMethod);
304313
super.write(sink);
305314
functionType.writeNoTag(sink);
306315
}
316+
317+
@override
318+
void writeKind(BufferedSink sink) {
319+
sink.writeEnum(_InstanceItemMemberItemKind.method);
320+
}
307321
}
308322

309323
class InstanceItemSetterItem extends InstanceItemMemberItem<SetterElementImpl> {
@@ -349,10 +363,14 @@ class InstanceItemSetterItem extends InstanceItemMemberItem<SetterElementImpl> {
349363

350364
@override
351365
void write(BufferedSink sink) {
352-
sink.writeEnum(_ManifestItemKind2.instanceSetter);
353366
super.write(sink);
354367
valueType.write(sink);
355368
}
369+
370+
@override
371+
void writeKind(BufferedSink sink) {
372+
sink.writeEnum(_InstanceItemMemberItemKind.setter);
373+
}
356374
}
357375

358376
/// The item for [InterfaceElementImpl2].
@@ -482,13 +500,17 @@ class InterfaceItemConstructorItem
482500

483501
@override
484502
void write(BufferedSink sink) {
485-
sink.writeEnum(_ManifestItemKind2.interfaceConstructor);
486503
super.write(sink);
487504
sink.writeBool(isConst);
488505
sink.writeBool(isFactory);
489506
functionType.writeNoTag(sink);
490507
constantInitializers.writeList(sink);
491508
}
509+
510+
@override
511+
void writeKind(BufferedSink sink) {
512+
sink.writeEnum(_InstanceItemMemberItemKind.constructor);
513+
}
492514
}
493515

494516
class ManifestAnnotation {
@@ -811,6 +833,14 @@ class TopLevelSetterItem extends TopLevelItem<SetterElementImpl> {
811833
}
812834
}
813835

836+
enum _InstanceItemMemberItemKind {
837+
duplicate,
838+
constructor,
839+
method,
840+
getter,
841+
setter,
842+
}
843+
814844
enum _ManifestItemKind {
815845
class_,
816846
mixin_,
@@ -819,14 +849,6 @@ enum _ManifestItemKind {
819849
topLevelSetter,
820850
}
821851

822-
enum _ManifestItemKind2 {
823-
instanceDuplicate,
824-
instanceGetter,
825-
instanceMethod,
826-
instanceSetter,
827-
interfaceConstructor,
828-
}
829-
830852
extension _AnnotatableElementExtension on AnnotatableElementImpl {
831853
MetadataImpl get effectiveMetadata {
832854
if (this case PropertyAccessorElementImpl2 accessor) {

0 commit comments

Comments
 (0)