@@ -158,6 +158,7 @@ class RecordFieldDeclarationImpl extends DeclarationImpl
158
158
required super .id,
159
159
required super .identifier,
160
160
required super .library,
161
+ required super .metadata,
161
162
required this .name,
162
163
required this .type,
163
164
});
@@ -253,17 +254,71 @@ class OmittedTypeAnnotationImpl extends TypeAnnotationImpl
253
254
RemoteInstanceKind get kind => RemoteInstanceKind .omittedTypeAnnotation;
254
255
}
255
256
257
+ abstract class MetadataAnnotationImpl extends RemoteInstance
258
+ implements MetadataAnnotation {
259
+ MetadataAnnotationImpl (super .id);
260
+ }
261
+
262
+ class IdentifierMetadataAnnotationImpl extends MetadataAnnotationImpl
263
+ implements IdentifierMetadataAnnotation {
264
+ @override
265
+ final IdentifierImpl identifier;
266
+
267
+ @override
268
+ RemoteInstanceKind get kind =>
269
+ RemoteInstanceKind .identifierMetadataAnnotation;
270
+
271
+ IdentifierMetadataAnnotationImpl ({required int id, required this .identifier})
272
+ : super (id);
273
+
274
+ @override
275
+ void serializeUncached (Serializer serializer) {
276
+ super .serializeUncached (serializer);
277
+
278
+ identifier.serialize (serializer);
279
+ }
280
+ }
281
+
282
+ class ConstructorMetadataAnnotationImpl extends MetadataAnnotationImpl
283
+ implements ConstructorMetadataAnnotation {
284
+ @override
285
+ final IdentifierImpl constructor;
286
+
287
+ @override
288
+ final IdentifierImpl type;
289
+
290
+ @override
291
+ RemoteInstanceKind get kind =>
292
+ RemoteInstanceKind .constructorMetadataAnnotation;
293
+
294
+ ConstructorMetadataAnnotationImpl (
295
+ {required int id, required this .constructor, required this .type})
296
+ : super (id);
297
+
298
+ @override
299
+ void serializeUncached (Serializer serializer) {
300
+ super .serializeUncached (serializer);
301
+
302
+ constructor.serialize (serializer);
303
+ type.serialize (serializer);
304
+ }
305
+ }
306
+
256
307
abstract class DeclarationImpl extends RemoteInstance implements Declaration {
257
308
@override
258
309
final IdentifierImpl identifier;
259
310
260
311
@override
261
312
final LibraryImpl library;
262
313
314
+ @override
315
+ final List <MetadataAnnotationImpl > metadata;
316
+
263
317
DeclarationImpl ({
264
318
required int id,
265
319
required this .identifier,
266
320
required this .library,
321
+ required this .metadata,
267
322
}) : super (id);
268
323
269
324
@override
@@ -272,6 +327,11 @@ abstract class DeclarationImpl extends RemoteInstance implements Declaration {
272
327
273
328
identifier.serialize (serializer);
274
329
library.serialize (serializer);
330
+ serializer.startList ();
331
+ for (MetadataAnnotationImpl annotation in metadata) {
332
+ annotation.serialize (serializer);
333
+ }
334
+ serializer.endList ();
275
335
}
276
336
}
277
337
@@ -293,6 +353,7 @@ class ParameterDeclarationImpl extends DeclarationImpl
293
353
required super .id,
294
354
required super .identifier,
295
355
required super .library,
356
+ required super .metadata,
296
357
required this .isNamed,
297
358
required this .isRequired,
298
359
required this .type,
@@ -322,6 +383,9 @@ class FunctionTypeParameterImpl extends RemoteInstance
322
383
@override
323
384
final bool isRequired;
324
385
386
+ @override
387
+ final List <MetadataAnnotationImpl > metadata;
388
+
325
389
@override
326
390
final String ? name;
327
391
@@ -335,6 +399,7 @@ class FunctionTypeParameterImpl extends RemoteInstance
335
399
required int id,
336
400
required this .isNamed,
337
401
required this .isRequired,
402
+ required this .metadata,
338
403
required this .name,
339
404
required this .type,
340
405
}) : super (id);
@@ -345,6 +410,12 @@ class FunctionTypeParameterImpl extends RemoteInstance
345
410
346
411
serializer.addBool (isNamed);
347
412
serializer.addBool (isRequired);
413
+
414
+ serializer.startList ();
415
+ for (MetadataAnnotationImpl annotation in metadata) {
416
+ annotation.serialize (serializer);
417
+ }
418
+ serializer.endList ();
348
419
serializer.addNullableString (name);
349
420
type.serialize (serializer);
350
421
}
@@ -368,6 +439,7 @@ class TypeParameterDeclarationImpl extends DeclarationImpl
368
439
required super .id,
369
440
required super .identifier,
370
441
required super .library,
442
+ required super .metadata,
371
443
required this .bound,
372
444
});
373
445
@@ -424,6 +496,7 @@ class FunctionDeclarationImpl extends DeclarationImpl
424
496
required super .id,
425
497
required super .identifier,
426
498
required super .library,
499
+ required super .metadata,
427
500
required this .isAbstract,
428
501
required this .isExternal,
429
502
required this .isGetter,
@@ -481,6 +554,7 @@ class MethodDeclarationImpl extends FunctionDeclarationImpl
481
554
required super .id,
482
555
required super .identifier,
483
556
required super .library,
557
+ required super .metadata,
484
558
// Function fields.
485
559
required super .isAbstract,
486
560
required super .isExternal,
@@ -518,6 +592,7 @@ class ConstructorDeclarationImpl extends MethodDeclarationImpl
518
592
required super .id,
519
593
required super .identifier,
520
594
required super .library,
595
+ required super .metadata,
521
596
// Function fields.
522
597
required super .isAbstract,
523
598
required super .isExternal,
@@ -565,6 +640,7 @@ class VariableDeclarationImpl extends DeclarationImpl
565
640
required super .id,
566
641
required super .identifier,
567
642
required super .library,
643
+ required super .metadata,
568
644
required this .isExternal,
569
645
required this .isFinal,
570
646
required this .isLate,
@@ -596,6 +672,7 @@ class FieldDeclarationImpl extends VariableDeclarationImpl
596
672
required super .id,
597
673
required super .identifier,
598
674
required super .library,
675
+ required super .metadata,
599
676
// Variable fields.
600
677
required super .isExternal,
601
678
required super .isFinal,
@@ -630,6 +707,7 @@ abstract class ParameterizedTypeDeclarationImpl extends DeclarationImpl
630
707
required super .id,
631
708
required super .identifier,
632
709
required super .library,
710
+ required super .metadata,
633
711
required this .typeParameters,
634
712
});
635
713
@@ -695,6 +773,7 @@ class ClassDeclarationImpl extends ParameterizedTypeDeclarationImpl
695
773
required super .id,
696
774
required super .identifier,
697
775
required super .library,
776
+ required super .metadata,
698
777
// TypeDeclaration fields.
699
778
required super .typeParameters,
700
779
// ClassDeclaration fields.
@@ -762,6 +841,7 @@ class EnumDeclarationImpl extends ParameterizedTypeDeclarationImpl
762
841
required super .id,
763
842
required super .identifier,
764
843
required super .library,
844
+ required super .metadata,
765
845
// TypeDeclaration fields.
766
846
required super .typeParameters,
767
847
// EnumDeclaration fields.
@@ -799,6 +879,7 @@ class EnumValueDeclarationImpl extends DeclarationImpl
799
879
required super .id,
800
880
required super .identifier,
801
881
required super .library,
882
+ required super .metadata,
802
883
required this .definingEnum,
803
884
});
804
885
@@ -836,6 +917,7 @@ class MixinDeclarationImpl extends ParameterizedTypeDeclarationImpl
836
917
required super .id,
837
918
required super .identifier,
838
919
required super .library,
920
+ required super .metadata,
839
921
// TypeDeclaration fields.
840
922
required super .typeParameters,
841
923
// MixinDeclaration fields.
@@ -878,6 +960,7 @@ class TypeAliasDeclarationImpl extends ParameterizedTypeDeclarationImpl
878
960
required super .id,
879
961
required super .identifier,
880
962
required super .library,
963
+ required super .metadata,
881
964
// TypeDeclaration fields.
882
965
required super .typeParameters,
883
966
// TypeAlias fields.
@@ -899,18 +982,29 @@ class LibraryImpl extends RemoteInstance implements Library {
899
982
@override
900
983
final LanguageVersionImpl languageVersion;
901
984
985
+ @override
986
+ final List <MetadataAnnotationImpl > metadata;
987
+
902
988
@override
903
989
final Uri uri;
904
990
905
991
LibraryImpl (
906
- {required int id, required this .languageVersion, required this .uri})
992
+ {required int id,
993
+ required this .languageVersion,
994
+ required this .metadata,
995
+ required this .uri})
907
996
: super (id);
908
997
909
998
@override
910
999
void serializeUncached (Serializer serializer) {
911
1000
super .serializeUncached (serializer);
912
1001
913
1002
languageVersion.serialize (serializer);
1003
+ serializer.startList ();
1004
+ for (MetadataAnnotationImpl annotation in metadata) {
1005
+ annotation.serialize (serializer);
1006
+ }
1007
+ serializer.endList ();
914
1008
serializer.addUri (uri);
915
1009
}
916
1010
}
0 commit comments