Skip to content

Commit 744c495

Browse files
authored
Merge pull request github#5824 from JLLeitschuh/feat/JLL/guava_first_non_null
[Java] Add support for com.google.common.base.MoreObjects#firstNonNull
2 parents 2905bb8 + dfad1fc commit 744c495

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
lgtm,codescanning
2+
* Increase coverage of the Guava framework by adding support for `com.google.common.base.MoreObjects#firstNonNull`.

java/ql/src/semmle/code/java/frameworks/guava/Base.qll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ private class GuavaBaseCsv extends SummaryModelCsv {
3535
"com.google.common.base;Splitter;false;splitToList;(CharSequence);;Argument[0];ReturnValue;taint",
3636
"com.google.common.base;Splitter;false;splitToStream;(CharSequence);;Argument[0];ReturnValue;taint",
3737
"com.google.common.base;Splitter$MapSplitter;false;split;(CharSequence);;Argument[0];ReturnValue;taint",
38-
"com.google.common.base;Preconditions;false;checkNotNull;;;Argument[0];ReturnValue;value"
38+
"com.google.common.base;Preconditions;false;checkNotNull;;;Argument[0];ReturnValue;value",
39+
"com.google.common.base;MoreObjects;false;firstNonNull;;;Argument[0..1];ReturnValue;value"
3940
]
4041
}
4142
}

java/ql/test/library-tests/frameworks/guava/TestBase.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,10 @@ void test3() {
6060
void test4() {
6161
sink(Preconditions.checkNotNull(taint())); // $numTaintFlow=1
6262
}
63+
64+
void test5() {
65+
sink(MoreObjects.firstNonNull(taint(), taint())); // $numTaintFlow=2
66+
sink(MoreObjects.firstNonNull(null, taint())); // $numTaintFlow=1
67+
sink(MoreObjects.firstNonNull(taint(), null)); // $numTaintFlow=1
68+
}
6369
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.google.common.base;
2+
3+
import org.checkerframework.checker.nullness.qual.Nullable;
4+
5+
public final class MoreObjects {
6+
public static <T> T firstNonNull(@Nullable T first, @Nullable T second) {
7+
return null;
8+
}
9+
}

0 commit comments

Comments
 (0)