[FIR-TEST] Add new testdata generated after changes in previous commit

This commit is contained in:
Dmitriy Novozhilov
2019-12-11 16:16:22 +03:00
parent e9c02a1cca
commit 2536fa0cd5
4578 changed files with 104067 additions and 1 deletions
@@ -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
@@ -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
@@ -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
@@ -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 {}
@@ -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