Index: runtime/vm/object.cc |
=================================================================== |
--- runtime/vm/object.cc (revision 11113) |
+++ runtime/vm/object.cc (working copy) |
@@ -4367,7 +4367,9 @@ |
} |
const Type& signature_type = Type::Handle(signature_class.SignatureType()); |
if (!signature_type.IsFinalized()) { |
- ClassFinalizer::FinalizeType( |
+ // No additional malformed types can be detected during finalization. |
+ ClassFinalizer class_finalizer(ClassFinalizer::kNotGeneratingSnapshot); |
+ class_finalizer.FinalizeType( |
signature_class, signature_type, ClassFinalizer::kCanonicalize); |
} |
ASSERT(closure_function.signature_class() == signature_class.raw()); |
@@ -6273,7 +6275,8 @@ |
RawError* Library::Patch(const Script& script) const { |
ASSERT(script.kind() == RawScript::kPatchTag); |
- return Compiler::Compile(*this, script); |
+ // Do not tolerate malformed types when patching libraries. |
+ return Compiler::Compile(*this, script, ClassFinalizer::kGeneratingSnapshot); |
} |