[FIR-TEST] Add new testdata generated after changes in previous commit
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
val a01 = Array::class
|
||||
val a02 = Array<Array>::class
|
||||
val a03 = Array<Any?>::class
|
||||
val a04 = Array<Array<Any?>?>::class
|
||||
val a05 = Array<IntArray?>::class
|
||||
val a06 = kotlin.Array::class
|
||||
val a07 = kotlin.Array<IntArray?>::class
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
abstract class Base<T : Any>(val klass: KClass<out T>)
|
||||
|
||||
class DerivedClass : Base<DerivedClass>(DerivedClass::class)
|
||||
|
||||
object DerivedObject : Base<DerivedObject>(DerivedObject::class)
|
||||
|
||||
enum class TestEnum {
|
||||
TEST_ENTRY
|
||||
}
|
||||
|
||||
val test1: KClass<DerivedClass> = DerivedClass::class
|
||||
val test2: KClass<DerivedObject> = DerivedObject::class
|
||||
val test3: KClass<TestEnum> = TestEnum::class
|
||||
val test4: KClass<out TestEnum> = TestEnum.TEST_ENTRY::class
|
||||
@@ -0,0 +1,15 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
class A
|
||||
class B
|
||||
|
||||
val listOfString: List<String> = null!!
|
||||
val arrayOfString: Array<String> = null!!
|
||||
|
||||
val a1 : KClass<*> = A::class
|
||||
val a2 : KClass<A> = A::class
|
||||
val a3 : KClass<B> = A::class
|
||||
val a4 : B = A::class
|
||||
|
||||
val a5 : KClass<out List<String>> = listOfString::class
|
||||
val a6 : KClass<out Array<String>> = arrayOfString::class
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// FILE: J.java
|
||||
|
||||
public interface J {
|
||||
String platformString();
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
fun f1(x: Int?): Any = x::class
|
||||
fun <T> f2(t: T): Any = t::class
|
||||
fun <S : String?> f3(s: S): Any = s::class
|
||||
fun <U : Any> f4(u: U?): Any = u::class
|
||||
fun f5(c: List<*>): Any = c[0]::class
|
||||
|
||||
fun f6(j: J): Any = j.platformString()::class
|
||||
@@ -0,0 +1,11 @@
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
fun <T> f1(): KClass<Array<T>> = Array<T>::class
|
||||
fun <T> f2(): KClass<Array<Array<T>>> = Array<Array<T>>::class
|
||||
inline fun <reified T> f3() = Array<T>::class
|
||||
inline fun <reified T> f4() = Array<Array<T>>::class
|
||||
fun f5(): KClass<Array<Any>> = Array<*>::class
|
||||
fun f6(): KClass<Array<Int?>> = Array<Int?>::class
|
||||
fun f7() = Array<List<String>>::class
|
||||
fun f8() = Array<List<String>?>::class
|
||||
fun f9() = Array<List<*>?>::class
|
||||
@@ -0,0 +1,26 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
class A<T> {
|
||||
class Nested<N>
|
||||
|
||||
inner class Inner<I>
|
||||
}
|
||||
|
||||
val a1 = A::class
|
||||
val a2 = A<*>::class
|
||||
val a3 = A<String>::class
|
||||
val a4 = A<out String?>::class
|
||||
|
||||
val n1 = A.Nested::class
|
||||
val n2 = A.Nested<*>::class
|
||||
|
||||
val i1 = A.Inner::class
|
||||
val i2 = A<*>.Inner<*>::class
|
||||
val i3 = A<Int>.Inner<CharSequence>::class
|
||||
|
||||
val m1 = Map::class
|
||||
val m2 = Map<Int, *>::class
|
||||
val m3 = Map.Entry::class
|
||||
|
||||
val b1 = Int::class
|
||||
val b2 = Nothing::class
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
// !LANGUAGE: +ProhibitTypeParametersInClassLiteralsInAnnotationArguments
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
annotation class Ann(val k: KClass<*>)
|
||||
annotation class AnnArray(val kk: Array<KClass<*>>)
|
||||
|
||||
object AnObject
|
||||
|
||||
class C {
|
||||
companion object
|
||||
}
|
||||
|
||||
fun foo() = "foo"
|
||||
|
||||
@Ann("foo"::class)
|
||||
fun test1() {}
|
||||
|
||||
@Ann(String::class)
|
||||
fun test2() {}
|
||||
|
||||
@Ann(AnObject::class)
|
||||
fun test4() {}
|
||||
|
||||
@Ann(C::class)
|
||||
fun test5() {}
|
||||
|
||||
@Ann(C.Companion::class)
|
||||
fun test6() {}
|
||||
|
||||
@Ann(foo()::class)
|
||||
fun test7() {}
|
||||
|
||||
@AnnArray(arrayOf(""::class, String::class, AnObject::class))
|
||||
fun test8() {}
|
||||
|
||||
inline val <reified T> T.test9
|
||||
get() = @AnnArray(arrayOf(
|
||||
<!OTHER_ERROR!>T<!>::class,
|
||||
Array<T>::class,
|
||||
Array<Array<Array<T>>>::class
|
||||
)) object {}
|
||||
|
||||
inline val <reified T> T.test10
|
||||
get() = @AnnArray([<!OTHER_ERROR!>T<!>::class]) object {}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// !LANGUAGE: -ProhibitTypeParametersInClassLiteralsInAnnotationArguments
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
annotation class Ann(vararg val k: KClass<*>)
|
||||
|
||||
inline val <reified T> T.test
|
||||
get() = @Ann(
|
||||
<!OTHER_ERROR!>T<!>::class,
|
||||
Array<T>::class,
|
||||
Array<Array<Array<T>>>::class
|
||||
) object {}
|
||||
@@ -0,0 +1,11 @@
|
||||
// KT-13110 Strange type mismatch error on class literal with integer receiver expression
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
fun f(x: KClass<out Int>) {}
|
||||
|
||||
fun test() {
|
||||
f(42::class)
|
||||
f((40 + 2)::class)
|
||||
42::toInt
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
class A
|
||||
|
||||
val a1 = A?::class
|
||||
val a2 = A??::class
|
||||
|
||||
val l1 = List<String>?::class
|
||||
val l2 = List?::class
|
||||
|
||||
fun <T : Any> foo() {
|
||||
val t1 = <!OTHER_ERROR!>T<!>::class
|
||||
val t2 = <!OTHER_ERROR!>T<!>?::class
|
||||
}
|
||||
|
||||
inline fun <reified T : Any> bar() {
|
||||
val t3 = <!OTHER_ERROR!>T<!>?::class
|
||||
}
|
||||
|
||||
val m = Map<String>::class
|
||||
@@ -0,0 +1,7 @@
|
||||
package test.foo.bar
|
||||
|
||||
class A
|
||||
|
||||
val k = test.foo.bar.A::class
|
||||
|
||||
val l = java.lang.Class::class
|
||||
@@ -0,0 +1,3 @@
|
||||
class A
|
||||
|
||||
val k = A::class
|
||||
@@ -0,0 +1,23 @@
|
||||
// KT-16291 Smart cast doesn't work when getting class of instance
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
class Foo {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (other === null || other::class != this::class) return false
|
||||
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
fun test(f: Foo?): KClass<out Foo>? = if (f != null) f::class else null
|
||||
|
||||
fun test2(): KClass<out Foo>? {
|
||||
var f: Foo? = null
|
||||
if (f != null) {
|
||||
run { f = null }
|
||||
return f::class
|
||||
}
|
||||
return null
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
typealias TString = String
|
||||
fun f1() = TString::class
|
||||
|
||||
typealias TNullableString = String?
|
||||
fun f2() = TNullableString::class
|
||||
|
||||
typealias TNullableTString = TString?
|
||||
typealias TTNullableTString = TNullableTString
|
||||
fun f3() = TTNullableTString::class
|
||||
|
||||
inline fun <reified T> f4(b: Boolean): Any {
|
||||
typealias X = T
|
||||
typealias Y = T?
|
||||
return if (b) <!UNRESOLVED_REFERENCE!>X<!>::class else <!UNRESOLVED_REFERENCE!>Y<!>::class
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
val u = <!UNRESOLVED_REFERENCE!>Unresolved<!>::class
|
||||
val g = <!UNRESOLVED_REFERENCE!>UnresolvedGeneric<!><UnresolvedTypeArg>::class
|
||||
Reference in New Issue
Block a user