fa110c6a9e
When we introduced the QAPISchema intermediate representation (commit ac88219a6c7), 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' } }
|