@@ -165,6 +165,7 @@ class RecordFieldDeclarationImpl extends DeclarationImpl
165
165
RecordFieldDeclarationImpl ({
166
166
required super .id,
167
167
required super .identifier,
168
+ required super .library,
168
169
required this .name,
169
170
required this .type,
170
171
});
@@ -262,13 +263,23 @@ class OmittedTypeAnnotationImpl extends TypeAnnotationImpl
262
263
263
264
@override
264
265
RemoteInstanceKind get kind => RemoteInstanceKind .omittedTypeAnnotation;
266
+
267
+ @override
268
+ void serialize (Serializer serializer) => super .serialize (serializer);
265
269
}
266
270
267
271
abstract class DeclarationImpl extends RemoteInstance implements Declaration {
268
272
@override
269
273
final IdentifierImpl identifier;
270
274
271
- DeclarationImpl ({required int id, required this .identifier}) : super (id);
275
+ @override
276
+ final LibraryImpl library;
277
+
278
+ DeclarationImpl ({
279
+ required int id,
280
+ required this .identifier,
281
+ required this .library,
282
+ }) : super (id);
272
283
273
284
@override
274
285
void serialize (Serializer serializer) {
@@ -277,6 +288,7 @@ abstract class DeclarationImpl extends RemoteInstance implements Declaration {
277
288
if (serializationMode.isClient) return ;
278
289
279
290
identifier.serialize (serializer);
291
+ library.serialize (serializer);
280
292
}
281
293
}
282
294
@@ -297,6 +309,7 @@ class ParameterDeclarationImpl extends DeclarationImpl
297
309
ParameterDeclarationImpl ({
298
310
required super .id,
299
311
required super .identifier,
312
+ required super .library,
300
313
required this .isNamed,
301
314
required this .isRequired,
302
315
required this .type,
@@ -375,6 +388,7 @@ class TypeParameterDeclarationImpl extends DeclarationImpl
375
388
TypeParameterDeclarationImpl ({
376
389
required super .id,
377
390
required super .identifier,
391
+ required super .library,
378
392
required this .bound,
379
393
});
380
394
@@ -432,6 +446,7 @@ class FunctionDeclarationImpl extends DeclarationImpl
432
446
FunctionDeclarationImpl ({
433
447
required super .id,
434
448
required super .identifier,
449
+ required super .library,
435
450
required this .isAbstract,
436
451
required this .isExternal,
437
452
required this .isGetter,
@@ -490,6 +505,7 @@ class MethodDeclarationImpl extends FunctionDeclarationImpl
490
505
// Declaration fields.
491
506
required super .id,
492
507
required super .identifier,
508
+ required super .library,
493
509
// Function fields.
494
510
required super .isAbstract,
495
511
required super .isExternal,
@@ -528,6 +544,7 @@ class ConstructorDeclarationImpl extends MethodDeclarationImpl
528
544
// Declaration fields.
529
545
required super .id,
530
546
required super .identifier,
547
+ required super .library,
531
548
// Function fields.
532
549
required super .isAbstract,
533
550
required super .isExternal,
@@ -576,6 +593,7 @@ class VariableDeclarationImpl extends DeclarationImpl
576
593
VariableDeclarationImpl ({
577
594
required super .id,
578
595
required super .identifier,
596
+ required super .library,
579
597
required this .isExternal,
580
598
required this .isFinal,
581
599
required this .isLate,
@@ -608,6 +626,7 @@ class FieldDeclarationImpl extends VariableDeclarationImpl
608
626
// Declaration fields.
609
627
required super .id,
610
628
required super .identifier,
629
+ required super .library,
611
630
// Variable fields.
612
631
required super .isExternal,
613
632
required super .isFinal,
@@ -640,6 +659,7 @@ abstract class ParameterizedTypeDeclarationImpl extends DeclarationImpl
640
659
ParameterizedTypeDeclarationImpl ({
641
660
required super .id,
642
661
required super .identifier,
662
+ required super .library,
643
663
required this .typeParameters,
644
664
});
645
665
@@ -660,6 +680,7 @@ abstract class ParameterizedTypeDeclarationImpl extends DeclarationImpl
660
680
/// TODO: remove this https://github.com/dart-lang/language/issues/3120
661
681
mixin _IntrospectableType implements IntrospectableType {}
662
682
683
+ // ignore: missing_override_of_must_be_overridden
663
684
class IntrospectableClassDeclarationImpl = ClassDeclarationImpl
664
685
with _IntrospectableType
665
686
implements IntrospectableClassDeclaration ;
@@ -705,6 +726,7 @@ class ClassDeclarationImpl extends ParameterizedTypeDeclarationImpl
705
726
// Declaration fields.
706
727
required super .id,
707
728
required super .identifier,
729
+ required super .library,
708
730
// TypeDeclaration fields.
709
731
required super .typeParameters,
710
732
// ClassDeclaration fields.
@@ -751,6 +773,7 @@ class ClassDeclarationImpl extends ParameterizedTypeDeclarationImpl
751
773
/// TODO: remove this https://github.com/dart-lang/language/issues/3120
752
774
mixin _IntrospectableEnum implements IntrospectableEnum {}
753
775
776
+ // ignore: missing_override_of_must_be_overridden
754
777
class IntrospectableEnumDeclarationImpl = EnumDeclarationImpl
755
778
with _IntrospectableEnum
756
779
implements IntrospectableEnumDeclaration ;
@@ -772,6 +795,7 @@ class EnumDeclarationImpl extends ParameterizedTypeDeclarationImpl
772
795
// Declaration fields.
773
796
required super .id,
774
797
required super .identifier,
798
+ required super .library,
775
799
// TypeDeclaration fields.
776
800
required super .typeParameters,
777
801
// EnumDeclaration fields.
@@ -810,6 +834,7 @@ class EnumValueDeclarationImpl extends DeclarationImpl
810
834
EnumValueDeclarationImpl ({
811
835
required super .id,
812
836
required super .identifier,
837
+ required super .library,
813
838
required this .definingEnum,
814
839
});
815
840
@@ -823,6 +848,7 @@ class EnumValueDeclarationImpl extends DeclarationImpl
823
848
}
824
849
}
825
850
851
+ // ignore: missing_override_of_must_be_overridden
826
852
class IntrospectableMixinDeclarationImpl = MixinDeclarationImpl
827
853
with _IntrospectableType
828
854
implements IntrospectableMixinDeclaration ;
@@ -847,6 +873,7 @@ class MixinDeclarationImpl extends ParameterizedTypeDeclarationImpl
847
873
// Declaration fields.
848
874
required super .id,
849
875
required super .identifier,
876
+ required super .library,
850
877
// TypeDeclaration fields.
851
878
required super .typeParameters,
852
879
// MixinDeclaration fields.
@@ -890,6 +917,7 @@ class TypeAliasDeclarationImpl extends ParameterizedTypeDeclarationImpl
890
917
// Declaration fields.
891
918
required super .id,
892
919
required super .identifier,
920
+ required super .library,
893
921
// TypeDeclaration fields.
894
922
required super .typeParameters,
895
923
// TypeAlias fields.
@@ -905,3 +933,44 @@ class TypeAliasDeclarationImpl extends ParameterizedTypeDeclarationImpl
905
933
aliasedType.serialize (serializer);
906
934
}
907
935
}
936
+
937
+ class LibraryImpl extends RemoteInstance implements Library {
938
+ @override
939
+ RemoteInstanceKind get kind => RemoteInstanceKind .library;
940
+
941
+ @override
942
+ final LanguageVersionImpl languageVersion;
943
+
944
+ @override
945
+ final Uri uri;
946
+
947
+ LibraryImpl (
948
+ {required int id, required this .languageVersion, required this .uri})
949
+ : super (id);
950
+
951
+ @override
952
+ void serialize (Serializer serializer) {
953
+ super .serialize (serializer);
954
+ languageVersion.serialize (serializer);
955
+ serializer.addString (uri.toString ());
956
+ }
957
+ }
958
+
959
+ /// This class doesn't implement [RemoteInstance] as it is always attached to a
960
+ /// [Library] and doesn't need its own kind or ID.
961
+ class LanguageVersionImpl implements LanguageVersion , Serializable {
962
+ @override
963
+ final int major;
964
+
965
+ @override
966
+ final int minor;
967
+
968
+ LanguageVersionImpl (this .major, this .minor);
969
+
970
+ @override
971
+ void serialize (Serializer serializer) {
972
+ serializer
973
+ ..addInt (major)
974
+ ..addInt (minor);
975
+ }
976
+ }
0 commit comments