We generally put implicitly defined types in whatever module triggered their definition. This is wrong for array types, as the included test case demonstrates. Let's have a closer look at it. Type 'Status' is defined sub-sub-module.json. Array type ['Status'] occurs in main module qapi-schema-test.json and in include/sub-module.json. The main module's use is first, so the array type gets put into the main module. The generated C headers define StatusList in qapi-types.h. But include/qapi-types-sub-module.h uses it without including qapi-types.h. Oops. To fix that, put the array type into its element type's module. Now StatusList gets generated into qapi-types-sub-module.h, which all its users include. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190301154051.23317-8-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
8 lines
169 B
Python
8 lines
169 B
Python
# *-*- Mode: Python -*-*
|
|
|
|
# Sub-module of ../qapi-schema-test.json
|
|
|
|
{ 'include': '../sub-sub-module.json' }
|
|
|
|
{ 'struct': 'SecondArrayRef', 'data': { 's': ['Status'] } }
|