@@ -1281,6 +1281,18 @@ class _Element2Writer extends _AbstractElementWriter {
12811281 });
12821282 }
12831283
1284+ void _writeLibraryExport (LibraryExportElementImpl e) {
1285+ _sink.writeIndentedLine (() {
1286+ _writeDirectiveUri (e.uri);
1287+ });
1288+
1289+ _sink.withIndent (() {
1290+ _writeReference (e);
1291+ _writeMetadata (e.metadata2);
1292+ _writeNamespaceCombinators (e.combinators);
1293+ });
1294+ }
1295+
12841296 void _writeLibraryFragment (LibraryFragmentImpl f) {
12851297 var reference = f.reference! ;
12861298 _sink.writeIndentedLine (() {
@@ -1305,9 +1317,8 @@ class _Element2Writer extends _AbstractElementWriter {
13051317 _writeList ('libraryImports' , imports, _writeLibraryImport);
13061318 }
13071319 _writeElementList ('prefixes' , f.element, f.prefixes, _writePrefixElement);
1308- // _writeList(
1309- // 'libraryExports', f.libraryExports, _writeLibraryExportElement);
1310- // _writeList('parts', f.parts, _writePartElement);
1320+ _writeList ('libraryExports' , f.libraryExports, _writeLibraryExport);
1321+ _writeList ('parts' , f.parts, _writePartInclude);
13111322
13121323 _writeFragmentList ('classes' , f, f.classes2, _writeInstanceFragment);
13131324 _writeFragmentList ('enums' , f, f.enums2, _writeInstanceFragment);
@@ -1356,7 +1367,7 @@ class _Element2Writer extends _AbstractElementWriter {
13561367
13571368 _sink.withIndent (() {
13581369 _writeMetadata (e.metadata2);
1359- // _writeNamespaceCombinators(e.combinators);
1370+ _writeNamespaceCombinators (e.combinators);
13601371 });
13611372 }
13621373
@@ -1478,10 +1489,45 @@ class _Element2Writer extends _AbstractElementWriter {
14781489 });
14791490 }
14801491
1492+ void _writeNamespaceCombinator (NamespaceCombinator e) {
1493+ _sink.writeIndentedLine (() {
1494+ switch (e) {
1495+ case ShowElementCombinator ():
1496+ _sink.write ('show: ' );
1497+ _sink.write (e.shownNames.join (', ' ));
1498+ case HideElementCombinator ():
1499+ _sink.write ('hide: ' );
1500+ _sink.write (e.hiddenNames.join (', ' ));
1501+ }
1502+ });
1503+ }
1504+
1505+ void _writeNamespaceCombinators (List <NamespaceCombinator > elements) {
1506+ _writeList ('combinators' , elements, _writeNamespaceCombinator);
1507+ }
1508+
14811509 void _writeNotSimplyBounded (InterfaceElementImpl2 e) {
14821510 _sink.writeIf (! e.isSimplyBounded, 'notSimplyBounded ' );
14831511 }
14841512
1513+ void _writePartInclude (PartElementImpl e) {
1514+ _sink.writelnWithIndent (_idMap[e]);
1515+
1516+ _sink.withIndent (() {
1517+ var uri = e.uri;
1518+ _sink.writeIndentedLine (() {
1519+ _sink.write ('uri: ' );
1520+ _writeDirectiveUri (e.uri);
1521+ });
1522+
1523+ _writeMetadata (e.metadata2);
1524+
1525+ if (uri is DirectiveUriWithUnitImpl ) {
1526+ _elementPrinter.writeNamedFragment ('unit' , uri.libraryFragment);
1527+ }
1528+ });
1529+ }
1530+
14851531 void _writePrefixElement (PrefixElementImpl2 e) {
14861532 _sink.writeIndent ();
14871533 _elementPrinter.writeElement2 (e);
0 commit comments