Files
kotlin-fork/compiler/testData/codegen/box/regressions/kt6485.kt
T
Ilya Matveev a5e4e0284e Mute some box tests for native backend
This patch mutes the following test categories:
   * Tests with java dependencies (System class,
     java stdlib, jvm-oriented annotations etc).
   * Coroutines tests.
   * Reflection tests.
   * Tests with an inheritance from the standard
     collections.
2017-03-10 19:59:37 +03:00

26 lines
934 B
Kotlin
Vendored

// TODO: muted automatically, investigate should it be ran for JS or not
// IGNORE_BACKEND: JS, NATIVE
// WITH_RUNTIME
// FULL_JDK
import kotlin.test.assertEquals
import java.lang.reflect.ParameterizedType
import java.lang.reflect.Type
open class TypeLiteral<T> {
val type: Type
get() = (javaClass.getGenericSuperclass() as ParameterizedType).getActualTypeArguments()[0]
}
inline fun <reified T> typeLiteral(): TypeLiteral<T> = object : TypeLiteral<T>() {}
fun box(): String {
assertEquals("class java.lang.String", typeLiteral<String>().type.toString())
assertEquals("java.util.List<?>", typeLiteral<List<*>>().type.toString())
assertEquals("java.lang.String[]", typeLiteral<Array<String>>().type.toString())
assertEquals("java.lang.Integer[]", typeLiteral<Array<Int>>().type.toString())
assertEquals("java.lang.String[][]", typeLiteral<Array<Array<String>>>().type.toString())
return "OK"
}