@@ -375,6 +375,8 @@ class LibraryRequirements {
375375 Uint8List ? featureSet;
376376 ManifestLibraryLanguageVersion ? languageVersion;
377377
378+ List <Uri >? exportedLibraryUris;
379+
378380 /// TopName => ID
379381 final Map <LookupName , ManifestItemId ?> exportedTopLevels;
380382
@@ -416,6 +418,7 @@ class LibraryRequirements {
416418 required this .name,
417419 required this .featureSet,
418420 required this .languageVersion,
421+ required this .exportedLibraryUris,
419422 required this .exportedTopLevels,
420423 required this .instances,
421424 required this .interfaces,
@@ -448,6 +451,7 @@ class LibraryRequirements {
448451 name: null ,
449452 featureSet: null ,
450453 languageVersion: null ,
454+ exportedLibraryUris: null ,
451455 exportedTopLevels: {},
452456 instances: {},
453457 interfaces: {},
@@ -481,6 +485,7 @@ class LibraryRequirements {
481485 name: reader.readOptionalStringUtf8 (),
482486 featureSet: reader.readOptionalUint8List (),
483487 languageVersion: ManifestLibraryLanguageVersion .readOptional (reader),
488+ exportedLibraryUris: reader.readOptionalUriList (),
484489 exportedTopLevels: reader.readNameToOptionalIdMap (),
485490 instances: reader.readMap (
486491 readKey: () => LookupName .read (reader),
@@ -522,6 +527,7 @@ class LibraryRequirements {
522527 sink.writeOptionalStringUtf8 (name);
523528 sink.writeOptionalUint8List (featureSet);
524529 sink.writeOptionalObject (languageVersion, (it) => it.write (sink));
530+ sink.writeOptionalUriList (exportedLibraryUris);
525531 sink.writeNameToIdMap (exportedTopLevels);
526532
527533 sink.writeMap (
@@ -1314,6 +1320,17 @@ class RequirementsManifest {
13141320 );
13151321 }
13161322 }
1323+
1324+ if (libraryRequirements.exportedLibraryUris case var expected? ) {
1325+ var actual = libraryManifest.exportedLibraryUris;
1326+ if (! const ListEquality <Uri >().equals (expected, actual)) {
1327+ return LibraryExportedUrisMismatch (
1328+ libraryUri: libraryUri,
1329+ expected: expected,
1330+ actual: actual,
1331+ );
1332+ }
1333+ }
13171334 }
13181335
13191336 for (var exportRequirement in exportRequirements) {
@@ -1823,6 +1840,20 @@ class RequirementsManifest {
18231840 requirements.exportedTopLevels[mainName] = id;
18241841 }
18251842
1843+ void record_library_exportedLibraries ({required LibraryElementImpl element}) {
1844+ if (_recordingLockLevel != 0 ) {
1845+ return ;
1846+ }
1847+
1848+ var manifest = element.manifest;
1849+ if (manifest == null ) {
1850+ return ;
1851+ }
1852+
1853+ var requirements = _getLibraryRequirements (element);
1854+ requirements.exportedLibraryUris = manifest.exportedLibraryUris;
1855+ }
1856+
18261857 void record_library_featureSet ({required LibraryElementImpl element}) {
18271858 if (_recordingLockLevel != 0 ) {
18281859 return ;
0 commit comments