Java: `Assignment` does not include `UnaryAssignExpr`
- Dominant language
- CodeQL
- Stars
- 10.1k
- Forks
- 2.1k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 141
Description
**Description of the issue**
`Assignment` [describes itself](https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/Expr.qll/type.Expr$Assignment.html) as:
> A common super-class that represents all varieties of assignments.
However, it does not actually include `UnaryAssignExpr`; for example the following cannot be compiled:
```ql
import java
from Assignment a
// Error: test is always false, as UnaryAssignExpr is incompatible with the expression type Assignment.
where a instanceof UnaryAssignExpr
select a
```
In case that is the intended behavior it would be good to clarify this in the `Assignment` documentation.
If not, then `Assignment` should probably include `UnaryAssignExpr` as well. `Assignment.getRhs()` cannot have a result in this case, so its documentation would have to be adjusted to describe this behavior.
Contributor guide
Assessment
This issue has not been assessed yet.