qapi: Improve error message on @NAME: in free-form doc
Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <1489582656-31133-34-git-send-email-armbru@redhat.com>
This commit is contained in:
parent
7947016d1c
commit
2d433236df
|
@ -219,6 +219,11 @@ class QAPIDoc(object):
|
||||||
if (in_arg or not self.section.name
|
if (in_arg or not self.section.name
|
||||||
or not self.section.name.startswith('Example')):
|
or not self.section.name.startswith('Example')):
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
|
match = re.match(r'(@\S+:)', line)
|
||||||
|
if match:
|
||||||
|
raise QAPIParseError(self.parser,
|
||||||
|
"'%s' not allowed in free-form documentation"
|
||||||
|
% match.group(1))
|
||||||
# TODO Drop this once the dust has settled
|
# TODO Drop this once the dust has settled
|
||||||
if (isinstance(self.section, QAPIDoc.ArgSection)
|
if (isinstance(self.section, QAPIDoc.ArgSection)
|
||||||
and '#optional' in line):
|
and '#optional' in line):
|
||||||
|
@ -975,14 +980,6 @@ def check_exprs(exprs):
|
||||||
return exprs
|
return exprs
|
||||||
|
|
||||||
|
|
||||||
def check_freeform_doc(doc):
|
|
||||||
body = str(doc.body)
|
|
||||||
if re.search(r'@\S+:', body, re.MULTILINE):
|
|
||||||
raise QAPISemError(doc.info,
|
|
||||||
"Free-form documentation block must not contain"
|
|
||||||
" @NAME: sections")
|
|
||||||
|
|
||||||
|
|
||||||
def check_definition_doc(doc, expr, info):
|
def check_definition_doc(doc, expr, info):
|
||||||
for i in ('enum', 'union', 'alternate', 'struct', 'command', 'event'):
|
for i in ('enum', 'union', 'alternate', 'struct', 'command', 'event'):
|
||||||
if i in expr:
|
if i in expr:
|
||||||
|
@ -1021,9 +1018,7 @@ def check_docs(docs):
|
||||||
raise QAPISemError(doc.info,
|
raise QAPISemError(doc.info,
|
||||||
"Empty doc section '%s'" % section.name)
|
"Empty doc section '%s'" % section.name)
|
||||||
|
|
||||||
if not doc.expr:
|
if doc.expr:
|
||||||
check_freeform_doc(doc)
|
|
||||||
else:
|
|
||||||
check_definition_doc(doc, doc.expr, doc.info)
|
check_definition_doc(doc, doc.expr, doc.info)
|
||||||
|
|
||||||
return docs
|
return docs
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
tests/qapi-schema/doc-invalid-section.json:3: Free-form documentation block must not contain @NAME: sections
|
tests/qapi-schema/doc-invalid-section.json:5:1: '@note:' not allowed in free-form documentation
|
||||||
|
|
Loading…
Reference in New Issue