| Index: runtime/vm/class_finalizer.cc
|
| diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
|
| index f2bb1dc372ac7b0717702cbe53167ee2459d1ce5..670d1cf8f8a1364d2c0a6a77e086797cc32da784 100644
|
| --- a/runtime/vm/class_finalizer.cc
|
| +++ b/runtime/vm/class_finalizer.cc
|
| @@ -295,14 +295,17 @@ void ClassFinalizer::ResolveSuperType(const Class& cls) {
|
| case kWeakPropertyCid:
|
| is_error = true;
|
| break;
|
| - default:
|
| + default: {
|
| // Special case: classes for which we don't have a known class id.
|
| // TODO(regis): Why isn't comparing to kIntegerCid enough?
|
| if (Type::Handle(Type::Double()).type_class() == super_class.raw() ||
|
| - Type::Handle(Type::IntType()).type_class() == super_class.raw()) {
|
| + Type::Handle(Type::IntType()).type_class() == super_class.raw() ||
|
| + Type::Handle(
|
| + Type::StringType()).type_class() == super_class.raw()) {
|
| is_error = true;
|
| }
|
| break;
|
| + }
|
| }
|
| if (is_error) {
|
| const Script& script = Script::Handle(cls.script());
|
| @@ -1392,7 +1395,7 @@ void ClassFinalizer::ResolveInterfaces(const Class& cls,
|
| interface.IsNumberType() ||
|
| interface.IsIntType() ||
|
| interface.IsDoubleType() ||
|
| - interface.IsStringInterface() ||
|
| + interface.IsStringType() ||
|
| (interface.IsFunctionType() && !cls.IsSignatureClass()) ||
|
| interface.IsDynamicType()) {
|
| const Script& script = Script::Handle(cls.script());
|
|
|