| 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 c273be8460159720aecda58386bcd5956d73a098..937c4e16d79076fcd7548b3758f420878fa07500 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
|
| @@ -270,10 +270,8 @@ class KernelTarget extends TargetImplementation {
|
| loader.finishStaticInvocations();
|
| finishAllConstructors();
|
| loader.finishNativeMethods();
|
| - transformMixinApplications();
|
| - // TODO(ahe): Don't call this from two different places.
|
| - setup_builtin_library.transformProgram(program);
|
| - otherTransformations();
|
| + runBuildTransformations();
|
| +
|
| if (dumpIr) this.dumpIr();
|
| if (verify) this.verify();
|
| errors.addAll(loader.collectCompileTimeErrors().map((e) => e.format()));
|
| @@ -389,7 +387,7 @@ class KernelTarget extends TargetImplementation {
|
| }
|
| }
|
| if (errors.isEmpty || dillTarget.isLoaded) {
|
| - setup_builtin_library.transformProgram(program);
|
| + runLinkTransformations(program);
|
| }
|
| ticker.logMs("Linked program");
|
| return program;
|
| @@ -677,6 +675,20 @@ class KernelTarget extends TargetImplementation {
|
| });
|
| }
|
|
|
| + /// Run all transformations that are needed when building a program for the
|
| + /// first time.
|
| + void runBuildTransformations() {
|
| + transformMixinApplications();
|
| + // TODO(ahe): Don't call this from two different places.
|
| + setup_builtin_library.transformProgram(program);
|
| + otherTransformations();
|
| + }
|
| +
|
| + /// Run all transformations that are needed when linking a program.
|
| + void runLinkTransformations(Program program) {
|
| + setup_builtin_library.transformProgram(program);
|
| + }
|
| +
|
| void transformMixinApplications() {
|
| new MixinFullResolution().transform(program);
|
| ticker.logMs("Transformed mixin applications");
|
|
|