diff options
author | Markus Armbruster <armbru@redhat.com> | 2024-02-16 15:58:31 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2024-02-26 10:43:56 +0100 |
commit | 573e2223f91a1662dad3c4ab5f6724bbe2633eff (patch) | |
tree | f0b5120853594459b4874852ffb4cdea92100f21 | |
parent | bf00dc19f3aacf014b308d57bb0debf250339396 (diff) |
qapi: Improve error message for empty doc sections
Improve the message for an empty tagged section from
empty doc section 'Note'
to
text required after 'Note:'
and the message for an empty argument or feature description from
empty doc section 'foo'
to
text required after '@foo:'
Improve the error position to refer to the beginning of the empty
section instead of its end.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240216145841.2099240-8-armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
-rw-r--r-- | docs/sphinx/qapidoc.py | 4 | ||||
-rw-r--r-- | scripts/qapi/parser.py | 14 | ||||
-rw-r--r-- | tests/qapi-schema/doc-empty-section.err | 2 |
3 files changed, 10 insertions, 10 deletions
diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py index 488de23d72..1e8b4a70a1 100644 --- a/docs/sphinx/qapidoc.py +++ b/docs/sphinx/qapidoc.py @@ -239,8 +239,8 @@ class QAPISchemaGenRSTVisitor(QAPISchemaVisitor): seen_item = False dlnode = nodes.definition_list() for section in doc.features.values(): - dlnode += self._make_dlitem([nodes.literal('', section.name)], - section.text) + dlnode += self._make_dlitem( + [nodes.literal('', section.member.name)], section.text) seen_item = True if not seen_item: diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index a771013959..43daf55860 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -476,9 +476,9 @@ class QAPIDoc: self.info = parser.info # parser, for error messages about indentation self._parser = parser - # optional section name (argument/member or section name) + # section tag, if any ('Returns', '@name', ...) self.name = name - # section text without section name + # section text without tag self.text = '' # indentation to strip (None means indeterminate) self._indent = None if self.name else 0 @@ -700,7 +700,7 @@ class QAPIDoc: raise QAPIParseError(self._parser, "'%s' parameter name duplicated" % name) assert not self.sections - new_section = QAPIDoc.ArgSection(self._parser, name) + new_section = QAPIDoc.ArgSection(self._parser, '@' + name) self._switch_section(new_section) symbols_dict[name] = new_section @@ -727,9 +727,9 @@ class QAPIDoc: # We do not create anonymous sections unless there is # something to put in them; this is a parser bug. assert self._section.name - raise QAPIParseError( - self._parser, - "empty doc section '%s'" % self._section.name) + raise QAPISemError( + self._section.info, + "text required after '%s:'" % self._section.name) self._section = new_section @@ -748,7 +748,7 @@ class QAPIDoc: "%s '%s' lacks documentation" % (member.role, member.name)) self.args[member.name] = QAPIDoc.ArgSection(self._parser, - member.name) + '@' + member.name) self.args[member.name].connect(member) def connect_feature(self, feature: 'QAPISchemaFeature') -> None: diff --git a/tests/qapi-schema/doc-empty-section.err b/tests/qapi-schema/doc-empty-section.err index ba7ba70125..5f03a6d733 100644 --- a/tests/qapi-schema/doc-empty-section.err +++ b/tests/qapi-schema/doc-empty-section.err @@ -1 +1 @@ -doc-empty-section.json:7:1: empty doc section 'Note' +doc-empty-section.json:6: text required after 'Note:' |