@@ -372,6 +372,7 @@ class LibraryExportRequirements {
372372
373373class  LibraryRequirements  {
374374  String ?  name;
375+   bool ?  isSynthetic;
375376  Uint8List ?  featureSet;
376377  ManifestLibraryLanguageVersion ?  languageVersion;
377378  ManifestItemId ?  libraryMetadataId;
@@ -417,6 +418,7 @@ class LibraryRequirements {
417418
418419  LibraryRequirements ({
419420    required  this .name,
421+     required  this .isSynthetic,
420422    required  this .featureSet,
421423    required  this .languageVersion,
422424    required  this .libraryMetadataId,
@@ -451,6 +453,7 @@ class LibraryRequirements {
451453  factory  LibraryRequirements .empty () {
452454    return  LibraryRequirements (
453455      name:  null ,
456+       isSynthetic:  null ,
454457      featureSet:  null ,
455458      languageVersion:  null ,
456459      libraryMetadataId:  null ,
@@ -486,6 +489,7 @@ class LibraryRequirements {
486489  factory  LibraryRequirements .read (SummaryDataReader  reader) {
487490    return  LibraryRequirements (
488491      name:  reader.readOptionalStringUtf8 (),
492+       isSynthetic:  reader.readOptionalBool (),
489493      featureSet:  reader.readOptionalUint8List (),
490494      languageVersion:  ManifestLibraryLanguageVersion .readOptional (reader),
491495      libraryMetadataId:  ManifestItemId .readOptional (reader),
@@ -529,6 +533,7 @@ class LibraryRequirements {
529533
530534  void  write (BufferedSink  sink) {
531535    sink.writeOptionalStringUtf8 (name);
536+     sink.writeOptionalBool (isSynthetic);
532537    sink.writeOptionalUint8List (featureSet);
533538    sink.writeOptionalObject (languageVersion, (it) =>  it.write (sink));
534539    libraryMetadataId.writeOptional (sink);
@@ -726,6 +731,17 @@ class RequirementsManifest {
726731        }
727732      }
728733
734+       if  (libraryRequirements.isSynthetic case  var  expected? ) {
735+         var  actual =  libraryManifest.isSynthetic;
736+         if  (expected !=  actual) {
737+           return  LibraryIsSyntheticMismatch (
738+             libraryUri:  libraryUri,
739+             expected:  expected,
740+             actual:  actual,
741+           );
742+         }
743+       }
744+ 
729745      if  (libraryRequirements.featureSet case  var  expected? ) {
730746        var  actual =  libraryManifest.featureSet;
731747        if  (! const  ListEquality <int >().equals (expected, actual)) {
@@ -2046,6 +2062,20 @@ class RequirementsManifest {
20462062    requirements.requestedDeclaredTypeAliases[lookupName] =  id;
20472063  }
20482064
2065+   void  record_library_isSynthetic ({required  LibraryElementImpl  element}) {
2066+     if  (_recordingLockLevel !=  0 ) {
2067+       return ;
2068+     }
2069+ 
2070+     var  manifest =  element.manifest;
2071+     if  (manifest ==  null ) {
2072+       return ;
2073+     }
2074+ 
2075+     var  requirements =  _getLibraryRequirements (element);
2076+     requirements.isSynthetic =  manifest.isSynthetic;
2077+   }
2078+ 
20492079  void  record_library_languageVersion ({required  LibraryElementImpl  element}) {
20502080    if  (_recordingLockLevel !=  0 ) {
20512081      return ;
0 commit comments