Explorar o código

qapi: Improve reporting of missing documentation comment

Have check_exprs() check this later, so the error message gains an "in
definition line".  Tweak the error message.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190927134639.4284-25-armbru@redhat.com>
Markus Armbruster %!s(int64=5) %!d(string=hai) anos
pai
achega
f63326985a
Modificáronse 2 ficheiros con 10 adicións e 11 borrados
  1. 8 10
      scripts/qapi/common.py
  2. 2 1
      tests/qapi-schema/doc-missing.err

+ 8 - 10
scripts/qapi/common.py

@@ -933,10 +933,6 @@ def check_exprs(exprs):
         if 'include' in expr:
         if 'include' in expr:
             continue
             continue
 
 
-        if not doc and doc_required:
-            raise QAPISemError(info,
-                               "definition missing documentation comment")
-
         if 'enum' in expr:
         if 'enum' in expr:
             meta = 'enum'
             meta = 'enum'
         elif 'union' in expr:
         elif 'union' in expr:
@@ -957,9 +953,14 @@ def check_exprs(exprs):
         info.set_defn(meta, name)
         info.set_defn(meta, name)
         check_defn_name_str(name, info, meta)
         check_defn_name_str(name, info, meta)
 
 
-        if doc and doc.symbol != name:
-            raise QAPISemError(
-                info, "documentation comment is for '%s'" % doc.symbol)
+        if doc:
+            if doc.symbol != name:
+                raise QAPISemError(
+                    info, "documentation comment is for '%s'" % doc.symbol)
+            doc.check_expr(expr)
+        elif doc_required:
+            raise QAPISemError(info,
+                               "documentation comment required")
 
 
         if meta == 'enum':
         if meta == 'enum':
             check_keys(expr, info, meta,
             check_keys(expr, info, meta,
@@ -1004,9 +1005,6 @@ def check_exprs(exprs):
         check_if(expr, info, meta)
         check_if(expr, info, meta)
         check_flags(expr, info)
         check_flags(expr, info)
 
 
-        if doc:
-            doc.check_expr(expr)
-
     return exprs
     return exprs
 
 
 
 

+ 2 - 1
tests/qapi-schema/doc-missing.err

@@ -1 +1,2 @@
-tests/qapi-schema/doc-missing.json:5: definition missing documentation comment
+tests/qapi-schema/doc-missing.json: In command 'undocumented':
+tests/qapi-schema/doc-missing.json:5: documentation comment required