Skip to content

Commit 8bfe452

Browse files
scheglovCommit Queue
authored andcommitted
Fine. Use shared ManifestItem.write()
Change-Id: Ic8a6ec5ca4d817655a5186286b64bebb949928f2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/420182 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 051af84 commit 8bfe452

File tree

1 file changed

+54
-47
lines changed

1 file changed

+54
-47
lines changed

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

Lines changed: 54 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class ClassItem extends InterfaceItem {
6868
@override
6969
void write(BufferedSink sink) {
7070
sink.writeEnum(_ManifestItemKind.class_);
71-
super._write(sink);
71+
super.write(sink);
7272
}
7373
}
7474

@@ -90,9 +90,7 @@ class ExportItem extends TopLevelItem {
9090
@override
9191
void write(BufferedSink sink) {
9292
sink.writeEnum(_ManifestItemKind.export_);
93-
sink.writeUri(libraryUri);
94-
name.write(sink);
95-
id.write(sink);
93+
super.write(sink);
9694
}
9795
}
9896

@@ -109,10 +107,9 @@ sealed class InstanceItem extends TopLevelItem {
109107
required this.members,
110108
});
111109

112-
void _write(BufferedSink sink) {
113-
sink.writeUri(libraryUri);
114-
name.write(sink);
115-
id.write(sink);
110+
@override
111+
void write(BufferedSink sink) {
112+
super.write(sink);
116113
typeParameters.writeList(sink);
117114
sink.writeMap(
118115
members,
@@ -181,21 +178,17 @@ class InstanceItemGetterItem extends InstanceItemMemberItem {
181178
@override
182179
void write(BufferedSink sink) {
183180
sink.writeEnum(_ManifestItemKind2.instanceGetter);
184-
name.write(sink);
185-
id.write(sink);
186-
sink.writeBool(isStatic);
181+
super.write(sink);
187182
returnType.write(sink);
188183
}
189184
}
190185

191186
sealed class InstanceItemMemberItem extends ManifestItem {
192-
final LookupName name;
193-
final ManifestItemId id;
194187
final bool isStatic;
195188

196189
InstanceItemMemberItem({
197-
required this.name,
198-
required this.id,
190+
required super.name,
191+
required super.id,
199192
required this.isStatic,
200193
});
201194

@@ -210,6 +203,12 @@ sealed class InstanceItemMemberItem extends ManifestItem {
210203
return InterfaceItemConstructorItem.read(reader);
211204
}
212205
}
206+
207+
@override
208+
void write(BufferedSink sink) {
209+
super.write(sink);
210+
sink.writeBool(isStatic);
211+
}
213212
}
214213

215214
class InstanceItemMethodItem extends InstanceItemMemberItem {
@@ -262,9 +261,7 @@ class InstanceItemMethodItem extends InstanceItemMemberItem {
262261
@override
263262
void write(BufferedSink sink) {
264263
sink.writeEnum(_ManifestItemKind2.instanceMethod);
265-
name.write(sink);
266-
id.write(sink);
267-
sink.writeBool(isStatic);
264+
super.write(sink);
268265
functionType.writeNoTag(sink);
269266
}
270267
}
@@ -286,6 +283,14 @@ sealed class InterfaceItem extends InstanceItem {
286283
required this.mixins,
287284
});
288285

286+
@override
287+
void write(BufferedSink sink) {
288+
super.write(sink);
289+
supertype.writeOptional(sink);
290+
mixins.writeList(sink);
291+
interfaces.writeList(sink);
292+
}
293+
289294
MatchContext? _matchInterfaceElement(InterfaceElementImpl2 element) {
290295
var context = MatchContext(parent: null);
291296
context.addTypeParameters(element.typeParameters2);
@@ -296,14 +301,6 @@ sealed class InterfaceItem extends InstanceItem {
296301
}
297302
return null;
298303
}
299-
300-
@override
301-
void _write(BufferedSink sink) {
302-
super._write(sink);
303-
supertype.writeOptional(sink);
304-
mixins.writeList(sink);
305-
interfaces.writeList(sink);
306-
}
307304
}
308305

309306
class InterfaceItemConstructorItem extends InstanceItemMemberItem {
@@ -314,10 +311,11 @@ class InterfaceItemConstructorItem extends InstanceItemMemberItem {
314311
InterfaceItemConstructorItem({
315312
required super.name,
316313
required super.id,
314+
required super.isStatic,
317315
required this.isConst,
318316
required this.isFactory,
319317
required this.functionType,
320-
}) : super(isStatic: false);
318+
});
321319

322320
factory InterfaceItemConstructorItem.fromElement({
323321
required LookupName name,
@@ -329,6 +327,7 @@ class InterfaceItemConstructorItem extends InstanceItemMemberItem {
329327
return InterfaceItemConstructorItem(
330328
name: name,
331329
id: id,
330+
isStatic: false,
332331
isConst: element.isConst,
333332
isFactory: element.isFactory,
334333
functionType: element.type.encode(context),
@@ -339,6 +338,7 @@ class InterfaceItemConstructorItem extends InstanceItemMemberItem {
339338
return InterfaceItemConstructorItem(
340339
name: LookupName.read(reader),
341340
id: ManifestItemId.read(reader),
341+
isStatic: reader.readBool(),
342342
isConst: reader.readBool(),
343343
isFactory: reader.readBool(),
344344
functionType: ManifestFunctionType.read(reader),
@@ -365,8 +365,7 @@ class InterfaceItemConstructorItem extends InstanceItemMemberItem {
365365
@override
366366
void write(BufferedSink sink) {
367367
sink.writeEnum(_ManifestItemKind2.interfaceConstructor);
368-
name.write(sink);
369-
id.write(sink);
368+
super.write(sink);
370369
sink.writeBool(isConst);
371370
sink.writeBool(isFactory);
372371
functionType.writeNoTag(sink);
@@ -409,7 +408,21 @@ class ManifestAnnotation {
409408
}
410409

411410
sealed class ManifestItem {
412-
void write(BufferedSink sink);
411+
/// The name of the item, mostly for debugging.
412+
final LookupName name;
413+
414+
/// The unique identifier of this item.
415+
final ManifestItemId id;
416+
417+
ManifestItem({
418+
required this.name,
419+
required this.id,
420+
});
421+
422+
void write(BufferedSink sink) {
423+
name.write(sink);
424+
id.write(sink);
425+
}
413426
}
414427

415428
class ManifestMetadata {
@@ -505,9 +518,7 @@ class TopLevelFunctionItem extends TopLevelItem {
505518
@override
506519
void write(BufferedSink sink) {
507520
sink.writeEnum(_ManifestItemKind.topLevelFunction);
508-
sink.writeUri(libraryUri);
509-
name.write(sink);
510-
id.write(sink);
521+
super.write(sink);
511522
functionType.writeNoTag(sink);
512523
}
513524
}
@@ -574,9 +585,7 @@ class TopLevelGetterItem extends TopLevelItem {
574585
@override
575586
void write(BufferedSink sink) {
576587
sink.writeEnum(_ManifestItemKind.topLevelGetter);
577-
sink.writeUri(libraryUri);
578-
name.write(sink);
579-
id.write(sink);
588+
super.write(sink);
580589
metadata.write(sink);
581590
returnType.write(sink);
582591
constInitializer.writeOptional(sink);
@@ -587,16 +596,10 @@ sealed class TopLevelItem extends ManifestItem {
587596
/// The URI of the declaring library, mostly for debugging.
588597
final Uri libraryUri;
589598

590-
/// The name of the item, mostly for debugging.
591-
final LookupName name;
592-
593-
/// The unique identifier of this item.
594-
final ManifestItemId id;
595-
596599
TopLevelItem({
597600
required this.libraryUri,
598-
required this.name,
599-
required this.id,
601+
required super.name,
602+
required super.id,
600603
});
601604

602605
factory TopLevelItem.read(SummaryDataReader reader) {
@@ -614,6 +617,12 @@ sealed class TopLevelItem extends ManifestItem {
614617
return TopLevelSetterItem.read(reader);
615618
}
616619
}
620+
621+
@override
622+
void write(BufferedSink sink) {
623+
sink.writeUri(libraryUri);
624+
super.write(sink);
625+
}
617626
}
618627

619628
class TopLevelSetterItem extends TopLevelItem {
@@ -670,9 +679,7 @@ class TopLevelSetterItem extends TopLevelItem {
670679
@override
671680
void write(BufferedSink sink) {
672681
sink.writeEnum(_ManifestItemKind.topLevelSetter);
673-
sink.writeUri(libraryUri);
674-
name.write(sink);
675-
id.write(sink);
682+
super.write(sink);
676683
metadata.write(sink);
677684
valueType.write(sink);
678685
}

0 commit comments

Comments
 (0)