| 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); | 
|  |