Eric Blake
ac4338f8eb
qapi: Allow anonymous base for flat union
...
Rather than requiring all flat unions to explicitly create
a separate base struct, we can allow the qapi schema to specify
the common members via an inline dictionary. This is similar to
how commands can specify an inline anonymous type for its 'data'.
We already have several struct types that only exist to serve as
a single flat union's base; the next commit will clean them up.
In particular, this patch's change to the BlockdevOptions example
in qapi-code-gen.txt will actually be done in the real QAPI schema.
Now that anonymous bases are legal, we need to rework the
flat-union-bad-base negative test (as previously written, it
forms what is now valid QAPI; tweak it to now provide coverage
of a new error message path), and add a positive test in
qapi-schema-test to use an anonymous base (making the integer
argument optional, for even more coverage).
Note that this patch only allows anonymous bases for flat unions;
simple unions are already enough syntactic sugar that we do not
want to burden them further. Meanwhile, while it would be easy
to also allow an anonymous base for structs, that would be quite
redundant, as the members can be put right into the struct
instead.
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1458254921-17042-15-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2016-03-18 10:29:26 +01:00
..
2014-05-08 14:19:58 -04:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:00 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-09-04 15:47:15 +02:00
2015-05-05 18:39:01 +02:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2016-03-18 10:29:25 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-10-12 18:44:54 +02:00
2014-03-11 09:07:41 -04:00
2015-10-12 18:44:54 +02:00
2014-03-11 09:07:41 -04:00
2016-03-18 10:29:25 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-09-15 10:59:28 +01:00
2015-09-15 10:59:28 +01:00
2015-09-15 10:59:28 +01:00
2015-09-15 10:59:28 +01:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2016-03-18 10:29:25 +01:00
2015-05-05 18:39:02 +02:00
2014-06-23 11:01:25 -04:00
2014-06-23 11:01:25 -04:00
2014-06-23 11:01:25 -04:00
2015-06-18 14:19:47 +02:00
2015-06-18 14:19:47 +02:00
2015-06-18 14:19:47 +02:00
2015-06-18 14:19:47 +02:00
2016-03-18 10:29:26 +01:00
2015-05-05 18:39:00 +02:00
2016-03-18 10:29:26 +01:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:46:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-10-12 18:46:49 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-10-12 18:44:54 +02:00
2015-10-12 18:44:54 +02:00
2015-10-12 18:44:54 +02:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2015-10-12 18:46:49 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:46:49 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2014-05-08 14:19:58 -04:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-10-12 18:46:49 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2014-05-08 14:19:58 -04:00
2014-03-11 09:07:42 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:42 -04:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2016-03-18 10:29:25 +01:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-06-18 14:12:34 +02:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-06-18 14:12:34 +02:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-10-12 18:44:54 +02:00
2014-05-08 14:19:58 -04:00
2015-10-12 18:44:54 +02:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2016-03-18 10:29:25 +01:00
2014-05-16 10:35:59 -04:00
2014-05-16 10:35:59 -04:00
2014-05-16 10:35:59 -04:00
2014-05-16 10:35:59 -04:00
2016-03-18 10:29:25 +01:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2016-03-18 10:29:25 +01:00
2015-05-05 18:39:01 +02:00
2016-03-18 10:29:25 +01:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-09-04 15:47:15 +02:00
2015-05-05 18:39:02 +02:00
2014-05-08 14:19:58 -04:00
2016-03-18 10:29:26 +01:00
2016-03-18 10:29:26 +01:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:10 -05:00
2013-07-29 10:37:10 -05:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:28 +01:00
2015-11-02 08:30:28 +01:00
2015-11-02 08:30:28 +01:00
2015-11-02 08:30:28 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-11-02 08:30:25 +01:00
2015-11-02 08:30:25 +01:00
2015-11-02 08:30:25 +01:00
2015-11-02 08:30:25 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-09-04 15:47:16 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:02 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:02 +02:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:02 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:02 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-21 09:32:50 +02:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-09-04 15:47:16 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-10-12 18:44:54 +02:00
2015-12-17 08:21:29 +01:00
2015-10-12 18:44:54 +02:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2015-10-12 18:46:49 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00