| Index: runtime/vm/object.cc
|
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
|
| index 2799c1b0ebfefb6f71496345b5d20397c7c5ac16..f44c36539865db16ec85e89c1c206adcb1f01e76 100644
|
| --- a/runtime/vm/object.cc
|
| +++ b/runtime/vm/object.cc
|
| @@ -15684,13 +15684,9 @@ bool AbstractType::TypeTest(TypeTestKind test_kind,
|
| }
|
| const AbstractType& bound = AbstractType::Handle(type_param.bound());
|
| // We may be checking bounds at finalization time and can encounter
|
| - // a still unfinalized bound.
|
| - if (!bound.IsFinalized() && !bound.IsBeingFinalized()) {
|
| - ClassFinalizer::FinalizeType(
|
| - Class::Handle(type_param.parameterized_class()),
|
| - bound,
|
| - ClassFinalizer::kCanonicalize);
|
| - type_param.set_bound(bound);
|
| + // a still unfinalized bound. Finalizing the bound here may lead to cycles.
|
| + if (!bound.IsFinalized()) {
|
| + return false; // TODO(regis): Return "maybe after instantiation".
|
| }
|
| if (bound.IsMoreSpecificThan(other, bound_error)) {
|
| return true;
|
|
|