Skip to content

Commit 924b732

Browse files
committed
Java: Add test for NullLiteral
1 parent bb6e6f4 commit 924b732

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed

java/ql/lib/semmle/code/java/Expr.qll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,7 @@ class StringLiteral extends Literal, @stringliteral {
734734

735735
/** The null literal, written `null`. */
736736
class NullLiteral extends Literal, @nullliteral {
737+
// Override these predicates because the inherited ones have no result
737738
override string getLiteral() { result = "null" }
738739

739740
override string getValue() { result = "null" }
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package nullLiterals;
2+
3+
public class NullLiterals {
4+
Object[] nulls = {
5+
null,
6+
// Using Unicode escapes (which are handled during pre-processing)
7+
\u006E\u0075\u006C\u006C, // null
8+
};
9+
10+
// The operation expressions (e.g. cast) are not a literal
11+
Object[] operations = {
12+
(Object) null,
13+
};
14+
15+
Object[] nonNullLiterals = {
16+
"null",
17+
0,
18+
Boolean.FALSE,
19+
};
20+
21+
Object nonLiteral;
22+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
| NullLiterals.java:5:3:5:6 | null | null |
2+
| NullLiterals.java:7:8:7:26 | null | null |
3+
| NullLiterals.java:12:12:12:15 | null | null |
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import semmle.code.java.Expr
2+
3+
from NullLiteral lit
4+
select lit, lit.getValue()

0 commit comments

Comments
 (0)