Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Unified Diff: pkg/front_end/lib/src/incremental_kernel_generator_impl.dart

Issue 2905463002: Transform async code only for source libraries. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 05e88e2a392f24d2618374ace8f9a5bb9c041adf..bb8089ab8147d3204244c321d3e43990f2cca5c3 100644
--- a/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart
+++ b/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart
@@ -17,9 +17,14 @@ 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:kernel/ast.dart';
import 'package:kernel/binary/ast_from_binary.dart';
import 'package:kernel/binary/ast_to_binary.dart';
import 'package:kernel/kernel.dart' hide Source;
+import 'package:kernel/transformations/continuation.dart' as transformAsync;
+import 'package:kernel/transformations/erasure.dart' as transformErasure;
+import 'package:kernel/transformations/mixin_full_resolution.dart'
+ as transformMixin;
dynamic unimplemented() {
// TODO(paulberry): get rid of this.
@@ -203,7 +208,7 @@ class IncrementalKernelGeneratorImpl implements IncrementalKernelGenerator {
}
// Create KernelTarget and configure it for compiling the cycle URIs.
- KernelTarget kernelTarget = new KernelTarget(_fsState.fileSystemView,
+ var kernelTarget = new _IncrementalKernelTarget(_fsState.fileSystemView,
dillTarget, _uriTranslator, _options.strongMode);
for (FileState library in cycle.libraries) {
kernelTarget.read(library.uri);
@@ -290,6 +295,24 @@ class IncrementalKernelGeneratorImpl implements IncrementalKernelGenerator {
}
}
+class _IncrementalKernelTarget extends KernelTarget {
+ _IncrementalKernelTarget(FileSystem fileSystem, DillTarget dillTarget,
+ TranslateUri uriTranslator, bool strongMode)
+ : super(fileSystem, dillTarget, uriTranslator, strongMode);
+
+ @override
+ void runBuildTransformations() {
Siggi Cherem (dart-lang) 2017/05/23 22:06:17 Not sure if we need this subclass: even outside th
+ // TODO(scheglov) apply only to source libraries
+ new transformMixin.MixinFullResolution(backendTarget).transform(program);
+ if (!strongMode) {
+ program.accept(new transformErasure.Erasure());
+ }
+ // Transform only source libraries.
+ // Dill libraries have already been transformed.
+ transformAsync.transformProgram(program, libraryFilter: isSourceLibrary);
+ }
+}
+
/// Compilation result for a library cycle.
class _LibraryCycleResult {
final LibraryCycle cycle;

Powered by Google App Engine
This is Rietveld 408576698