• E
    qapi: Better error messages for duplicated expressions · 4dc2e690
    Eric Blake 提交于
    The previous commit demonstrated that the generator overlooked
    duplicate expressions:
    - a complex type or command reusing a built-in type name
    - redeclaration of a type name, whether by the same or different
    metatype
    - redeclaration of a command or event
    - collision of a type with implicit 'Kind' enum for a union
    - collision with an implicit MAX enum constant
    
    Since the c_type() function in the generator treats all names
    as being in the same namespace, this patch adds a global array
    to track all known names and their source, to prevent collisions
    before it can cause further problems.  While valid .json files
    won't trigger any of these cases, we might as well be nicer to
    developers that make a typo while trying to add new QAPI code.
    Signed-off-by: NEric Blake <eblake@redhat.com>
    Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    4dc2e690
enum-union-clash.json 154 字节