Eric Blake <ebl...@redhat.com> writes: > On 03/13/2017 01:18 AM, Markus Armbruster wrote: >> This fixes the errors uncovered by the previous commit. >> >> Signed-off-by: Markus Armbruster <arm...@redhat.com> >> --- > >> >> expr = self.get_expr(False) >> if 'include' in expr: >> + self.reject_expr_doc() >> if len(expr) != 1: > > Do you also need to handle 'pragma' expressions added earlier in the series?
Yes. > /me goes and experiments: > > diff --git i/tests/qapi-schema/doc-bad-expr.json > w/tests/qapi-schema/doc-bad-expr.json > index 0caa0ae..6c1204d 100644 > --- i/tests/qapi-schema/doc-bad-expr.json > +++ w/tests/qapi-schema/doc-bad-expr.json > @@ -4,4 +4,5 @@ > # @foo: > ## > { 'include': 'empty.json' } > +{ 'pragma': {} } > { 'struct': 'foo', 'data': {} } > > Oops - back to accepting the program. Need to squash in diff --git a/scripts/qapi.py b/scripts/qapi.py index 1dc33c9..8d55ff4 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -301,6 +301,7 @@ class QAPISchemaParser(object): self._include(include, info, os.path.dirname(abs_fname), previously_included) elif "pragma" in expr: + self.reject_expr_doc() if len(expr) != 1: raise QAPISemError(info, "Invalid 'pragma' directive") for name, value in expr['pragma'].iteritems():