• E
    qapi: Require all branches of flat union enum to be covered · d0b18239
    Eric Blake 提交于
    We were previously enforcing that all flat union branches were
    found in the corresponding enum, but not that all enum values
    were covered by branches.  The resulting generated code would
    abort() if the user passes the uncovered enum value.
    
    We don't automatically treat non-present branches in a flat
    union as empty types, for symmetry with simple unions (there,
    the enum type is generated from the list of all branches, so
    there is no way to omit a branch but still have it be part of
    the union).
    
    A later patch will add shorthand so that branches that are empty
    in flat unions can be declared as 'branch':{} instead of
    'branch':'Empty', to avoid the need for an otherwise useless
    explicit empty type.  [Such shorthand for simple unions is a bit
    harder to justify, since we would still have to generate a
    wrapper type that parses 'data':{}, rather than truly being an
    empty branch with no additional siblings to the 'type' member.]
    Signed-off-by: NEric Blake <eblake@redhat.com>
    Message-Id: <1468468228-27827-3-git-send-email-eblake@redhat.com>
    Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    d0b18239
qapi.py 59.0 KB