Index: pkg/kernel/lib/target/vm.dart |
diff --git a/pkg/kernel/lib/target/vm.dart b/pkg/kernel/lib/target/vm.dart |
index 855857c071fa2352dd75f07a01892f2bce0a898b..58c229dc14f26bf444fa29fba003d5a5de3d2320 100644 |
--- a/pkg/kernel/lib/target/vm.dart |
+++ b/pkg/kernel/lib/target/vm.dart |
@@ -4,8 +4,10 @@ |
library kernel.target.vm; |
import '../ast.dart'; |
+import '../core_types.dart'; |
import '../transformations/continuation.dart' as cont; |
import '../transformations/erasure.dart'; |
+import '../transformations/insert_covariance_checks.dart'; |
import '../transformations/insert_type_checks.dart'; |
import '../transformations/mixin_full_resolution.dart' as mix; |
import '../transformations/sanitize_for_vm.dart'; |
@@ -52,10 +54,16 @@ class VmTarget extends Target { |
]; |
void transformProgram(Program program) { |
- new mix.MixinFullResolution().transform(program); |
+ var mixins = new mix.MixinFullResolution(); |
+ mixins.transform(program); |
if (strongMode) { |
- new InsertTypeChecks().transformProgram(program); |
+ var hierarchy = mixins.hierarchy; |
+ var coreTypes = new CoreTypes(program); |
+ new InsertTypeChecks(hierarchy: hierarchy, coreTypes: coreTypes) |
+ .transformProgram(program); |
+ new InsertCovarianceChecks(hierarchy: hierarchy, coreTypes: coreTypes) |
+ .transformProgram(program); |
} |
cont.transformProgram(program); |