@@ -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
222225sealed 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
309323class 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
494516class 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+
814844enum _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-
830852extension _AnnotatableElementExtension on AnnotatableElementImpl {
831853 MetadataImpl get effectiveMetadata {
832854 if (this case PropertyAccessorElementImpl2 accessor) {
0 commit comments