qapi: Fix enum doc comment checking

Enumeration type documentation comments are not checked, as
demonstrated by test doc-bad-enum-member.  This is because we neglect
to call self.doc.check() for enumeration types.  Messed up in
816a57cd6e "qapi: Fix detection of bogus member documentation".  Fix
it.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20191024110237.30963-10-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2019-10-24 13:02:27 +02:00
parent ee1e6a1f6c
commit 36a43905ff
4 changed files with 5 additions and 22 deletions

View File

@ -229,6 +229,10 @@ class QAPISchemaEnumType(QAPISchemaType):
for m in self.members: for m in self.members:
self.doc.connect_member(m) self.doc.connect_member(m)
def check_doc(self):
if self.doc:
self.doc.check()
def is_implicit(self): def is_implicit(self):
# See QAPISchema._make_implicit_enum_type() and ._def_predefineds() # See QAPISchema._make_implicit_enum_type() and ._def_predefineds()
return self.name.endswith('Kind') or self.name == 'QType' return self.name.endswith('Kind') or self.name == 'QType'

View File

@ -0,0 +1 @@
doc-bad-enum-member.json:3: the following documented members are not in the declaration: a

View File

@ -1,5 +1,4 @@
# Members listed in the doc comment must exist in the actual schema # Members listed in the doc comment must exist in the actual schema
# BUG: nonexistent @a is not rejected
## ##
# @Foo: # @Foo:

View File

@ -1,21 +0,0 @@
module None
object q_empty
enum QType
prefix QTYPE
member none
member qnull
member qnum
member qstring
member qdict
member qlist
member qbool
module doc-bad-enum-member.json
enum Foo
member b
doc symbol=Foo
body=
arg=a
a
arg=b
b