qapi: Move context-sensitive checking to the proper place

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>
This commit is contained in:
Markus Armbruster 2019-09-27 15:46:29 +02:00
parent 77daece3d9
commit fa110c6a9e
40 changed files with 230 additions and 270 deletions

View file

@ -1,2 +1,2 @@
tests/qapi-schema/union-empty.json: In union 'Union':
tests/qapi-schema/union-empty.json:2: union 'Union' has no branches
tests/qapi-schema/union-empty.json:2: union has no branches