Index: runtime/vm/class_finalizer.cc |
=================================================================== |
--- runtime/vm/class_finalizer.cc (revision 38465) |
+++ runtime/vm/class_finalizer.cc (working copy) |
@@ -1458,8 +1458,14 @@ |
name.ToCString(), |
super_class_name.ToCString()); |
} |
- // The function may be a still unresolved redirecting factory. Do not yet |
- // try to resolve it in order to avoid cycles in class finalization. |
+ if (function.IsRedirectingFactory()) { |
+ // The function may be a still unresolved redirecting factory. Do not |
+ // yet try to resolve it in order to avoid cycles in class finalization. |
+ // However, the redirection type should be finalized. |
+ Type& type = Type::Handle(function.RedirectionType()); |
+ type ^= FinalizeType(cls, type, kCanonicalize); |
+ function.SetRedirectionType(type); |
+ } |
} else if (function.IsGetterFunction() || |
function.IsImplicitGetterFunction()) { |
super_class = FindSuperOwnerOfFunction(cls, name); |