Chromium Code Reviews| Index: runtime/vm/flow_graph_compiler_ia32.cc |
| =================================================================== |
| --- runtime/vm/flow_graph_compiler_ia32.cc (revision 28233) |
| +++ runtime/vm/flow_graph_compiler_ia32.cc (working copy) |
| @@ -663,9 +663,12 @@ |
| ASSERT(token_pos >= 0); |
| ASSERT(!dst_type.IsNull()); |
| ASSERT(dst_type.IsFinalized()); |
| - // Assignable check is skipped in FlowGraphBuilder, not here. |
| - ASSERT(dst_type.IsMalformed() || dst_type.IsMalbounded() || |
| - (!dst_type.IsDynamicType() && !dst_type.IsObjectType())); |
| + // Assignable check is skipped in FlowGraphBuilder, when possible. |
| + // The optimizer may have instantiated dst_type to dynamic or Object. |
| + if (!dst_type.IsMalformed() && !dst_type.IsMalbounded() && |
| + (dst_type.IsDynamicType() || dst_type.IsObjectType())) { |
| + return; |
| + } |
|
srdjan
2013/10/03 18:00:09
This elimination belongs in AssertAssignableInstr:
regis
2013/10/03 18:20:53
Done.
|
| __ pushl(ECX); // Store instantiator. |
| __ pushl(EDX); // Store instantiator type arguments. |
| // A null object is always assignable and is returned as result. |