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

Skip to content

Commit 5c77131

Browse files
smowtonigfoo
authored andcommitted
Add tests for generic methods
1 parent 67d2c52 commit 5c77131

5 files changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
public class ClassWithParams<T> {
2+
3+
fun noTypeParams() { }
4+
5+
fun <S> instanceHasTypeParam(s : S?) { }
6+
7+
fun <S> instanceHasTypeParamUsesClassTypeParam(s : S?, t: T?) { }
8+
9+
}
10+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
public class ClassWithoutParams {
2+
3+
fun noTypeParams() { }
4+
5+
fun <T> hasTypeParams(t : T?) { }
6+
7+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
fun test() {
2+
3+
val cwp = ClassWithoutParams()
4+
cwp.noTypeParams();
5+
cwp.hasTypeParams<ClassWithoutParams>(null)
6+
7+
val specialised = ClassWithParams<String>()
8+
specialised.noTypeParams()
9+
specialised.instanceHasTypeParam<ClassWithoutParams>(null)
10+
specialised.instanceHasTypeParamUsesClassTypeParam<ClassWithoutParams>(null, null)
11+
12+
val wildcard : ClassWithParams<out Any> = ClassWithParams<Any>()
13+
wildcard.noTypeParams()
14+
wildcard.instanceHasTypeParam<ClassWithoutParams>(null)
15+
wildcard.instanceHasTypeParamUsesClassTypeParam<ClassWithoutParams>(null, null)
16+
17+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
| 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 |
2+
| kttest.kt:9:5:9:15 | specialised | ClassWithParams.kt:5:3:5:42 | instanceHasTypeParam | instanceHasTypeParam(java.lang.Object) | S | ClassWithParams.kt:1:1:9:1 | ClassWithParams<String> |
3+
| kttest.kt:10:5:10:15 | specialised | ClassWithParams.kt:7:3:7:67 | instanceHasTypeParamUsesClassTypeParam | instanceHasTypeParamUsesClassTypeParam(java.lang.Object,java.lang.String) | S | ClassWithParams.kt:1:1:9:1 | ClassWithParams<String> |
4+
| kttest.kt:10:5:10:15 | specialised | ClassWithParams.kt:7:3:7:67 | instanceHasTypeParamUsesClassTypeParam | instanceHasTypeParamUsesClassTypeParam(java.lang.Object,java.lang.String) | String | ClassWithParams.kt:1:1:9:1 | ClassWithParams<String> |
5+
| kttest.kt:14:5:14:12 | wildcard | ClassWithParams.kt:5:3:5:42 | instanceHasTypeParam | instanceHasTypeParam(java.lang.Object) | S | ClassWithParams.kt:1:1:9:1 | ClassWithParams<? extends Object> |
6+
| kttest.kt:15:5:15:12 | wildcard | ClassWithParams.kt:7:3:7:67 | instanceHasTypeParamUsesClassTypeParam | instanceHasTypeParamUsesClassTypeParam(java.lang.Object,java.lang.Void) | S | ClassWithParams.kt:1:1:9:1 | ClassWithParams<? extends Object> |
7+
| kttest.kt:15:5:15:12 | wildcard | ClassWithParams.kt:7:3:7:67 | instanceHasTypeParamUsesClassTypeParam | instanceHasTypeParamUsesClassTypeParam(java.lang.Object,java.lang.Void) | Void | ClassWithParams.kt:1:1:9:1 | ClassWithParams<? extends Object> |
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import java
2+
3+
from MethodAccess ma
4+
select ma.getQualifier(), ma.getCallee(), ma.getCallee().getSignature(), ma.getCallee().getAParamType().toString(), ma.getCallee().getDeclaringType()

0 commit comments

Comments
 (0)