@@ -202,13 +202,19 @@ class InstanceItemRequirements {
202202 final Map <LookupName , ManifestItemId ?> requestedSetters;
203203 final Map <LookupName , ManifestItemId ?> requestedMethods;
204204
205+ ManifestItemIdList ? allDeclaredFields;
206+ ManifestItemIdList ? allDeclaredGetters;
207+ ManifestItemIdList ? allDeclaredSetters;
205208 ManifestItemIdList ? allDeclaredMethods;
206209
207210 InstanceItemRequirements ({
208211 required this .requestedFields,
209212 required this .requestedGetters,
210213 required this .requestedSetters,
211214 required this .requestedMethods,
215+ required this .allDeclaredFields,
216+ required this .allDeclaredGetters,
217+ required this .allDeclaredSetters,
212218 required this .allDeclaredMethods,
213219 });
214220
@@ -218,6 +224,9 @@ class InstanceItemRequirements {
218224 requestedGetters: {},
219225 requestedSetters: {},
220226 requestedMethods: {},
227+ allDeclaredFields: null ,
228+ allDeclaredGetters: null ,
229+ allDeclaredSetters: null ,
221230 allDeclaredMethods: null ,
222231 );
223232 }
@@ -228,6 +237,9 @@ class InstanceItemRequirements {
228237 requestedGetters: reader.readNameToIdMap (),
229238 requestedSetters: reader.readNameToIdMap (),
230239 requestedMethods: reader.readNameToIdMap (),
240+ allDeclaredFields: ManifestItemIdList .readOptional (reader),
241+ allDeclaredGetters: ManifestItemIdList .readOptional (reader),
242+ allDeclaredSetters: ManifestItemIdList .readOptional (reader),
231243 allDeclaredMethods: ManifestItemIdList .readOptional (reader),
232244 );
233245 }
@@ -237,6 +249,9 @@ class InstanceItemRequirements {
237249 sink.writeNameToIdMap (requestedGetters);
238250 sink.writeNameToIdMap (requestedSetters);
239251 sink.writeNameToIdMap (requestedMethods);
252+ allDeclaredFields.writeOptional (sink);
253+ allDeclaredGetters.writeOptional (sink);
254+ allDeclaredSetters.writeOptional (sink);
240255 allDeclaredMethods.writeOptional (sink);
241256 }
242257}
@@ -510,13 +525,56 @@ class RequirementsManifest {
510525 }
511526 }
512527
528+ if (requirements.allDeclaredFields case var required ? ) {
529+ var actualItems = instanceItem.declaredFields.values;
530+ var actualIds = actualItems.map ((item) => item.id);
531+ if (! required .equalToIterable (actualIds)) {
532+ return InstanceChildrenIdsMismatch (
533+ libraryUri: libraryUri,
534+ instanceName: instanceName,
535+ childrenPropertyName: 'fields' ,
536+ expectedIds: required ,
537+ actualIds: ManifestItemIdList (actualIds.toList ()),
538+ );
539+ }
540+ }
541+
542+ if (requirements.allDeclaredGetters case var required ? ) {
543+ var actualItems = instanceItem.declaredGetters.values;
544+ var actualIds = actualItems.map ((item) => item.id);
545+ if (! required .equalToIterable (actualIds)) {
546+ return InstanceChildrenIdsMismatch (
547+ libraryUri: libraryUri,
548+ instanceName: instanceName,
549+ childrenPropertyName: 'getters' ,
550+ expectedIds: required ,
551+ actualIds: ManifestItemIdList (actualIds.toList ()),
552+ );
553+ }
554+ }
555+
556+ if (requirements.allDeclaredSetters case var required ? ) {
557+ var actualItems = instanceItem.declaredSetters.values;
558+ var actualIds = actualItems.map ((item) => item.id);
559+ if (! required .equalToIterable (actualIds)) {
560+ return InstanceChildrenIdsMismatch (
561+ libraryUri: libraryUri,
562+ instanceName: instanceName,
563+ childrenPropertyName: 'setters' ,
564+ expectedIds: required ,
565+ actualIds: ManifestItemIdList (actualIds.toList ()),
566+ );
567+ }
568+ }
569+
513570 if (requirements.allDeclaredMethods case var required ? ) {
514571 var actualItems = instanceItem.declaredMethods.values;
515572 var actualIds = actualItems.map ((item) => item.id);
516573 if (! required .equalToIterable (actualIds)) {
517- return InstanceMethodIdsMismatch (
574+ return InstanceChildrenIdsMismatch (
518575 libraryUri: libraryUri,
519- interfaceName: instanceName,
576+ instanceName: instanceName,
577+ childrenPropertyName: 'methods' ,
520578 expectedIds: required ,
521579 actualIds: ManifestItemIdList (actualIds.toList ()),
522580 );
@@ -641,6 +699,24 @@ class RequirementsManifest {
641699 }
642700 }
643701
702+ void record_instanceElement_fields ({required InstanceElementImpl2 element}) {
703+ if (_recordingLockLevel != 0 ) {
704+ return ;
705+ }
706+
707+ var itemRequirements = _getInstanceItem (element);
708+ if (itemRequirements == null ) {
709+ return ;
710+ }
711+
712+ var item = itemRequirements.item;
713+ var requirements = itemRequirements.requirements;
714+
715+ requirements.allDeclaredFields ?? = ManifestItemIdList (
716+ item.declaredFields.values.map ((item) => item.id).toList (),
717+ );
718+ }
719+
644720 void record_instanceElement_getField ({
645721 required InstanceElementImpl2 element,
646722 required String name,
@@ -710,6 +786,24 @@ class RequirementsManifest {
710786 requirements.requestedSetters[methodName] = methodId;
711787 }
712788
789+ void record_instanceElement_getters ({required InstanceElementImpl2 element}) {
790+ if (_recordingLockLevel != 0 ) {
791+ return ;
792+ }
793+
794+ var itemRequirements = _getInstanceItem (element);
795+ if (itemRequirements == null ) {
796+ return ;
797+ }
798+
799+ var item = itemRequirements.item;
800+ var requirements = itemRequirements.requirements;
801+
802+ requirements.allDeclaredGetters ?? = ManifestItemIdList (
803+ item.declaredGetters.values.map ((item) => item.id).toList (),
804+ );
805+ }
806+
713807 void record_instanceElement_methods ({required InstanceElementImpl2 element}) {
714808 if (_recordingLockLevel != 0 ) {
715809 return ;
@@ -728,6 +822,24 @@ class RequirementsManifest {
728822 );
729823 }
730824
825+ void record_instanceElement_setters ({required InstanceElementImpl2 element}) {
826+ if (_recordingLockLevel != 0 ) {
827+ return ;
828+ }
829+
830+ var itemRequirements = _getInstanceItem (element);
831+ if (itemRequirements == null ) {
832+ return ;
833+ }
834+
835+ var item = itemRequirements.item;
836+ var requirements = itemRequirements.requirements;
837+
838+ requirements.allDeclaredSetters ?? = ManifestItemIdList (
839+ item.declaredSetters.values.map ((item) => item.id).toList (),
840+ );
841+ }
842+
731843 void record_interface_all ({required InterfaceElementImpl2 element}) {
732844 var itemRequirements = _getInterfaceItem (element);
733845 if (itemRequirements == null ) {
0 commit comments