}
context.analyzer.current_symbol = this;
+ if (values.size <= 0) {
+ Report.error (source_reference, "Enum `%s' requires at least one value".printf (get_full_name ()));
+ error = true;
+ return false;
+ }
+
foreach (EnumValue value in values) {
value.check (context);
}
sym.access = SymbolAccessibility.PUBLIC;
string common_prefix = null;
+ bool has_member = false;
next ();
}
if (reader.name == "member") {
+ has_member = true;
if (error_domain) {
parse_error_member ();
calculate_common_prefix (ref common_prefix, old_current.get_cname ());
pop_metadata ();
}
+ if (!has_member) {
+ Report.error (get_current_src (), "%s `%s' has no members".printf (element_name, current.name));
+ }
+
if (common_prefix != null) {
sym.set_attribute_string ("CCode", "cprefix", common_prefix);
}