Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 53f484c

Browse files
tamasvajkigfoo
authored andcommitted
Add test for inconsistent generic instantiation locations
1 parent 49bf53d commit 53f484c

4 files changed

Lines changed: 66 additions & 0 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package main;
2+
3+
public class A<T> {
4+
public void fn() {
5+
A<String> a0 = new A<String>();
6+
A<Integer> a1 = new A<Integer>();
7+
8+
B<String> b0 = new B<String>();
9+
B<Integer> b1 = new B<Integer>();
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package main
2+
3+
class B<T> {
4+
fun fn() {
5+
val a0 = A<String>()
6+
val a1 = A<Any>()
7+
8+
val b0 = B<String>()
9+
val b1 = B<Any>()
10+
}
11+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
classLocations
2+
| main.A | A.java:3:14:3:14 | A.java:3:14:3:14 |
3+
| main.A | file:///!unknown-binary-location/main/A.class:0:0:0:0 | file:///!unknown-binary-location/main/A.class:0:0:0:0 |
4+
| main.A<Integer> | A.class:0:0:0:0 | A.class:0:0:0:0 |
5+
| main.A<Object> | file:///!unknown-binary-location/main/A.class:0:0:0:0 | file:///!unknown-binary-location/main/A.class:0:0:0:0 |
6+
| main.A<String> | A.class:0:0:0:0 | A.class:0:0:0:0 |
7+
| main.A<String> | file:///!unknown-binary-location/main/A.class:0:0:0:0 | file:///!unknown-binary-location/main/A.class:0:0:0:0 |
8+
| main.B | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 |
9+
| main.B | generics.kt:3:1:11:1 | generics.kt:3:1:11:1 |
10+
| main.B<Integer> | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 |
11+
| main.B<Object> | generics.kt:3:1:11:1 | generics.kt:3:1:11:1 |
12+
| main.B<String> | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 |
13+
| main.B<String> | generics.kt:3:1:11:1 | generics.kt:3:1:11:1 |
14+
callableLocations
15+
| A.fn | A.class:0:0:0:0 | A.class:0:0:0:0 |
16+
| A.fn | A.java:4:17:4:18 | A.java:4:17:4:18 |
17+
| A.fn | file:///!unknown-binary-location/main/A.class:0:0:0:0 | file:///!unknown-binary-location/main/A.class:0:0:0:0 |
18+
| A<Integer>.fn | A.class:0:0:0:0 | A.class:0:0:0:0 |
19+
| A<Object>.fn | file:///!unknown-binary-location/main/A.class:0:0:0:0 | file:///!unknown-binary-location/main/A.class:0:0:0:0 |
20+
| A<String>.fn | A.class:0:0:0:0 | A.class:0:0:0:0 |
21+
| A<String>.fn | file:///!unknown-binary-location/main/A.class:0:0:0:0 | file:///!unknown-binary-location/main/A.class:0:0:0:0 |
22+
| B.fn | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 |
23+
| B.fn | generics.kt:4:5:10:5 | generics.kt:4:5:10:5 |
24+
| B<Integer>.fn | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 |
25+
| B<Object>.fn | generics.kt:4:5:10:5 | generics.kt:4:5:10:5 |
26+
| B<String>.fn | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 | generics-location.testproj/test.class.files/main/B.class:0:0:0:0 |
27+
| B<String>.fn | generics.kt:4:5:10:5 | generics.kt:4:5:10:5 |
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import java
2+
3+
query predicate classLocations(string name, Location location) {
4+
exists(Class type |
5+
type.getQualifiedName() = name and
6+
type.getSourceDeclaration().getName() in ["A", "B"] and
7+
hasLocation(type, location)
8+
)
9+
}
10+
11+
query predicate callableLocations(string name, Location location) {
12+
exists(Callable callable |
13+
callable.getQualifiedName() = name and
14+
callable.getName() = "fn" and
15+
hasLocation(callable, location)
16+
)
17+
}

0 commit comments

Comments
 (0)