mirror of
https://github.com/github/codeql.git
synced 2026-04-22 23:35:14 +02:00
Kotlin: Add a test for recursive interfaces
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
|
||||
package somepkg;
|
||||
|
||||
public interface IfaceA<T> extends IfaceB<T> {}
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
package somepkg;
|
||||
|
||||
public interface IfaceB<T> extends IfaceC<IfaceA<IfaceB<T>>> {}
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
package somepkg;
|
||||
|
||||
public interface IfaceC<T> {}
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
package somepkg;
|
||||
|
||||
public interface IfaceZ {
|
||||
public <T> IfaceA<String> someFun();
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package mypkg
|
||||
|
||||
import somepkg.IfaceZ
|
||||
|
||||
class SomeClass(private val myVal: IfaceZ) { }
|
||||
@@ -0,0 +1,6 @@
|
||||
import commands
|
||||
|
||||
def test(codeql, java_full):
|
||||
codeql.database.create(
|
||||
command=["kotlinc somepkg/IfaceA.java somepkg/IfaceB.java somepkg/IfaceC.java somepkg/IfaceZ.java test.kt"]
|
||||
)
|
||||
@@ -0,0 +1,19 @@
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<IfaceB<>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<IfaceB<String>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<IfaceB<T>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<IfaceB> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceA.class:0:0:0:0 | IfaceA<String> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB<> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB<IfaceB> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB<String> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceB.class:0:0:0:0 | IfaceB<T> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<IfaceA<IfaceB<>>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<IfaceA<IfaceB<String>>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<IfaceA<IfaceB<T>>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceC.class:0:0:0:0 | IfaceC<IfaceA<IfaceB>> |
|
||||
| file:///!unknown-binary-location/somepkg/IfaceZ.class:0:0:0:0 | IfaceZ |
|
||||
@@ -0,0 +1,5 @@
|
||||
import java
|
||||
|
||||
from Type t
|
||||
where t.getName().matches("Iface%")
|
||||
select t
|
||||
Reference in New Issue
Block a user