qapi: Tweak error messages for missing / conflicting meta-type
Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20210831123809.1107782-12-armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
parent
9c629fa834
commit
6dcf03719a
@ -630,20 +630,15 @@ def check_exprs(exprs: List[_JSONObject]) -> List[_JSONObject]:
|
||||
if 'include' in expr:
|
||||
continue
|
||||
|
||||
if 'enum' in expr:
|
||||
meta = 'enum'
|
||||
elif 'union' in expr:
|
||||
meta = 'union'
|
||||
elif 'alternate' in expr:
|
||||
meta = 'alternate'
|
||||
elif 'struct' in expr:
|
||||
meta = 'struct'
|
||||
elif 'command' in expr:
|
||||
meta = 'command'
|
||||
elif 'event' in expr:
|
||||
meta = 'event'
|
||||
else:
|
||||
raise QAPISemError(info, "expression is missing metatype")
|
||||
metas = expr.keys() & {'enum', 'struct', 'union', 'alternate',
|
||||
'command', 'event'}
|
||||
if len(metas) != 1:
|
||||
raise QAPISemError(
|
||||
info,
|
||||
"expression must have exactly one key"
|
||||
" 'enum', 'struct', 'union', 'alternate',"
|
||||
" 'command', 'event'")
|
||||
meta = metas.pop()
|
||||
|
||||
check_name_is_str(expr[meta], info, "'%s'" % meta)
|
||||
name = cast(str, expr[meta])
|
||||
|
@ -1,3 +1 @@
|
||||
double-type.json: In struct 'Bar':
|
||||
double-type.json:2: struct has unknown key 'command'
|
||||
Valid keys are 'base', 'data', 'features', 'if', 'struct'.
|
||||
double-type.json:2: expression must have exactly one key 'enum', 'struct', 'union', 'alternate', 'command', 'event'
|
||||
|
@ -1 +1 @@
|
||||
missing-type.json:2: expression is missing metatype
|
||||
missing-type.json:2: expression must have exactly one key 'enum', 'struct', 'union', 'alternate', 'command', 'event'
|
||||
|
Loading…
Reference in New Issue
Block a user