qapi: Detect collisions in C member names
commit27b60ab93bd1d5d8c85f009aac7a97ffd2c53c86
authorEric Blake <eblake@redhat.com>
Wed, 18 Nov 2015 08:52:51 +0000 (18 01:52 -0700)
committerMarkus Armbruster <armbru@redhat.com>
Thu, 17 Dec 2015 07:21:27 +0000 (17 08:21 +0100)
treee53959d5527ff0ba5f9f9da180cb84ae65727205
parent88d4ef8b5cbf9d3336564b1d3ac7a91cbe4aee0e
qapi: Detect collisions in C member names

Detect attempts to declare two object members that would result
in the same C member name, by keying the 'seen' dictionary off
of the C name rather than the qapi name.  It also requires passing
info through the check_clash() methods.

This addresses a TODO and fixes the previously-broken
args-name-clash test.  The resulting error message demonstrates
the utility of the .describe() method added previously.  No change
to generated code.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1447836791-369-17-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
scripts/qapi.py
tests/qapi-schema/args-name-clash.err
tests/qapi-schema/args-name-clash.exit
tests/qapi-schema/args-name-clash.json
tests/qapi-schema/args-name-clash.out