Adjust test data after fixes about generic nullability
This commit is contained in:
Vendored
+3
-3
@@ -3,13 +3,13 @@ import kotlin.test.*
|
|||||||
class Klass
|
class Klass
|
||||||
class Other
|
class Other
|
||||||
|
|
||||||
inline fun <reified T> simpleName(): String =
|
inline fun <reified T : Any> simpleName(): String =
|
||||||
T::class.simpleName!!
|
T::class.simpleName!!
|
||||||
|
|
||||||
inline fun <reified T1, reified T2> twoReifiedParams(): String =
|
inline fun <reified T1 : Any, reified T2 : Any> twoReifiedParams(): String =
|
||||||
"${T1::class.simpleName!!}, ${T2::class.simpleName!!}"
|
"${T1::class.simpleName!!}, ${T2::class.simpleName!!}"
|
||||||
|
|
||||||
inline fun <reified T> myJavaClass(): Class<T> =
|
inline fun <reified T : Any> myJavaClass(): Class<T> =
|
||||||
T::class.java
|
T::class.java
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class Secondary {
|
|||||||
constructor(x: Int) {}
|
constructor(x: Int) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun check(f: KFunction<*>) {
|
fun check(f: KFunction<Any>) {
|
||||||
assert(f.javaMethod == null, "Fail f method")
|
assert(f.javaMethod == null, "Fail f method")
|
||||||
assert(f.javaConstructor != null, "Fail f constructor")
|
assert(f.javaConstructor != null, "Fail f constructor")
|
||||||
val c = f.javaConstructor!!
|
val c = f.javaConstructor!!
|
||||||
|
|||||||
+2
-2
@@ -4,10 +4,10 @@ import kotlin.test.assertEquals
|
|||||||
|
|
||||||
class Klass
|
class Klass
|
||||||
|
|
||||||
inline fun <reified T> simpleName(): String =
|
inline fun <reified T : Any> simpleName(): String =
|
||||||
T::class.java.getSimpleName()
|
T::class.java.getSimpleName()
|
||||||
|
|
||||||
inline fun <reified T> simpleName2(): String {
|
inline fun <reified T : Any> simpleName2(): String {
|
||||||
val kClass = T::class // Intrinsic for T::class.java is not used
|
val kClass = T::class // Intrinsic for T::class.java is not used
|
||||||
return kClass.java.getSimpleName()
|
return kClass.java.getSimpleName()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class Project {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun <reified T> Project.get(t: Any?, p: PropertyMetadata): T = getInstance(javaClass<T>())
|
inline fun <reified T : Any> Project.get(t: Any?, p: PropertyMetadata): T = getInstance(javaClass<T>())
|
||||||
|
|
||||||
val project = Project()
|
val project = Project()
|
||||||
val x1: Int by project
|
val x1: Int by project
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ abstract class A {
|
|||||||
abstract fun f(): String
|
abstract fun f(): String
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun<reified T> foo(): A {
|
inline fun<reified T : Any> foo(): A {
|
||||||
return object : A() {
|
return object : A() {
|
||||||
override fun f(): String {
|
override fun f(): String {
|
||||||
return javaClass<T>().getName()
|
return javaClass<T>().getName()
|
||||||
|
|||||||
+4
-4
@@ -11,15 +11,15 @@ inline fun doWorkInline(block: () -> String) = block()
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val x = object {
|
val x = object {
|
||||||
inline fun <reified T> bar1(): A = object : A {
|
inline fun <reified T : Any> bar1(): A = object : A {
|
||||||
override fun f1(): String = javaClass<T>().getName()
|
override fun f1(): String = javaClass<T>().getName()
|
||||||
override fun f2(): String = doWork { javaClass<T>().getName() }
|
override fun f2(): String = doWork { javaClass<T>().getName() }
|
||||||
override fun f3(): String = doWorkInline { javaClass<T>().getName() }
|
override fun f3(): String = doWorkInline { javaClass<T>().getName() }
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun <reified T> bar2() = javaClass<T>().getName()
|
inline fun <reified T : Any> bar2() = javaClass<T>().getName()
|
||||||
inline fun <reified T> bar3() = doWork { javaClass<T>().getName() }
|
inline fun <reified T : Any> bar3() = doWork { javaClass<T>().getName() }
|
||||||
inline fun <reified T> bar4() = doWorkInline { javaClass<T>().getName() }
|
inline fun <reified T : Any> bar4() = doWorkInline { javaClass<T>().getName() }
|
||||||
}
|
}
|
||||||
|
|
||||||
val y: A = x.bar1<String>()
|
val y: A = x.bar1<String>()
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
inline fun <reified T> foo(x: Class<T> = javaClass<T>()): String = x.getName()
|
inline fun <reified T : Any> foo(x: Class<T> = javaClass<T>()): String = x.getName()
|
||||||
|
|
||||||
inline fun <reified R> bar(x: R): String = foo<R>()
|
inline fun <reified R : Any> bar(x: R): String = foo<R>()
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
assertEquals("java.lang.String", foo<String>())
|
assertEquals("java.lang.String", foo<String>())
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
inline fun<reified T> javaClassName(): String {
|
inline fun<reified T : Any> javaClassName(): String {
|
||||||
return javaClass<T>().getName()
|
return javaClass<T>().getName()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
inline fun <reified T, reified R> foo(): Array<String> {
|
inline fun <reified T : Any, reified R : Any> foo(): Array<String> {
|
||||||
val x = object {
|
val x = object {
|
||||||
inline fun <reified T1, reified T> bar(): Array<String> = array(
|
inline fun <reified T1 : Any, reified T : Any> bar(): Array<String> = array(
|
||||||
javaClass<T1>().getName(), javaClass<T>().getName(), javaClass<R>().getName()
|
javaClass<T1>().getName(), javaClass<T>().getName(), javaClass<R>().getName()
|
||||||
)
|
)
|
||||||
fun f1() = bar<T, R>()
|
fun f1() = bar<T, R>()
|
||||||
|
|||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
fun foo(block: () -> String) = block()
|
fun foo(block: () -> String) = block()
|
||||||
inline fun<reified T> bar1(x: T): String = foo() {
|
inline fun<reified T : Any> bar1(x: T): String = foo() {
|
||||||
javaClass<T>().getName()
|
javaClass<T>().getName()
|
||||||
}
|
}
|
||||||
inline fun<reified T> bar2(x: T, y: String): String = foo() {
|
inline fun<reified T : Any> bar2(x: T, y: String): String = foo() {
|
||||||
javaClass<T>().getName() + "#" + y
|
javaClass<T>().getName() + "#" + y
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -2,14 +2,14 @@ import kotlin.test.assertEquals
|
|||||||
|
|
||||||
fun foo(block: () -> String) = block()
|
fun foo(block: () -> String) = block()
|
||||||
|
|
||||||
inline fun<reified T> bar1(): String = foo() {
|
inline fun<reified T : Any> bar1(): String = foo() {
|
||||||
javaClass<T>().getName()
|
javaClass<T>().getName()
|
||||||
}
|
}
|
||||||
inline fun<reified T> bar2(y: String): String = foo() {
|
inline fun<reified T : Any> bar2(y: String): String = foo() {
|
||||||
javaClass<T>().getName() + "#" + y
|
javaClass<T>().getName() + "#" + y
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun<T1, T2, reified R1, reified R2> bar3(y: String) =
|
inline fun<T1, T2, reified R1 : Any, reified R2 : Any> bar3(y: String) =
|
||||||
Pair(bar1<R1>(), bar2<R2>(y))
|
Pair(bar1<R1>(), bar2<R2>(y))
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ interface A {
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val x: A = object : A {
|
val x: A = object : A {
|
||||||
private inline fun <reified T> localClassName(): String = javaClass<T>().getName()
|
private inline fun <reified T : Any> localClassName(): String = javaClass<T>().getName()
|
||||||
override fun f(): String = foo { localClassName<String>() }
|
override fun f(): String = foo { localClassName<String>() }
|
||||||
override fun g(): String = foo { localClassName<Int>() }
|
override fun g(): String = foo { localClassName<Int>() }
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -2,15 +2,15 @@ import kotlin.test.assertEquals
|
|||||||
|
|
||||||
fun foo(block: () -> String) = block()
|
fun foo(block: () -> String) = block()
|
||||||
|
|
||||||
inline fun <reified T> className(): String = javaClass<T>().getName()
|
inline fun <reified T : Any> className(): String = javaClass<T>().getName()
|
||||||
|
|
||||||
inline fun <reified T> lambdaShouldBeReified(): String = foo { className<T>() }
|
inline fun <reified T : Any> lambdaShouldBeReified(): String = foo { className<T>() }
|
||||||
|
|
||||||
interface A {
|
interface A {
|
||||||
fun f(): String
|
fun f(): String
|
||||||
fun g(): String
|
fun g(): String
|
||||||
}
|
}
|
||||||
inline fun<reified T1, reified T2> AFactory(): A = object : A {
|
inline fun<reified T1 : Any, reified T2 : Any> AFactory(): A = object : A {
|
||||||
override fun f(): String = className<T1>()
|
override fun f(): String = className<T1>()
|
||||||
override fun g(): String = foo { className<T2>() }
|
override fun g(): String = foo { className<T2>() }
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ import kotlin.test.assertEquals
|
|||||||
|
|
||||||
fun foo(block: () -> String) = block()
|
fun foo(block: () -> String) = block()
|
||||||
|
|
||||||
inline fun<reified T> className(): String = javaClass<T>().getName()
|
inline fun<reified T : Any> className(): String = javaClass<T>().getName()
|
||||||
|
|
||||||
interface A {
|
interface A {
|
||||||
fun f(): String
|
fun f(): String
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,4 @@
|
|||||||
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
class A
|
class A
|
||||||
|
|
||||||
class B {
|
class B {
|
||||||
@@ -14,7 +15,6 @@ val cTopLevel: Int by Delegate<Nothing?>()
|
|||||||
|
|
||||||
class Delegate<T> {
|
class Delegate<T> {
|
||||||
fun get(t: T, p: PropertyMetadata): Int {
|
fun get(t: T, p: PropertyMetadata): Int {
|
||||||
t.equals(p) // to avoid UNUSED_PARAMETER warning
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -40,7 +40,7 @@ fun test5() {
|
|||||||
fun <R: Any> R?.sure() : R = this!!
|
fun <R: Any> R?.sure() : R = this!!
|
||||||
|
|
||||||
fun <T> test6(l: List<T>?) {
|
fun <T> test6(l: List<T>?) {
|
||||||
<!TYPE_MISMATCH!>l<!>.sure<T>()
|
<!TYPE_MISMATCH!>l<!>.sure<<!UPPER_BOUND_VIOLATED!>T<!>>()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ fun <T, Q> List<T>.map1(f: (T)-> Q): List<T>? = tail!!.map1(f)
|
|||||||
|
|
||||||
fun <T, Q> List<T>.map2(f: (T)-> Q): List<T>? = tail.sure().map2(f)
|
fun <T, Q> List<T>.map2(f: (T)-> Q): List<T>? = tail.sure().map2(f)
|
||||||
|
|
||||||
fun <T, Q> List<T>.map3(f: (T)-> Q): List<T>? = <!TYPE_MISMATCH!>tail<!>.sure<T>().<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>map3<!>(f)
|
fun <T, Q> List<T>.map3(f: (T)-> Q): List<T>? = <!TYPE_MISMATCH!>tail<!>.sure<<!UPPER_BOUND_VIOLATED!>T<!>>().<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>map3<!>(f)
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package test
|
package test
|
||||||
|
|
||||||
public class ClassWithTypePRefSelf<P : kotlin.Enum<P>?>() {
|
public class ClassWithTypePRefSelf<P : kotlin.Enum<P>>() {
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
package test
|
package test
|
||||||
|
|
||||||
public final class ClassWithTypePRefSelf</*0*/ P : kotlin.Enum<P>?> {
|
public final class ClassWithTypePRefSelf</*0*/ P : kotlin.Enum<P>> {
|
||||||
/*primary*/ public constructor ClassWithTypePRefSelf</*0*/ P : kotlin.Enum<P>?>()
|
/*primary*/ public constructor ClassWithTypePRefSelf</*0*/ P : kotlin.Enum<P>>()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ interface MyMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class A(val map: MyMap) {
|
class A(val map: MyMap) {
|
||||||
fun <T> foo(`type`: I<T>) {
|
fun <T : Any> foo(`type`: I<T>) {
|
||||||
val value = map.get<caret><T>(`type`)
|
val value = map.get<caret><T>(`type`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@ interface MyMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class A(val map: MyMap) {
|
class A(val map: MyMap) {
|
||||||
fun <T> foo(`type`: I<T>) {
|
fun <T : Any> foo(`type`: I<T>) {
|
||||||
val value = map.get<caret>(`type`)
|
val value = map.get<caret>(`type`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -17,7 +17,7 @@ import kotlin.test.*
|
|||||||
|
|
||||||
// Test data for codegen is generated from this class. If you change it, rerun GenerateTests
|
// Test data for codegen is generated from this class. If you change it, rerun GenerateTests
|
||||||
public class RangeIterationJVMTest {
|
public class RangeIterationJVMTest {
|
||||||
private fun <N> doTest(
|
private fun <N : Any> doTest(
|
||||||
sequence: Progression<N>,
|
sequence: Progression<N>,
|
||||||
expectedStart: N,
|
expectedStart: N,
|
||||||
expectedEnd: N,
|
expectedEnd: N,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import kotlin.test.*
|
|||||||
|
|
||||||
// Test data for codegen is generated from this class. If you change it, rerun GenerateTests
|
// Test data for codegen is generated from this class. If you change it, rerun GenerateTests
|
||||||
public class RangeIterationTest {
|
public class RangeIterationTest {
|
||||||
private fun <N> doTest(
|
private fun <N : Any> doTest(
|
||||||
sequence: Progression<N>,
|
sequence: Progression<N>,
|
||||||
expectedStart: N,
|
expectedStart: N,
|
||||||
expectedEnd: N,
|
expectedEnd: N,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class NotNullVarTest() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class NotNullVarTestGeneric<T>(val a1: String, val b1: T) {
|
private class NotNullVarTestGeneric<T : Any>(val a1: String, val b1: T) {
|
||||||
var a: String by Delegates.notNull()
|
var a: String by Delegates.notNull()
|
||||||
var b by Delegates.notNull<T>()
|
var b by Delegates.notNull<T>()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user