|
@@ -283,6 +283,9 @@ def check_union(expr, info):
|
|
|
raise QAPISemError(info, "'discriminator' requires 'base'")
|
|
|
check_name_is_str(discriminator, info, "'discriminator'")
|
|
|
|
|
|
+ if not isinstance(members, dict):
|
|
|
+ raise QAPISemError(info, "'data' must be an object")
|
|
|
+
|
|
|
for (key, value) in members.items():
|
|
|
source = "'data' member '%s'" % key
|
|
|
if discriminator is None:
|
|
@@ -298,6 +301,10 @@ def check_alternate(expr, info):
|
|
|
|
|
|
if not members:
|
|
|
raise QAPISemError(info, "'data' must not be empty")
|
|
|
+
|
|
|
+ if not isinstance(members, dict):
|
|
|
+ raise QAPISemError(info, "'data' must be an object")
|
|
|
+
|
|
|
for (key, value) in members.items():
|
|
|
source = "'data' member '%s'" % key
|
|
|
check_name_lower(key, info, source)
|