# an optional argument.
check_known_keys(info, "member '%s' of %s" % (key, source),
arg, ['type'], ['if'])
+ check_if(arg, info)
check_type(info, "Member '%s' of %s" % (key, source),
arg['type'], allow_array=True,
allow_metas=['built-in', 'union', 'alternate', 'struct',
check_known_keys(info, "member '%s' of union '%s'" % (key, name),
value, ['type'], ['if'])
+ check_if(value, info)
# Each value must name a known type
check_type(info, "Member '%s' of union '%s'" % (key, name),
value['type'],
check_known_keys(info,
"member '%s' of alternate '%s'" % (key, name),
value, ['type'], ['if'])
+ check_if(value, info)
typ = value['type']
# Ensure alternates have no type conflicts.
# Cover branch with invalid 'if'
-# FIXME not rejected, would generate '#if \n'
{ 'enum': 'Branches', 'data': ['branch1'] }
{ 'struct': 'Stru', 'data': { 'member': 'str' } }
{ 'union': 'Uni',