qapi: Forbid 'any' inside an alternate
The whole point of an alternate is to allow some type-safety while still accepting more than one JSON type. Meanwhile, the 'any' type exists to bypass type-safety altogether. The two are incompatible: you can't accept every type, and still tell which branch of the alternate to use for the parse; fix this to give a sane error instead of a Python stack trace. Note that other types that can't be alternate members are caught earlier, by check_type(). Signed-off-by:Eric Blake <eblake@redhat.com> Message-Id: <1455778109-6278-4-git-send-email-eblake@redhat.com> [Commit message tweaked] Signed-off-by:
Markus Armbruster <armbru@redhat.com>
Showing
- scripts/qapi.py 4 additions, 1 deletionscripts/qapi.py
- tests/Makefile 1 addition, 0 deletionstests/Makefile
- tests/qapi-schema/alternate-any.err 1 addition, 0 deletionstests/qapi-schema/alternate-any.err
- tests/qapi-schema/alternate-any.exit 1 addition, 0 deletionstests/qapi-schema/alternate-any.exit
- tests/qapi-schema/alternate-any.json 4 additions, 0 deletionstests/qapi-schema/alternate-any.json
- tests/qapi-schema/alternate-any.out 0 additions, 0 deletionstests/qapi-schema/alternate-any.out
Loading
Please register or sign in to comment