@@ -96,30 +96,65 @@ class ExportItem extends TopLevelItem {
96
96
}
97
97
}
98
98
99
- class InstanceGetterItem extends InstanceMemberItem {
99
+ /// The item for [InstanceElementImpl2] .
100
+ sealed class InstanceItem extends TopLevelItem {
101
+ final List <ManifestTypeParameter > typeParameters;
102
+ final Map <LookupName , InstanceItemMemberItem > members;
103
+
104
+ InstanceItem ({
105
+ required super .libraryUri,
106
+ required super .name,
107
+ required super .id,
108
+ required this .typeParameters,
109
+ required this .members,
110
+ });
111
+
112
+ void _write (BufferedSink sink) {
113
+ sink.writeUri (libraryUri);
114
+ name.write (sink);
115
+ id.write (sink);
116
+ typeParameters.writeList (sink);
117
+ sink.writeMap (
118
+ members,
119
+ writeKey: (name) => name.write (sink),
120
+ writeValue: (member) => member.write (sink),
121
+ );
122
+ }
123
+
124
+ static Map <LookupName , InstanceItemMemberItem > _readMembers (
125
+ SummaryDataReader reader,
126
+ ) {
127
+ return reader.readMap (
128
+ readKey: () => LookupName .read (reader),
129
+ readValue: () => InstanceItemMemberItem .read (reader),
130
+ );
131
+ }
132
+ }
133
+
134
+ class InstanceItemGetterItem extends InstanceItemMemberItem {
100
135
final ManifestType returnType;
101
136
102
- InstanceGetterItem ({
137
+ InstanceItemGetterItem ({
103
138
required super .name,
104
139
required super .id,
105
140
required this .returnType,
106
141
});
107
142
108
- factory InstanceGetterItem .fromElement ({
143
+ factory InstanceItemGetterItem .fromElement ({
109
144
required LookupName name,
110
145
required ManifestItemId id,
111
146
required EncodeContext context,
112
147
required GetterElement2OrMember element,
113
148
}) {
114
- return InstanceGetterItem (
149
+ return InstanceItemGetterItem (
115
150
name: name,
116
151
id: id,
117
152
returnType: element.returnType.encode (context),
118
153
);
119
154
}
120
155
121
- factory InstanceGetterItem .read (SummaryDataReader reader) {
122
- return InstanceGetterItem (
156
+ factory InstanceItemGetterItem .read (SummaryDataReader reader) {
157
+ return InstanceItemGetterItem (
123
158
name: LookupName .read (reader),
124
159
id: ManifestItemId .read (reader),
125
160
returnType: ManifestType .read (reader),
@@ -146,87 +181,52 @@ class InstanceGetterItem extends InstanceMemberItem {
146
181
}
147
182
}
148
183
149
- /// The item for [InstanceElementImpl2] .
150
- sealed class InstanceItem extends TopLevelItem {
151
- final List <ManifestTypeParameter > typeParameters;
152
- final Map <LookupName , InstanceMemberItem > members;
153
-
154
- InstanceItem ({
155
- required super .libraryUri,
156
- required super .name,
157
- required super .id,
158
- required this .typeParameters,
159
- required this .members,
160
- });
161
-
162
- void _write (BufferedSink sink) {
163
- sink.writeUri (libraryUri);
164
- name.write (sink);
165
- id.write (sink);
166
- typeParameters.writeList (sink);
167
- sink.writeMap (
168
- members,
169
- writeKey: (name) => name.write (sink),
170
- writeValue: (member) => member.write (sink),
171
- );
172
- }
173
-
174
- static Map <LookupName , InstanceMemberItem > _readMembers (
175
- SummaryDataReader reader,
176
- ) {
177
- return reader.readMap (
178
- readKey: () => LookupName .read (reader),
179
- readValue: () => InstanceMemberItem .read (reader),
180
- );
181
- }
182
- }
183
-
184
- sealed class InstanceMemberItem extends ManifestItem {
184
+ sealed class InstanceItemMemberItem extends ManifestItem {
185
185
final LookupName name;
186
186
final ManifestItemId id;
187
187
188
- InstanceMemberItem ({
188
+ InstanceItemMemberItem ({
189
189
required this .name,
190
190
required this .id,
191
191
});
192
192
193
- factory InstanceMemberItem .read (SummaryDataReader reader) {
193
+ factory InstanceItemMemberItem .read (SummaryDataReader reader) {
194
194
var kind = reader.readEnum (_ManifestItemKind2 .values);
195
195
switch (kind) {
196
196
case _ManifestItemKind2 .instanceGetter:
197
- return InstanceGetterItem .read (reader);
197
+ return InstanceItemGetterItem .read (reader);
198
198
case _ManifestItemKind2 .instanceMethod:
199
- return InstanceMethodItem .read (reader);
199
+ return InstanceItemMethodItem .read (reader);
200
200
case _ManifestItemKind2 .interfaceConstructor:
201
- return InterfaceConstructorItem .read (reader);
201
+ return InterfaceItemConstructorItem .read (reader);
202
202
}
203
203
}
204
204
}
205
205
206
- class InstanceMethodItem extends InstanceMemberItem {
206
+ class InstanceItemMethodItem extends InstanceItemMemberItem {
207
207
final ManifestFunctionType functionType;
208
208
209
- InstanceMethodItem ({
209
+ InstanceItemMethodItem ({
210
210
required super .name,
211
211
required super .id,
212
212
required this .functionType,
213
213
});
214
214
215
- factory InstanceMethodItem .fromElement ({
215
+ factory InstanceItemMethodItem .fromElement ({
216
216
required LookupName name,
217
217
required ManifestItemId id,
218
218
required EncodeContext context,
219
219
required MethodElement2OrMember element,
220
220
}) {
221
- return InstanceMethodItem (
221
+ return InstanceItemMethodItem (
222
222
name: name,
223
223
id: id,
224
224
functionType: element.type.encode (context),
225
225
);
226
226
}
227
227
228
- factory InstanceMethodItem .read (SummaryDataReader reader) {
229
- return InstanceMethodItem (
228
+ factory InstanceItemMethodItem .read (SummaryDataReader reader) {
229
+ return InstanceItemMethodItem (
230
230
name: LookupName .read (reader),
231
231
id: ManifestItemId .read (reader),
232
232
functionType: ManifestFunctionType .read (reader),
@@ -253,27 +253,64 @@ class InstanceMethodItem extends InstanceMemberItem {
253
253
}
254
254
}
255
255
256
- class InterfaceConstructorItem extends InstanceMemberItem {
256
+ /// The item for [InterfaceElementImpl2] .
257
+ sealed class InterfaceItem extends InstanceItem {
258
+ final ManifestType ? supertype;
259
+ final List <ManifestType > interfaces;
260
+ final List <ManifestType > mixins;
261
+
262
+ InterfaceItem ({
263
+ required super .libraryUri,
264
+ required super .name,
265
+ required super .id,
266
+ required super .typeParameters,
267
+ required super .members,
268
+ required this .supertype,
269
+ required this .interfaces,
270
+ required this .mixins,
271
+ });
272
+
273
+ MatchContext ? _matchInterfaceElement (InterfaceElementImpl2 element) {
274
+ var context = MatchContext (parent: null );
275
+ context.addTypeParameters (element.typeParameters2);
276
+ if (supertype.match (context, element.supertype) &&
277
+ interfaces.match (context, element.interfaces) &&
278
+ mixins.match (context, element.mixins)) {
279
+ return context;
280
+ }
281
+ return null ;
282
+ }
283
+
284
+ @override
285
+ void _write (BufferedSink sink) {
286
+ super ._write (sink);
287
+ supertype.writeOptional (sink);
288
+ mixins.writeList (sink);
289
+ interfaces.writeList (sink);
290
+ }
291
+ }
292
+
293
+ class InterfaceItemConstructorItem extends InstanceItemMemberItem {
257
294
final bool isConst;
258
295
final bool isFactory;
259
296
final ManifestFunctionType functionType;
260
297
261
- InterfaceConstructorItem ({
298
+ InterfaceItemConstructorItem ({
262
299
required super .name,
263
300
required super .id,
264
301
required this .isConst,
265
302
required this .isFactory,
266
303
required this .functionType,
267
304
});
268
305
269
- factory InterfaceConstructorItem .fromElement ({
306
+ factory InterfaceItemConstructorItem .fromElement ({
270
307
required LookupName name,
271
308
required ManifestItemId id,
272
309
required EncodeContext context,
273
310
required ConstructorElementImpl2 element,
274
311
}) {
275
312
// TODO(scheglov): initializers
276
- return InterfaceConstructorItem (
313
+ return InterfaceItemConstructorItem (
277
314
name: name,
278
315
id: id,
279
316
isConst: element.isConst,
@@ -282,8 +319,8 @@ class InterfaceConstructorItem extends InstanceMemberItem {
282
319
);
283
320
}
284
321
285
- factory InterfaceConstructorItem .read (SummaryDataReader reader) {
286
- return InterfaceConstructorItem (
322
+ factory InterfaceItemConstructorItem .read (SummaryDataReader reader) {
323
+ return InterfaceItemConstructorItem (
287
324
name: LookupName .read (reader),
288
325
id: ManifestItemId .read (reader),
289
326
isConst: reader.readBool (),
@@ -320,43 +357,6 @@ class InterfaceConstructorItem extends InstanceMemberItem {
320
357
}
321
358
}
322
359
323
- /// The item for [InterfaceElementImpl2] .
324
- sealed class InterfaceItem extends InstanceItem {
325
- final ManifestType ? supertype;
326
- final List <ManifestType > interfaces;
327
- final List <ManifestType > mixins;
328
-
329
- InterfaceItem ({
330
- required super .libraryUri,
331
- required super .name,
332
- required super .id,
333
- required super .typeParameters,
334
- required super .members,
335
- required this .supertype,
336
- required this .interfaces,
337
- required this .mixins,
338
- });
339
-
340
- MatchContext ? _matchInterfaceElement (InterfaceElementImpl2 element) {
341
- var context = MatchContext (parent: null );
342
- context.addTypeParameters (element.typeParameters2);
343
- if (supertype.match (context, element.supertype) &&
344
- interfaces.match (context, element.interfaces) &&
345
- mixins.match (context, element.mixins)) {
346
- return context;
347
- }
348
- return null ;
349
- }
350
-
351
- @override
352
- void _write (BufferedSink sink) {
353
- super ._write (sink);
354
- supertype.writeOptional (sink);
355
- mixins.writeList (sink);
356
- interfaces.writeList (sink);
357
- }
358
- }
359
-
360
360
class ManifestAnnotation {
361
361
final ManifestNode ast;
362
362
0 commit comments