| 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 d12f74853106dec82310aabf237f938155237aae..5ab3f8f719fc751bc51c98a6084ac87e8d5a8b6b 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
|
| @@ -41,6 +41,10 @@ import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter;
|
|
|
| import 'package:kernel/text/ast_to_text.dart' show Printer;
|
|
|
| +import 'package:kernel/transformations/erasure.dart' show Erasure;
|
| +
|
| +import 'package:kernel/transformations/continuation.dart' as transformAsync;
|
| +
|
| import 'package:kernel/transformations/mixin_full_resolution.dart'
|
| show MixinFullResolution;
|
|
|
| @@ -219,6 +223,7 @@ class KernelTarget extends TargetImplementation {
|
| transformMixinApplications();
|
| // TODO(ahe): Don't call this from two different places.
|
| setup_builtin_library.transformProgram(program);
|
| + otherTransformations();
|
| errors.addAll(loader.collectCompileTimeErrors().map((e) => e.format()));
|
| if (errors.isNotEmpty) {
|
| return handleInputError(uri, null, isFullProgram: true);
|
| @@ -549,6 +554,15 @@ class KernelTarget extends TargetImplementation {
|
| ticker.logMs("Transformed mixin applications");
|
| }
|
|
|
| + void otherTransformations() {
|
| + // TODO(ahe): Don't generate type variables in the first place.
|
| + program.accept(new Erasure());
|
| + ticker.logMs("Erased type variables in generic methods");
|
| + // TODO(kmillikin): Make this run on a per-method basis.
|
| + transformAsync.transformProgram(program);
|
| + ticker.logMs("Transformed async methods");
|
| + }
|
| +
|
| void dumpIr() {
|
| StringBuffer sb = new StringBuffer();
|
| for (Library library in loader.libraries) {
|
|
|