Message ID | 20240216145841.2099240-7-armbru@redhat.com |
---|---|
State | New |
Headers | show |
Series | qapi: Doc comment parsing & doc generation work | expand |
On Fri, Feb 16, 2024 at 03:58:30PM +0100, Markus Armbruster wrote: > When something other than a command has a "Returns" section, the error > message points to the beginning of the definition comment. Point to > the "Returns" section instead. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > scripts/qapi/parser.py | 10 +++++++--- > tests/qapi-schema/doc-invalid-return.err | 2 +- > 2 files changed, 8 insertions(+), 4 deletions(-) Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel
diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index 82db595dcf..a771013959 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -759,9 +759,13 @@ def connect_feature(self, feature: 'QAPISchemaFeature') -> None: self.features[feature.name].connect(feature) def check_expr(self, expr: QAPIExpression) -> None: - if self.has_section('Returns') and 'command' not in expr: - raise QAPISemError(self.info, - "'Returns:' is only valid for commands") + if 'command' not in expr: + sec = next((sec for sec in self.sections + if sec.name == 'Returns'), + None) + if sec: + raise QAPISemError(sec.info, + "'Returns:' is only valid for commands") def check(self) -> None: diff --git a/tests/qapi-schema/doc-invalid-return.err b/tests/qapi-schema/doc-invalid-return.err index 2ad89c5941..bc5826de20 100644 --- a/tests/qapi-schema/doc-invalid-return.err +++ b/tests/qapi-schema/doc-invalid-return.err @@ -1 +1 @@ -doc-invalid-return.json:3: 'Returns:' is only valid for commands +doc-invalid-return.json:5: 'Returns:' is only valid for commands
When something other than a command has a "Returns" section, the error message points to the beginning of the definition comment. Point to the "Returns" section instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- scripts/qapi/parser.py | 10 +++++++--- tests/qapi-schema/doc-invalid-return.err | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-)