Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart |
index ca34d15f0107b02e2801c7f76694381a6ef593f1..480086b7b10b057602f0dfb83cc506d18394755b 100644 |
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart |
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart |
@@ -2753,7 +2753,11 @@ class IrBuilder { |
// `x is Null` is true if and only if x is null. |
return _buildCheckNull(value); |
} |
- return addPrimitive(new ir.TypeTest(value, type, typeArguments)); |
+ if (type.isInterfaceType && type.isRaw) { |
sra1
2015/10/06 06:47:58
I think this could me moved to type_propagation.
sra1
2015/10/07 04:01:06
Done.
|
+ return addPrimitive(new ir.TypeTestRaw(value, type)); |
+ } else { |
+ return addPrimitive(new ir.TypeTest(value, type, typeArguments)); |
+ } |
} else { |
if (type.isObject || type.isDynamic) { |
// `x as Object` and `x as dynamic` are the same as `x`. |