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()); |