fa110c6a9e
When we introduced the QAPISchema intermediate representation (commit
ac88219a6c
), we took a shortcut: we left check_exprs() & friends
alone instead of moving semantic checks into the
QAPISchemaFOO.check(). The .check() assert check_exprs() did its job.
Time to finish the conversion job. Move exactly the context-sensitive
checks to the .check(). They replace assertions there. Context-free
checks stay put.
Fixes the misleading optional tag error demonstrated by test
flat-union-optional-discriminator.
A few other error message improve.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190927134639.4284-17-armbru@redhat.com>
11 lines
342 B
JSON
11 lines
342 B
JSON
# discriminator '*switch' isn't a member of base, 'switch' is
|
|
{ 'enum': 'Enum', 'data': [ 'one', 'two' ] }
|
|
{ 'struct': 'Base',
|
|
'data': { '*switch': 'Enum' } }
|
|
{ 'struct': 'Branch', 'data': { 'name': 'str' } }
|
|
{ 'union': 'MyUnion',
|
|
'base': 'Base',
|
|
'discriminator': '*switch',
|
|
'data': { 'one': 'Branch',
|
|
'two': 'Branch' } }
|