Index: pkg/front_end/lib/src/incremental_kernel_generator_impl.dart |
diff --git a/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart b/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart |
index a6521d3a7882e107f6de223f825ed93c536947ea..650182c3e889f8d87334fadbd109b541cb31f96e 100644 |
--- a/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart |
+++ b/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart |
@@ -18,6 +18,7 @@ import 'package:front_end/src/fasta/ticker.dart'; |
import 'package:front_end/src/fasta/translate_uri.dart'; |
import 'package:front_end/src/incremental/byte_store.dart'; |
import 'package:front_end/src/incremental/file_state.dart'; |
+import 'package:front_end/src/incremental/limited_ast_to_binary.dart'; |
import 'package:kernel/binary/ast_from_binary.dart'; |
import 'package:kernel/binary/ast_to_binary.dart'; |
import 'package:kernel/kernel.dart' hide Source; |
@@ -122,6 +123,7 @@ class IncrementalKernelGeneratorImpl implements IncrementalKernelGenerator { |
if (_latestSignature[uri] != result.signature) { |
_latestSignature[uri] = result.signature; |
program.libraries.add(library); |
+ library.parent = program; |
} |
} |
} |
@@ -223,6 +225,7 @@ class IncrementalKernelGeneratorImpl implements IncrementalKernelGenerator { |
_logger.run('Serialize ${kernelLibraries.length} libraries', () { |
program.unbindCanonicalNames(); |
+ program.uriToSource.clear(); |
List<int> bytes = _writeProgramBytes(program, kernelLibraries.contains); |
_byteStore.put(kernelKey, bytes); |
_logger.writeln('Stored ${bytes.length} bytes.'); |
@@ -282,8 +285,7 @@ class IncrementalKernelGeneratorImpl implements IncrementalKernelGenerator { |
List<int> _writeProgramBytes(Program program, bool filter(Library library)) { |
ByteSink byteSink = new ByteSink(); |
- new LibraryFilteringBinaryPrinter(byteSink, filter) |
- .writeProgramFile(program); |
+ new LimitedBinaryPrinter(byteSink, filter).writeProgramFile(program); |
return byteSink.builder.takeBytes(); |
} |
} |