PATCH 01-08 fix a few minor bugs I found on the way. Could be a separate series, but keeping them here seems simpler.
PATCH 09-12 improve tests for 'if' conditionals. PATCH 13 fixes a code generation regression, and PATCH 14 rejects uses conditionals that never worked and aren't worth fixing. Markus Armbruster (14): qapi: Fix error message format regression qapi/schema: Use super() qapi: Clean up after removal of simple unions qapi: Split up check_type() qapi: Improve error message for unexpected array types qapi: Simplify code a bit after previous commit qapi: Fix error message when type name or array is expected qapi: Fix to reject 'data': 'mumble' in struct tests/qapi-schema: Improve union discriminator coverage tests/qapi-schema: Rename a few conditionals tests/qapi-schema: Clean up positive test for conditionals tests/qapi-schema: Cover optional conditional struct member qapi: Fix code generated for optional conditional struct member qapi: Require boxed for conditional command and event arguments docs/devel/qapi-code-gen.rst | 5 +- scripts/qapi/commands.py | 1 + scripts/qapi/expr.py | 115 ++++++++++-------- scripts/qapi/gen.py | 1 + scripts/qapi/main.py | 2 +- scripts/qapi/schema.py | 16 ++- scripts/qapi/visit.py | 2 + tests/qapi-schema/args-if-implicit.err | 2 + tests/qapi-schema/args-if-implicit.json | 4 + tests/qapi-schema/args-if-implicit.out | 0 tests/qapi-schema/args-if-unboxed.err | 2 + tests/qapi-schema/args-if-unboxed.json | 6 + tests/qapi-schema/args-if-unboxed.out | 0 tests/qapi-schema/bad-data.err | 2 +- tests/qapi-schema/event-args-if-unboxed.err | 2 + tests/qapi-schema/event-args-if-unboxed.json | 4 + tests/qapi-schema/event-args-if-unboxed.out | 0 tests/qapi-schema/event-nest-struct.err | 2 +- tests/qapi-schema/meson.build | 3 + tests/qapi-schema/nested-struct-data.err | 2 +- tests/qapi-schema/qapi-schema-test.json | 20 +-- tests/qapi-schema/qapi-schema-test.out | 32 ++--- tests/qapi-schema/returns-dict.err | 2 +- tests/qapi-schema/struct-data-typename.err | 2 + tests/qapi-schema/struct-data-typename.json | 2 + tests/qapi-schema/struct-data-typename.out | 0 tests/qapi-schema/struct-member-invalid.err | 2 +- tests/qapi-schema/union-array-branch.err | 2 +- .../union-invalid-discriminator.err | 2 +- .../union-invalid-discriminator.json | 4 +- 30 files changed, 141 insertions(+), 98 deletions(-) create mode 100644 tests/qapi-schema/args-if-implicit.err create mode 100644 tests/qapi-schema/args-if-implicit.json create mode 100644 tests/qapi-schema/args-if-implicit.out create mode 100644 tests/qapi-schema/args-if-unboxed.err create mode 100644 tests/qapi-schema/args-if-unboxed.json create mode 100644 tests/qapi-schema/args-if-unboxed.out create mode 100644 tests/qapi-schema/event-args-if-unboxed.err create mode 100644 tests/qapi-schema/event-args-if-unboxed.json create mode 100644 tests/qapi-schema/event-args-if-unboxed.out create mode 100644 tests/qapi-schema/struct-data-typename.err create mode 100644 tests/qapi-schema/struct-data-typename.json create mode 100644 tests/qapi-schema/struct-data-typename.out -- 2.39.2