| Index: pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
|
| index b4e3eee32c465142118f3323edb6cc66e165fdad..798e61b7ce04a51a4981d5b0588d6af8e029b6d5 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
|
| @@ -40,12 +40,6 @@ import 'package:kernel/ast.dart'
|
| VariableGet,
|
| VoidType;
|
|
|
| -import 'package:kernel/transformations/erasure.dart' show Erasure;
|
| -
|
| -import 'package:kernel/transformations/continuation.dart' as transformAsync;
|
| -
|
| -import 'package:kernel/transformations/mixin_full_resolution.dart' as mix;
|
| -
|
| import 'package:kernel/type_algebra.dart' show substitute;
|
|
|
| import '../source/source_loader.dart' show SourceLoader;
|
| @@ -89,8 +83,6 @@ class KernelTarget extends TargetImplementation {
|
| /// The [FileSystem] which should be used to access files.
|
| final FileSystem fileSystem;
|
|
|
| - final bool strongMode;
|
| -
|
| final DillTarget dillTarget;
|
|
|
| /// Shared with [CompilerContext].
|
| @@ -105,8 +97,10 @@ class KernelTarget extends TargetImplementation {
|
| final TypeBuilder dynamicType =
|
| new KernelNamedTypeBuilder("dynamic", null, -1, null);
|
|
|
| - KernelTarget(this.fileSystem, DillTarget dillTarget,
|
| - TranslateUri uriTranslator, this.strongMode,
|
| + bool get strongMode => backendTarget.strongMode;
|
| +
|
| + KernelTarget(
|
| + this.fileSystem, DillTarget dillTarget, TranslateUri uriTranslator,
|
| [Map<String, Source> uriToSource])
|
| : dillTarget = dillTarget,
|
| uriToSource = uriToSource ?? CompilerContext.current.uriToSource,
|
| @@ -655,27 +649,11 @@ class KernelTarget extends TargetImplementation {
|
| /// Run all transformations that are needed when building a program for the
|
| /// first time.
|
| void runBuildTransformations() {
|
| - transformMixinApplications();
|
| - otherTransformations();
|
| - }
|
| -
|
| - void transformMixinApplications() {
|
| - mix.transformLibraries(
|
| - backendTarget, loader.coreTypes, loader.hierarchy, loader.libraries);
|
| - ticker.logMs("Transformed mixin applications");
|
| - }
|
| -
|
| - void otherTransformations() {
|
| - if (!strongMode) {
|
| - // TODO(ahe): Don't generate type variables in the first place.
|
| - program.accept(new Erasure());
|
| - ticker.logMs("Erased type variables in generic methods");
|
| - }
|
| - if (errors.isEmpty && loader.collectCompileTimeErrors().isEmpty) {
|
| - // TODO(kmillikin): Make this run on a per-method basis.
|
| - transformAsync.transformLibraries(loader.coreTypes, loader.libraries);
|
| - }
|
| - ticker.logMs("Transformed async methods");
|
| + backendTarget.performModularTransformationsOnLibraries(
|
| + loader.coreTypes, loader.hierarchy, loader.libraries,
|
| + logger: (String msg) => ticker.logMs(msg));
|
| + backendTarget.performGlobalTransformations(loader.coreTypes, program,
|
| + logger: (String msg) => ticker.logMs(msg));
|
| }
|
|
|
| void verify() {
|
|
|