codeql icon indicating copy to clipboard operation
codeql copied to clipboard

Java: JavadocTag does not contain multi-line JavadocText children

Open Marcono1234 opened this issue 5 years ago • 0 comments
trafficstars

Description of the issue Related to #3696

It appears QL is only considering the first line of JavadocTag text and not considering any subsequent lines. Example query for LGTM demo projects:

import java

from JavadocTag javadocTag
where
  javadocTag.getText() = "type of the hashing function (see"
select javadocTag, javadocTag.getNumChild(), javadocTag.getText()

Query console link

Note how it always claims that the tags have only two children (the tag name and a JavadocText) and how for multi-line text, all lines after the first one are missing.

Additionally, if the text for a block tag starts in the next line, no child is reported, e.g.:

/**
 * @deprecated
 *  Some text
 *  More text
 *  Even more text
 */

Expected would be that all subsequent lines would be separate JavadocText (see also #3696) and that they are considered children of the JavadocTag. Additionally getText() should (probably?) concat them with \n (new line) or a space, and it would also be useful to add a JavadocText getATextChild() predicate to JavadocTag as well then.

Marcono1234 avatar Jun 28 '20 12:06 Marcono1234