Skip to content
  • Markus Armbruster's avatar
    bf83f04e
    qapi: Fix doc comment checking for commands and events · bf83f04e
    Markus Armbruster authored
    
    
    When a command's 'data' is an object, its doc comment describes the
    arguments defined there.  When 'data' names a type, the doc comment
    does not describe arguments.  Instead, the doc generator inserts a
    pointer to the named type.
    
    An event's doc comment works the same.
    
    We don't actually check doc comments for commands and events.
    Instead, QAPISchema._def_command() forwards the doc comment to the
    implicit argument type, where it gets checked.  Works because the
    check only cares for the implicit argument type's members.
    
    Not only is this needlessly hard to understand, it actually falls
    apart in two cases:
    
    * When 'data' is empty, there is nothing to forward to, and the doc
      comment remains unchecked.  Demonstrated by test doc-bad-event-arg.
    
    * When 'data' names a type, we can't forward, as the type has its own
      doc comment.  The command or event's doc comment remains unchecked.
      Demonstrated by test doc-bad-boxed-command-arg.
    
    The forwarding goes back to commit 069fb5b2 "qapi: Prepare for
    requiring more complete documentation", put to use in commit
    816a57cd "qapi: Fix detection of bogus member documentation".  That
    fix was incomplete.
    
    To fix this, make QAPISchemaCommand and QAPISchemaEvent check doc
    comments, and drop the forwarding of doc comments to implicit argument
    types.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20191024110237.30963-12-armbru@redhat.com>
    bf83f04e
    qapi: Fix doc comment checking for commands and events
    Markus Armbruster authored
    
    
    When a command's 'data' is an object, its doc comment describes the
    arguments defined there.  When 'data' names a type, the doc comment
    does not describe arguments.  Instead, the doc generator inserts a
    pointer to the named type.
    
    An event's doc comment works the same.
    
    We don't actually check doc comments for commands and events.
    Instead, QAPISchema._def_command() forwards the doc comment to the
    implicit argument type, where it gets checked.  Works because the
    check only cares for the implicit argument type's members.
    
    Not only is this needlessly hard to understand, it actually falls
    apart in two cases:
    
    * When 'data' is empty, there is nothing to forward to, and the doc
      comment remains unchecked.  Demonstrated by test doc-bad-event-arg.
    
    * When 'data' names a type, we can't forward, as the type has its own
      doc comment.  The command or event's doc comment remains unchecked.
      Demonstrated by test doc-bad-boxed-command-arg.
    
    The forwarding goes back to commit 069fb5b2 "qapi: Prepare for
    requiring more complete documentation", put to use in commit
    816a57cd "qapi: Fix detection of bogus member documentation".  That
    fix was incomplete.
    
    To fix this, make QAPISchemaCommand and QAPISchemaEvent check doc
    comments, and drop the forwarding of doc comments to implicit argument
    types.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20191024110237.30963-12-armbru@redhat.com>
Loading