Java: `StringLiteral` matches String concatenation of two String literals
未關閉
documentation
Java
question
- 主要語言
- CodeQL
- 星號
- 10.1k
- 分支
- 2.1k
- 平均合併
- 2 天 15 小時
- 30 天內合併 PR
- 141
描述
It appears the class `StringLiteral` matches String concatenation of two String literals.
This is not how the JLS [defines a String literal](https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.5). Instead they should be matched as separate String literals being operands of an `AddExpr` (which is a `CompileTimeConstantExpr`).
Query finding these erroneous `StringLiteral`s:
```ql
import java
from StringLiteral s
where
exists(s.getLiteral().indexOf("+"))
and not exists(s.getValue().indexOf("+"))
select s
```
[Query Console link](https://lgtm.com/query/1720584166166636188/)
貢獻指南
評估
這個 Issue 還沒有評估資料。