887a2069f7
check_union() checks the discriminator exists in base and makes sense. Two error messages mention the base. These are broken for anonymous bases, as demonstrated by tests flat-union-invalid-discriminator and flat-union-invalid-if-discriminator.err. The third one doesn't bother. First broken when commitac4338f8eb
"qapi: Allow anonymous base for flat union" (v2.6.0) neglected to adjust the "not a member of base" error message. Commitccadd6bcba
"qapi: Add 'if' to implicit struct members" (v4.0.0) then cloned the flawed error message. Dumb them down not to mention the base. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190914153506.2151-11-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
15 lines
360 B
JSON
15 lines
360 B
JSON
{ 'enum': 'TestEnum',
|
|
'data': [ 'value1', 'value2' ] }
|
|
|
|
{ 'struct': 'TestTypeA',
|
|
'data': { 'string': 'str' } }
|
|
|
|
{ 'struct': 'TestTypeB',
|
|
'data': { 'integer': 'int' } }
|
|
|
|
{ 'union': 'TestUnion',
|
|
'base': { 'enum1': { 'type': 'TestEnum', 'if': 'FOO' } },
|
|
'discriminator': 'enum1',
|
|
'data': { 'value1': 'TestTypeA',
|
|
'value2': 'TestTypeB' } }
|