@@ -8,29 +8,56 @@ import 'package:analyzer/src/fine/manifest_context.dart';
88import 'package:analyzer/src/summary2/data_reader.dart' ;
99import 'package:analyzer/src/summary2/data_writer.dart' ;
1010
11- class ManifestAnnotation extends ManifestNode {
12- final ManifestSimpleIdentifier name;
11+ sealed class ManifestNode {
12+ bool match (MatchContext context, AstNode node);
13+
14+ void write (BufferedSink sink);
15+
16+ static ManifestNode encode (EncodeContext context, AstNode node) {
17+ switch (node) {
18+ case Annotation ():
19+ return ManifestNodeAnnotation .encode (context, node);
20+ case SimpleIdentifier ():
21+ return ManifestNodeSimpleIdentifier .encode (context, node);
22+ default :
23+ throw UnimplementedError ('(${node .runtimeType }) $node ' );
24+ }
25+ }
26+
27+ static ManifestNode read (SummaryDataReader reader) {
28+ var kind = reader.readEnum (_ManifestNodeKind .values);
29+ switch (kind) {
30+ case _ManifestNodeKind .annotation:
31+ return ManifestNodeAnnotation .read (reader);
32+ case _ManifestNodeKind .simpleIdentifier:
33+ return ManifestNodeSimpleIdentifier .read (reader);
34+ }
35+ }
36+ }
37+
38+ class ManifestNodeAnnotation extends ManifestNode {
39+ final ManifestNodeSimpleIdentifier name;
1340
14- ManifestAnnotation ({
41+ ManifestNodeAnnotation ({
1542 required this .name,
1643 });
1744
18- factory ManifestAnnotation .encode (
45+ factory ManifestNodeAnnotation .encode (
1946 EncodeContext context,
2047 Annotation node,
2148 ) {
2249 if (node.name case SimpleIdentifier identifier) {
23- return ManifestAnnotation (
24- name: ManifestSimpleIdentifier .encode (context, identifier),
50+ return ManifestNodeAnnotation (
51+ name: ManifestNodeSimpleIdentifier .encode (context, identifier),
2552 );
2653 } else {
2754 throw UnimplementedError ('(${node .runtimeType }) $node ' );
2855 }
2956 }
3057
31- factory ManifestAnnotation .read (SummaryDataReader reader) {
32- return ManifestAnnotation (
33- name: ManifestSimpleIdentifier .read (reader),
58+ factory ManifestNodeAnnotation .read (SummaryDataReader reader) {
59+ return ManifestNodeAnnotation (
60+ name: ManifestNodeSimpleIdentifier .read (reader),
3461 );
3562 }
3663
@@ -54,56 +81,29 @@ class ManifestAnnotation extends ManifestNode {
5481 }
5582}
5683
57- sealed class ManifestNode {
58- bool match (MatchContext context, AstNode node);
59-
60- void write (BufferedSink sink);
61-
62- static ManifestNode encode (EncodeContext context, AstNode node) {
63- switch (node) {
64- case Annotation ():
65- return ManifestAnnotation .encode (context, node);
66- case SimpleIdentifier ():
67- return ManifestSimpleIdentifier .encode (context, node);
68- default :
69- throw UnimplementedError ('(${node .runtimeType }) $node ' );
70- }
71- }
72-
73- static ManifestNode read (SummaryDataReader reader) {
74- var kind = reader.readEnum (_ManifestNodeKind .values);
75- switch (kind) {
76- case _ManifestNodeKind .annotation:
77- return ManifestAnnotation .read (reader);
78- case _ManifestNodeKind .simpleIdentifier:
79- return ManifestSimpleIdentifier .read (reader);
80- }
81- }
82- }
83-
84- class ManifestSimpleIdentifier extends ManifestNode {
84+ class ManifestNodeSimpleIdentifier extends ManifestNode {
8585 final String name;
8686 final ManifestElement ? element;
8787
88- ManifestSimpleIdentifier ({
88+ ManifestNodeSimpleIdentifier ({
8989 required this .name,
9090 required this .element,
9191 });
9292
93- factory ManifestSimpleIdentifier .encode (
93+ factory ManifestNodeSimpleIdentifier .encode (
9494 EncodeContext context,
9595 SimpleIdentifier node,
9696 ) {
9797 var element = node.element;
98- return ManifestSimpleIdentifier (
98+ return ManifestNodeSimpleIdentifier (
9999 name: node.name,
100100 element:
101101 element != null ? ManifestElement .encode (context, element) : null ,
102102 );
103103 }
104104
105- factory ManifestSimpleIdentifier .read (SummaryDataReader reader) {
106- return ManifestSimpleIdentifier (
105+ factory ManifestNodeSimpleIdentifier .read (SummaryDataReader reader) {
106+ return ManifestNodeSimpleIdentifier (
107107 name: reader.readStringUtf8 (),
108108 element: reader.readOptionalObject (
109109 () => ManifestElement .read (reader),
0 commit comments