Index: runtime/vm/flow_graph_type_propagator.cc |
=================================================================== |
--- runtime/vm/flow_graph_type_propagator.cc (revision 39194) |
+++ runtime/vm/flow_graph_type_propagator.cc (working copy) |
@@ -511,7 +511,10 @@ |
if (FLAG_use_cha) { |
const Class& type_class = Class::Handle(type_->type_class()); |
CHA* cha = Isolate::Current()->cha(); |
- if (!cha->IsImplemented(type_class) && |
+ // Don't infer a cid for signature classes since there can be multiple |
+ // signature classes that are assignable to each other. |
+ if (!type_class.IsSignatureClass() && |
+ !cha->IsImplemented(type_class) && |
!cha->HasSubclasses(type_class.id())) { |
cid_ = type_class.id(); |
} else { |