The first check ensures the second one can't trigger. Drop the first one, because the second one is in a more logical place, and emits a nicer error message.
Signed-off-by: Markus Armbruster <arm...@redhat.com> --- scripts/qapi.py | 8 -------- tests/qapi-schema/union-base-no-discriminator.err | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/scripts/qapi.py b/scripts/qapi.py index 23c32fe..197db77 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -526,14 +526,6 @@ def check_union(expr, expr_info): members = expr['data'] values = { 'MAX': '(automatic)' } - # If the object has a member 'base', its value must name a struct, - # and there must be a discriminator. - if base is not None: - if discriminator is None: - raise QAPIExprError(expr_info, - "Union '%s' requires a discriminator to go " - "along with base" %name) - # Two types of unions, determined by discriminator. # With no discriminator it is a simple union. diff --git a/tests/qapi-schema/union-base-no-discriminator.err b/tests/qapi-schema/union-base-no-discriminator.err index fc8b79c..8b7a242 100644 --- a/tests/qapi-schema/union-base-no-discriminator.err +++ b/tests/qapi-schema/union-base-no-discriminator.err @@ -1 +1 @@ -tests/qapi-schema/union-base-no-discriminator.json:11: Union 'TestUnion' requires a discriminator to go along with base +tests/qapi-schema/union-base-no-discriminator.json:11: Simple union 'TestUnion' must not have a base -- 2.4.3