summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vala/valaenum.vala6
-rw-r--r--vala/valagirparser.vala6
2 files changed, 12 insertions, 0 deletions
diff --git a/vala/valaenum.vala b/vala/valaenum.vala
index acb8eb35c..add510783 100644
--- a/vala/valaenum.vala
+++ b/vala/valaenum.vala
@@ -171,6 +171,12 @@ public class Vala.Enum : TypeSymbol {
}
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);
}
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 6a30f33a5..9b4c0e8dc 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -2293,6 +2293,7 @@ public class Vala.GirParser : CodeVisitor {
sym.access = SymbolAccessibility.PUBLIC;
string common_prefix = null;
+ bool has_member = false;
next ();
@@ -2305,6 +2306,7 @@ public class Vala.GirParser : CodeVisitor {
}
if (reader.name == "member") {
+ has_member = true;
if (error_domain) {
parse_error_member ();
calculate_common_prefix (ref common_prefix, old_current.get_cname ());
@@ -2323,6 +2325,10 @@ public class Vala.GirParser : CodeVisitor {
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);
}