Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 70b4ffa

Browse files
jensjohacommit-bot@chromium.org
authored andcommitted
[kernel] Delete limited_ast_to_binary.dart
Change-Id: I11277942cd8bb9f3f3b875233934ec0281c0369b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138085 Commit-Queue: Jens Johansen <[email protected]> Reviewed-by: Johnni Winther <[email protected]>
1 parent 12df258 commit 70b4ffa

File tree

11 files changed

+69
-136
lines changed

11 files changed

+69
-136
lines changed

pkg/front_end/lib/src/fasta/kernel/utils.dart

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ import 'package:kernel/ast.dart'
2424

2525
import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter;
2626

27-
import 'package:kernel/binary/limited_ast_to_binary.dart'
28-
show LimitedBinaryPrinter;
29-
3027
import 'package:kernel/text/ast_to_text.dart' show Printer;
3128

3229
/// Print the given [component]. Do nothing if it is `null`. If the
@@ -52,9 +49,7 @@ Future<Null> writeComponentToFile(Component component, Uri uri,
5249
File output = new File.fromUri(uri);
5350
IOSink sink = output.openWrite();
5451
try {
55-
BinaryPrinter printer = filter == null
56-
? new BinaryPrinter(sink)
57-
: new LimitedBinaryPrinter(sink, filter ?? (_) => true, false);
52+
BinaryPrinter printer = new BinaryPrinter(sink, libraryFilter: filter);
5853
printer.writeComponentFile(component);
5954
} finally {
6055
await sink.close();
@@ -67,11 +62,10 @@ Uint8List serializeComponent(Component component,
6762
bool includeSources: true,
6863
bool includeOffsets: true}) {
6964
ByteSink byteSink = new ByteSink();
70-
BinaryPrinter printer = filter == null
71-
? new BinaryPrinter(byteSink,
72-
includeSources: includeSources, includeOffsets: includeOffsets)
73-
: new LimitedBinaryPrinter(byteSink, filter, !includeSources,
74-
includeOffsets: includeOffsets);
65+
BinaryPrinter printer = new BinaryPrinter(byteSink,
66+
libraryFilter: filter,
67+
includeSources: includeSources,
68+
includeOffsets: includeOffsets);
7569
printer.writeComponentFile(component);
7670
return byteSink.builder.takeBytes();
7771
}

pkg/front_end/test/hot_reload_e2e_test.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ import 'package:expect/expect.dart' show Expect;
1919

2020
import 'package:kernel/ast.dart' show Component;
2121

22-
import 'package:kernel/binary/limited_ast_to_binary.dart'
23-
show LimitedBinaryPrinter;
22+
import 'package:kernel/binary/ast_to_binary.dart';
2423

2524
import 'package:front_end/src/api_prototype/compiler_options.dart'
2625
show CompilerOptions;
@@ -321,8 +320,8 @@ Future<Null> writeProgram(Component component, Uri outputUri) async {
321320
var sink = new File.fromUri(outputUri).openWrite();
322321
// TODO(sigmund): the incremental generator should always filter these
323322
// libraries instead.
324-
new LimitedBinaryPrinter(
325-
sink, (library) => library.importUri.scheme != 'dart', false)
323+
new BinaryPrinter(sink,
324+
libraryFilter: (library) => library.importUri.scheme != 'dart')
326325
.writeComponentFile(component);
327326
await sink.close();
328327
}

pkg/frontend_server/lib/frontend_server.dart

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import 'package:front_end/src/api_prototype/compiler_options.dart'
2121
import 'package:front_end/src/api_unstable/vm.dart';
2222
import 'package:kernel/ast.dart';
2323
import 'package:kernel/binary/ast_to_binary.dart';
24-
import 'package:kernel/binary/limited_ast_to_binary.dart';
2524
import 'package:kernel/kernel.dart'
2625
show Component, loadComponentSourceFromBytes;
2726
import 'package:kernel/target/targets.dart' show targets, TargetFlags;
@@ -298,8 +297,7 @@ abstract class ProgramTransformer {
298297
class BinaryPrinterFactory {
299298
/// Creates new [BinaryPrinter] to write to [targetSink].
300299
BinaryPrinter newBinaryPrinter(Sink<List<int>> targetSink) {
301-
return LimitedBinaryPrinter(targetSink, (_) => true /* predicate */,
302-
false /* excludeUriToSource */);
300+
return BinaryPrinter(targetSink);
303301
}
304302
}
305303

@@ -670,10 +668,9 @@ class FrontendCompiler implements CompilerInterface {
670668
final IOSink sink = file.openWrite();
671669
final Set<Library> loadedLibraries = results.loadedLibraries;
672670
final BinaryPrinter printer = filterExternal
673-
? LimitedBinaryPrinter(
674-
sink,
675-
(lib) => !loadedLibraries.contains(lib),
676-
true /* excludeUriToSource */)
671+
? BinaryPrinter(sink,
672+
libraryFilter: (lib) => !loadedLibraries.contains(lib),
673+
includeSources: false)
677674
: printerFactory.newBinaryPrinter(sink);
678675

679676
sortComponent(component);
@@ -686,8 +683,9 @@ class FrontendCompiler implements CompilerInterface {
686683
final IOSink sink = File(filename).openWrite();
687684
final Set<Library> loadedLibraries = results.loadedLibraries;
688685
final BinaryPrinter printer = filterExternal
689-
? LimitedBinaryPrinter(sink, (lib) => !loadedLibraries.contains(lib),
690-
true /* excludeUriToSource */)
686+
? BinaryPrinter(sink,
687+
libraryFilter: (lib) => !loadedLibraries.contains(lib),
688+
includeSources: false)
691689
: printerFactory.newBinaryPrinter(sink);
692690

693691
sortComponent(component);
@@ -814,10 +812,9 @@ class FrontendCompiler implements CompilerInterface {
814812
}
815813

816814
final byteSink = ByteSink();
817-
final BinaryPrinter printer = LimitedBinaryPrinter(
818-
byteSink,
819-
(lib) => packageFor(lib, result.loadedLibraries) == package,
820-
false /* excludeUriToSource */);
815+
final BinaryPrinter printer = BinaryPrinter(byteSink,
816+
libraryFilter: (lib) =>
817+
packageFor(lib, result.loadedLibraries) == package);
821818
printer.writeComponentFile(partComponent);
822819

823820
final bytes = byteSink.builder.takeBytes();

pkg/kernel/bin/split.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import 'dart:io';
88

99
import 'package:kernel/ast.dart';
1010
import 'package:kernel/binary/ast_to_binary.dart';
11-
import 'package:kernel/binary/limited_ast_to_binary.dart';
1211
import 'package:kernel/kernel.dart';
1312
import 'package:kernel/src/tool/command_line_util.dart';
1413

@@ -45,7 +44,7 @@ Future<Null> writeComponentToFile(
4544
IOSink sink = output.openWrite();
4645
try {
4746
BinaryPrinter printer =
48-
new LimitedBinaryPrinter(sink, (lib) => lib == wantedLibrary, false);
47+
new BinaryPrinter(sink, libraryFilter: (lib) => lib == wantedLibrary);
4948
printer.writeComponentFile(component);
5049
} finally {
5150
await sink.close();

pkg/kernel/lib/binary/ast_to_binary.dart

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ class BinaryPrinter implements Visitor<void>, BinarySink {
3737
final BytesSink _constantsBytesSink;
3838
BufferedSink _constantsSink;
3939
BufferedSink _sink;
40-
bool includeSources;
41-
bool includeOffsets;
40+
final bool includeSources;
41+
final bool includeOffsets;
42+
final LibraryFilter libraryFilter;
4243

4344
List<int> libraryOffsets;
4445
List<int> classOffsets;
@@ -60,7 +61,8 @@ class BinaryPrinter implements Visitor<void>, BinarySink {
6061
/// The BinaryPrinter will use its own buffer, so the [sink] does not need
6162
/// one.
6263
BinaryPrinter(Sink<List<int>> sink,
63-
{StringIndexer stringIndexer,
64+
{this.libraryFilter,
65+
StringIndexer stringIndexer,
6466
this.includeSources = true,
6567
this.includeOffsets = true})
6668
: _mainSink = new BufferedSink(sink),
@@ -503,9 +505,10 @@ class BinaryPrinter implements Visitor<void>, BinarySink {
503505
_canonicalNameList = <CanonicalName>[];
504506
for (int i = 0; i < component.libraries.length; ++i) {
505507
Library library = component.libraries[i];
506-
if (!shouldWriteLibraryCanonicalNames(library)) continue;
507-
_indexLinkTableInternal(library.canonicalName);
508-
_knownCanonicalNameNonRootTops.add(library.canonicalName);
508+
if (libraryFilter == null || libraryFilter(library)) {
509+
_indexLinkTableInternal(library.canonicalName);
510+
_knownCanonicalNameNonRootTops.add(library.canonicalName);
511+
}
509512
}
510513
}
511514

@@ -522,15 +525,14 @@ class BinaryPrinter implements Visitor<void>, BinarySink {
522525

523526
/// Compute canonical names for the whole component or parts of it.
524527
void computeCanonicalNames(Component component) {
525-
component.computeCanonicalNames();
528+
for (int i = 0; i < component.libraries.length; ++i) {
529+
Library library = component.libraries[i];
530+
if (libraryFilter == null || libraryFilter(library)) {
531+
component.computeCanonicalNamesForLibrary(library);
532+
}
533+
}
526534
}
527535

528-
/// Return `true` if all canonical names of the [library] should be written
529-
/// into the link table. If some libraries of the component are skipped,
530-
/// then all the additional names referenced by the libraries that are written
531-
/// by [writeLibraries] are automatically added.
532-
bool shouldWriteLibraryCanonicalNames(Library library) => true;
533-
534536
void writeCanonicalNameEntry(CanonicalName node) {
535537
CanonicalName parent = node.parent;
536538
if (parent.isRoot) {
@@ -564,7 +566,16 @@ class BinaryPrinter implements Visitor<void>, BinarySink {
564566
_writeMetadataSection(component);
565567
writeStringTable(stringIndexer);
566568
writeConstantTable(_constantIndexer);
567-
writeComponentIndex(component, component.libraries);
569+
List<Library> libraries = component.libraries;
570+
if (libraryFilter != null) {
571+
List<Library> librariesNew = new List<Library>();
572+
for (int i = 0; i < libraries.length; i++) {
573+
Library library = libraries[i];
574+
if (libraryFilter(library)) librariesNew.add(library);
575+
}
576+
libraries = librariesNew;
577+
}
578+
writeComponentIndex(component, libraries);
568579

569580
_flush();
570581
});
@@ -702,7 +713,10 @@ class BinaryPrinter implements Visitor<void>, BinarySink {
702713
/// Write all of some of the libraries of the [component].
703714
void writeLibraries(Component component) {
704715
for (int i = 0; i < component.libraries.length; ++i) {
705-
writeLibraryNode(component.libraries[i]);
716+
Library library = component.libraries[i];
717+
if (libraryFilter == null || libraryFilter(library)) {
718+
writeLibraryNode(library);
719+
}
706720
}
707721
}
708722

pkg/kernel/lib/binary/limited_ast_to_binary.dart

Lines changed: 0 additions & 52 deletions
This file was deleted.

pkg/vm/bin/protobuf_aware_treeshaker.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import 'dart:typed_data';
3030
import 'package:args/args.dart';
3131
import 'package:kernel/kernel.dart';
3232
import 'package:kernel/binary/ast_to_binary.dart';
33-
import 'package:kernel/binary/limited_ast_to_binary.dart';
3433
import 'package:vm/kernel_front_end.dart'
3534
show runGlobalTransformations, ErrorDetector;
3635
import 'package:kernel/target/targets.dart' show TargetFlags, getTarget;
@@ -186,11 +185,11 @@ Future writeComponent(Component component, String filename,
186185
}
187186

188187
final sink = File(filename).openWrite();
189-
final printer = LimitedBinaryPrinter(sink, (lib) {
188+
final printer = BinaryPrinter(sink, libraryFilter: (lib) {
190189
if (removeCoreLibs && isCoreLibrary(lib)) return false;
191190
if (isLibEmpty(lib)) return false;
192191
return true;
193-
}, /*excludeUriToSource=*/ removeSource);
192+
}, includeSources: !removeSource);
194193

195194
printer.writeComponentFile(component);
196195
await sink.close();

pkg/vm/lib/kernel_front_end.dart

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ import 'package:front_end/src/api_unstable/vm.dart'
3939
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
4040
import 'package:kernel/ast.dart' show Component, Library, Reference;
4141
import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter;
42-
import 'package:kernel/binary/limited_ast_to_binary.dart'
43-
show LimitedBinaryPrinter;
4442
import 'package:kernel/core_types.dart' show CoreTypes;
4543
import 'package:kernel/target/targets.dart' show Target, TargetFlags, getTarget;
4644

@@ -660,11 +658,9 @@ Future writeOutputSplitByPackages(
660658
}
661659
}
662660

663-
final BinaryPrinter printer = new LimitedBinaryPrinter(
664-
sink,
665-
(lib) =>
666-
packageFor(lib, compilationResults.loadedLibraries) == package,
667-
false /* excludeUriToSource */);
661+
final BinaryPrinter printer = new BinaryPrinter(sink,
662+
libraryFilter: (lib) =>
663+
packageFor(lib, compilationResults.loadedLibraries) == package);
668664
printer.writeComponentFile(partComponent);
669665

670666
await sink.close();

pkg/vm/test/incremental_compiler_test.dart

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import 'package:front_end/src/api_unstable/vm.dart'
1010
show CompilerOptions, DiagnosticMessage, computePlatformBinariesLocation;
1111
import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc;
1212
import 'package:kernel/binary/ast_to_binary.dart';
13-
import 'package:kernel/binary/limited_ast_to_binary.dart';
1413
import 'package:kernel/kernel.dart';
1514
import 'package:kernel/target/targets.dart';
1615
import 'package:kernel/text/ast_to_text.dart';
@@ -309,18 +308,14 @@ main() {
309308
new BinaryPrinter(new DevNullSink<List<int>>())
310309
.writeComponentFile(component);
311310
IOSink sink = mainDill.openWrite();
312-
BinaryPrinter printer = new LimitedBinaryPrinter(
313-
sink,
314-
(lib) => lib.fileUri.path.endsWith("main.dart"),
315-
false /* excludeUriToSource */);
311+
BinaryPrinter printer = new BinaryPrinter(sink,
312+
libraryFilter: (lib) => lib.fileUri.path.endsWith("main.dart"));
316313
printer.writeComponentFile(component);
317314
await sink.flush();
318315
await sink.close();
319316
sink = libDill.openWrite();
320-
printer = new LimitedBinaryPrinter(
321-
sink,
322-
(lib) => lib.fileUri.path.endsWith("lib.dart"),
323-
false /* excludeUriToSource */);
317+
printer = new BinaryPrinter(sink,
318+
libraryFilter: (lib) => lib.fileUri.path.endsWith("lib.dart"));
324319
printer.writeComponentFile(component);
325320
await sink.flush();
326321
await sink.close();
@@ -550,26 +545,20 @@ main() {
550545
new BinaryPrinter(new DevNullSink<List<int>>())
551546
.writeComponentFile(component);
552547
IOSink sink = mainDill.openWrite();
553-
BinaryPrinter printer = new LimitedBinaryPrinter(
554-
sink,
555-
(lib) => lib.fileUri.path.endsWith("main.dart"),
556-
false /* excludeUriToSource */);
548+
BinaryPrinter printer = new BinaryPrinter(sink,
549+
libraryFilter: (lib) => lib.fileUri.path.endsWith("main.dart"));
557550
printer.writeComponentFile(component);
558551
await sink.flush();
559552
await sink.close();
560553
sink = lib1Dill.openWrite();
561-
printer = new LimitedBinaryPrinter(
562-
sink,
563-
(lib) => lib.fileUri.path.endsWith("lib1.dart"),
564-
false /* excludeUriToSource */);
554+
printer = new BinaryPrinter(sink,
555+
libraryFilter: (lib) => lib.fileUri.path.endsWith("lib1.dart"));
565556
printer.writeComponentFile(component);
566557
await sink.flush();
567558
await sink.close();
568559
sink = lib2Dill.openWrite();
569-
printer = new LimitedBinaryPrinter(
570-
sink,
571-
(lib) => lib.fileUri.path.endsWith("lib2.dart"),
572-
false /* excludeUriToSource */);
560+
printer = new BinaryPrinter(sink,
561+
libraryFilter: (lib) => lib.fileUri.path.endsWith("lib2.dart"));
573562
printer.writeComponentFile(component);
574563
await sink.flush();
575564
await sink.close();
@@ -790,8 +779,7 @@ main() {
790779

791780
_writeProgramToFile(Component component, File outputFile) async {
792781
final IOSink sink = outputFile.openWrite();
793-
final BinaryPrinter printer = new LimitedBinaryPrinter(
794-
sink, (_) => true /* predicate */, false /* excludeUriToSource */);
782+
final BinaryPrinter printer = new BinaryPrinter(sink);
795783
printer.writeComponentFile(component);
796784
await sink.flush();
797785
await sink.close();

0 commit comments

Comments
 (0)