github / github/codeql

Java: JavadocTag does not contain multi-line JavadocText children

未关闭
#3,825 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Java question
主要语言
CodeQL
星标
10.1k
派生
2.1k
平均合并
2 天 15 小时
30 天内合并 PR
141

描述

**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:
```ql
import java

from JavadocTag javadocTag
where
javadocTag.getText() = "type of the hashing function (see"
select javadocTag, javadocTag.getNumChild(), javadocTag.getText()
```
[Query console link](https://lgtm.com/query/3510661099047413739/)

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.:
```java
/**
* @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.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。