Skip to content

Commit eb365c1

Browse files
authored
Merge pull request github#11079 from smowton/smowton/test/test-java-extractor-vs-captured-type-variables
Java: Add test for multiply-bounded wildcards
2 parents 830be92 + e877967 commit eb365c1

File tree

6 files changed

+46
-0
lines changed

6 files changed

+46
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
public class Test {
2+
3+
static class BoundedGeneric<T extends CharSequence> {
4+
public T getter(int unused) { return null; }
5+
public void setter(T t) { }
6+
}
7+
8+
public static BoundedGeneric<?> getUnbounded() { return null; }
9+
10+
public static BoundedGeneric<? super String> getLowerBounded() { return null; }
11+
12+
public static void test() {
13+
CharSequence cs = getUnbounded().getter(0);
14+
Object o = getLowerBounded().getter(0);
15+
getUnbounded().setter(null);
16+
getLowerBounded().setter(null);
17+
}
18+
19+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
| Test$BoundedGeneric.class:0:0:0:0 | getter | Test$BoundedGeneric.class:0:0:0:0 | BoundedGeneric<? super String> | CharSequence | int |
2+
| Test$BoundedGeneric.class:0:0:0:0 | getter | Test$BoundedGeneric.class:0:0:0:0 | BoundedGeneric<?> | CharSequence | int |
3+
| Test$BoundedGeneric.class:0:0:0:0 | setter | Test$BoundedGeneric.class:0:0:0:0 | BoundedGeneric<? super String> | void | String |
4+
| Test$BoundedGeneric.class:0:0:0:0 | setter | Test$BoundedGeneric.class:0:0:0:0 | BoundedGeneric<?> | void | <nulltype> |
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import java
2+
3+
from MethodAccess ma
4+
select ma.getCallee(), ma.getCallee().getDeclaringType(), ma.getCallee().getReturnType().toString(),
5+
ma.getCallee().getAParamType().toString()
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import java.util.Collection;
2+
3+
public class Test {
4+
5+
public Collection<? extends CharSequence> getCollection() {
6+
return null;
7+
}
8+
9+
public void test() {
10+
this.getCollection().isEmpty();
11+
}
12+
13+
}

java/ql/test/library-tests/wildcards-and-captured-types/test.expected

Whitespace-only changes.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import java
2+
3+
from Method m, Type t
4+
where m.getAParamType() = t and t.toString().matches("%? super ? extends%")
5+
select m, t

0 commit comments

Comments
 (0)