Index: vm/class_finalizer.cc |
=================================================================== |
--- vm/class_finalizer.cc (revision 1545) |
+++ vm/class_finalizer.cc (working copy) |
@@ -912,6 +912,18 @@ |
if (cls.is_const()) { |
CheckForLegalConstClass(cls); |
} |
+ // Check to ensure we don't have classes with native fields in libraries |
+ // which do not have a native resolver. |
+ if (cls.num_native_fields() != 0) { |
+ const Library& lib = Library::Handle(cls.library()); |
+ if (lib.native_entry_resolver() == NULL) { |
+ const String& cls_name = String::Handle(cls.Name()); |
+ const String& lib_name = String::Handle(lib.url()); |
+ ReportError("class '%s' is trying to extend a native fields class," |
+ "but library '%s' has no native resolvers", |
+ cls_name.ToCString(), lib_name.ToCString()); |
+ } |
+ } |
} |