
Test flat-union-optional-discriminator declares its union tag as '*switch': 'Enum', and points to it with 'discriminator': '*switch'. This gets rejected as "discriminator of flat union 'MyUnion' uses invalid name '*switch'". Correct; member 'discriminator' doesn't accept a '*' prefix. However, this merely tests name validity checking, which we already cover elsewhere. More interesting is testing the valid name 'switch'. This reports "discriminator 'switch' is not a member of base struct 'Base'", which is misleading. Copy the existing 'discriminator': '*switch' test to flat-union-discriminator-bad-name, and rewrite its comment. Change flat-union-optional-discriminator to test 'discriminator': 'switch', and mark it FIXME. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190914153506.2151-4-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
12 lines
405 B
JSON
12 lines
405 B
JSON
# discriminator '*switch' isn't a member of base, 'switch' is
|
|
# reports "does not allow optional name", which is good enough
|
|
{ 'enum': 'Enum', 'data': [ 'one', 'two' ] }
|
|
{ 'struct': 'Base',
|
|
'data': { '*switch': 'Enum' } }
|
|
{ 'struct': 'Branch', 'data': { 'name': 'str' } }
|
|
{ 'union': 'MyUnion',
|
|
'base': 'Base',
|
|
'discriminator': '*switch',
|
|
'data': { 'one': 'Branch',
|
|
'two': 'Branch' } }
|