| Index: runtime/vm/object.cc
|
| ===================================================================
|
| --- runtime/vm/object.cc (revision 503)
|
| +++ runtime/vm/object.cc (working copy)
|
| @@ -1770,8 +1770,11 @@
|
| ASSERT(other.IsFinalized());
|
| // Type parameters cannot be handled by Class::IsMoreSpecificThan().
|
| if (IsTypeParameter() || other.IsTypeParameter()) {
|
| - return IsTypeParameter() && other.IsTypeParameter() &&
|
| - (Index() == other.Index());
|
| + // TODO(regis): Revisit this temporary workaround. See issue 5474672.
|
| + return
|
| + (!IsTypeParameter() && other.IsTypeParameter()) ||
|
| + (IsTypeParameter() && other.IsTypeParameter() &&
|
| + (Index() == other.Index()));
|
| }
|
| const Class& cls = Class::Handle(type_class());
|
| return cls.IsMoreSpecificThan(TypeArguments::Handle(arguments()),
|
| @@ -1785,8 +1788,11 @@
|
| ASSERT(other.IsFinalized());
|
| // Type parameters cannot be handled by Class::TestType().
|
| if (IsTypeParameter() || other.IsTypeParameter()) {
|
| - return IsTypeParameter() && other.IsTypeParameter() &&
|
| - (Index() == other.Index());
|
| + // TODO(regis): Revisit this temporary workaround. See issue 5474672.
|
| + return
|
| + (!IsTypeParameter() && other.IsTypeParameter()) ||
|
| + (IsTypeParameter() && other.IsTypeParameter() &&
|
| + (Index() == other.Index()));
|
| }
|
| const Class& cls = Class::Handle(type_class());
|
| if (test == kIsSubtypeOf) {
|
|
|