Kotlin: Add a Kotlin 2 copy of the testsuite

This commit is contained in:
Ian Lynagh
2023-10-26 13:13:28 +01:00
parent e6f31c965e
commit 905583e00a
625 changed files with 32808 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
public class ClassWithParams<T> {
fun noTypeParams() { }
fun <S> instanceHasTypeParam(s : S?) { }
fun <S> instanceHasTypeParamUsesClassTypeParam(s : S?, t: T?) { }
}

View File

@@ -0,0 +1,7 @@
public class ClassWithoutParams {
fun noTypeParams() { }
fun <T> hasTypeParams(t : T?) { }
}

View File

@@ -0,0 +1,17 @@
fun test() {
val cwp = ClassWithoutParams()
cwp.noTypeParams();
cwp.hasTypeParams<ClassWithoutParams>(null)
val specialised = ClassWithParams<String>()
specialised.noTypeParams()
specialised.instanceHasTypeParam<ClassWithoutParams>(null)
specialised.instanceHasTypeParamUsesClassTypeParam<ClassWithoutParams>(null, null)
val wildcard : ClassWithParams<out Any> = ClassWithParams<Any>()
wildcard.noTypeParams()
wildcard.instanceHasTypeParam<ClassWithoutParams>(null)
wildcard.instanceHasTypeParamUsesClassTypeParam<ClassWithoutParams>(null, null)
}

View File

@@ -0,0 +1,7 @@
| kttest.kt:5:5:5:7 | cwp | ClassWithoutParams.kt:5:3:5:35 | hasTypeParams | hasTypeParams(java.lang.Object) | T | ClassWithoutParams.kt:1:1:7:1 | ClassWithoutParams |
| kttest.kt:9:5:9:15 | specialised | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | instanceHasTypeParam | instanceHasTypeParam(java.lang.Object) | S | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | ClassWithParams<String> |
| kttest.kt:10:5:10:15 | specialised | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | instanceHasTypeParamUsesClassTypeParam | instanceHasTypeParamUsesClassTypeParam(java.lang.Object,java.lang.String) | S | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | ClassWithParams<String> |
| kttest.kt:10:5:10:15 | specialised | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | instanceHasTypeParamUsesClassTypeParam | instanceHasTypeParamUsesClassTypeParam(java.lang.Object,java.lang.String) | String | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | ClassWithParams<String> |
| kttest.kt:14:5:14:12 | wildcard | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | instanceHasTypeParam | instanceHasTypeParam(java.lang.Object) | S | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | ClassWithParams<? extends Object> |
| kttest.kt:15:5:15:12 | wildcard | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | instanceHasTypeParamUsesClassTypeParam | instanceHasTypeParamUsesClassTypeParam(java.lang.Object,java.lang.Void) | S | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | ClassWithParams<? extends Object> |
| kttest.kt:15:5:15:12 | wildcard | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | instanceHasTypeParamUsesClassTypeParam | instanceHasTypeParamUsesClassTypeParam(java.lang.Object,java.lang.Void) | Void | file:///!unknown-binary-location/ClassWithParams.class:0:0:0:0 | ClassWithParams<? extends Object> |

View File

@@ -0,0 +1,5 @@
import java
from MethodCall ma
select ma.getQualifier(), ma.getCallee(), ma.getCallee().getSignature(),
ma.getCallee().getAParamType().toString(), ma.getCallee().getDeclaringType()