Index: runtime/vm/cha.cc |
=================================================================== |
--- runtime/vm/cha.cc (revision 30577) |
+++ runtime/vm/cha.cc (working copy) |
@@ -83,8 +83,11 @@ |
Class& direct_subclass = Class::Handle(); |
for (intptr_t i = 0; i < cls_direct_subclasses.Length(); i++) { |
direct_subclass ^= cls_direct_subclasses.At(i); |
- if (direct_subclass.LookupDynamicFunction(function_name) != |
- Function::null()) { |
+ // Unfinalized classes are treated as non-existent for CHA purposes, |
+ // as that means that no instance of that class exists at runtime. |
+ if (direct_subclass.is_finalized() && |
+ (direct_subclass.LookupDynamicFunction(function_name) != |
+ Function::null())) { |
return true; |
} |
if (HasOverride(direct_subclass, function_name)) { |