Merge boxWithStdlib testData into box, delete BoxWithStdlib test
This commit is contained in:
committed by
Alexander Udalov
parent
22bfc9786a
commit
06a67e6602
@@ -0,0 +1,14 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class Klass
|
||||
|
||||
fun box(): String {
|
||||
assertEquals("Klass", Klass::class.simpleName)
|
||||
assertEquals("Date", java.util.Date::class.simpleName)
|
||||
assertEquals("ObjectRef", kotlin.jvm.internal.Ref.ObjectRef::class.simpleName)
|
||||
assertEquals("Void", java.lang.Void::class.simpleName)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.reflect.*
|
||||
import kotlin.test.*
|
||||
|
||||
class A {
|
||||
companion object C
|
||||
}
|
||||
|
||||
enum class E {
|
||||
ENTRY;
|
||||
companion object {}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val obj = A::class.companionObject
|
||||
assertNotNull(obj)
|
||||
assertEquals("C", obj!!.simpleName)
|
||||
|
||||
assertEquals(A.C, A::class.companionObjectInstance)
|
||||
assertEquals(A.C, obj.objectInstance)
|
||||
|
||||
assertNull(A.C::class.companionObject)
|
||||
assertNull(A.C::class.companionObjectInstance)
|
||||
|
||||
assertEquals(E.Companion, E::class.companionObjectInstance)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.reflect.defaultType
|
||||
import kotlin.reflect.jvm.javaType
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertNotEquals
|
||||
|
||||
class Simple
|
||||
class Generic<K, V> {
|
||||
fun thiz() = this
|
||||
}
|
||||
|
||||
fun simple() = Simple()
|
||||
fun genericIntString() = Generic<Int, String>()
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(Simple::class.java, Simple::class.defaultType.javaType)
|
||||
assertEquals(::simple.returnType, Simple::class.defaultType)
|
||||
|
||||
assertEquals(Generic::class.java, Generic::class.defaultType.javaType)
|
||||
assertEquals(Generic<*, *>::thiz.returnType, Generic::class.defaultType)
|
||||
|
||||
// Generic<Int, String> != Generic<K, V>
|
||||
assertNotEquals(::genericIntString.returnType, Generic::class.defaultType)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertTrue
|
||||
import kotlin.reflect.jvm.jvmName
|
||||
|
||||
class Klass {
|
||||
class Nested
|
||||
companion object
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals("Klass", Klass::class.jvmName)
|
||||
assertEquals("Klass\$Nested", Klass.Nested::class.jvmName)
|
||||
assertEquals("Klass\$Companion", Klass.Companion::class.jvmName)
|
||||
|
||||
assertEquals("java.lang.Object", Any::class.jvmName)
|
||||
assertEquals("int", Int::class.jvmName)
|
||||
assertEquals("[I", IntArray::class.jvmName)
|
||||
assertEquals("java.util.List", List::class.jvmName)
|
||||
assertEquals("java.util.List", MutableList::class.jvmName)
|
||||
assertEquals("java.lang.String", String::class.jvmName)
|
||||
assertEquals("java.lang.String", java.lang.String::class.jvmName)
|
||||
|
||||
assertEquals("[Ljava.lang.Object;", Array<Any>::class.jvmName)
|
||||
assertEquals("[Ljava.lang.Integer;", Array<Int>::class.jvmName)
|
||||
assertEquals("[[Ljava.lang.String;", Array<Array<String>>::class.jvmName)
|
||||
|
||||
assertEquals("java.util.Date", java.util.Date::class.jvmName)
|
||||
assertEquals("kotlin.jvm.internal.Ref\$ObjectRef", kotlin.jvm.internal.Ref.ObjectRef::class.jvmName)
|
||||
assertEquals("java.lang.Void", java.lang.Void::class.jvmName)
|
||||
|
||||
class Local
|
||||
val l = Local::class.jvmName
|
||||
assertTrue(l != null && l.startsWith("JvmNameKt\$") && "\$box\$" in l && l.endsWith("\$Local"))
|
||||
|
||||
val obj = object {}
|
||||
val o = obj.javaClass.kotlin.jvmName
|
||||
assertTrue(o != null && o.startsWith("JvmNameKt\$") && "\$box\$" in o && o.endsWith("\$1"))
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
fun check(klass: KClass<*>, expectedName: String) {
|
||||
assertEquals(expectedName, klass.simpleName)
|
||||
}
|
||||
|
||||
fun localInMethod() {
|
||||
fun localInMethod(unused: Any?) {
|
||||
class Local
|
||||
check(Local::class, "Local")
|
||||
|
||||
class `Local$With$Dollars`
|
||||
check(`Local$With$Dollars`::class, "Local\$With\$Dollars")
|
||||
}
|
||||
localInMethod(null)
|
||||
|
||||
class Local
|
||||
check(Local::class, "Local")
|
||||
|
||||
class `Local$With$Dollars`
|
||||
check(`Local$With$Dollars`::class, "Local\$With\$Dollars")
|
||||
}
|
||||
|
||||
class LocalInConstructor {
|
||||
init {
|
||||
class Local
|
||||
check(Local::class, "Local")
|
||||
|
||||
class `Local$With$Dollars`
|
||||
check(`Local$With$Dollars`::class, "Local\$With\$Dollars")
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
localInMethod()
|
||||
LocalInConstructor()
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
// WITH_REFLECT
|
||||
// FULL_JDK
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.reflect.jvm.*
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class A {
|
||||
companion object {}
|
||||
inner class Inner
|
||||
class Nested
|
||||
private class PrivateNested
|
||||
}
|
||||
|
||||
fun nestedNames(c: KClass<*>) = c.nestedClasses.map { it.simpleName ?: throw AssertionError("Unnamed class: ${it.java}") }.sorted()
|
||||
|
||||
fun box(): String {
|
||||
// Kotlin class without nested classes
|
||||
assertEquals(emptyList<String>(), nestedNames(A.Inner::class))
|
||||
// Kotlin class with nested classes
|
||||
assertEquals(listOf("Companion", "Inner", "Nested", "PrivateNested"), nestedNames(A::class))
|
||||
|
||||
// Java class without nested classes
|
||||
assertEquals(emptyList<String>(), nestedNames(Error::class))
|
||||
// Java class with nested classes
|
||||
assertEquals(listOf("State", "UncaughtExceptionHandler"), nestedNames(Thread::class))
|
||||
|
||||
// Built-ins
|
||||
assertEquals(emptyList<String>(), nestedNames(Array<Any>::class))
|
||||
assertEquals(emptyList<String>(), nestedNames(CharSequence::class))
|
||||
assertEquals(listOf("Companion"), nestedNames(String::class))
|
||||
|
||||
assertEquals(emptyList<String>(), nestedNames(Collection::class))
|
||||
assertEquals(emptyList<String>(), nestedNames(MutableCollection::class))
|
||||
assertEquals(emptyList<String>(), nestedNames(List::class))
|
||||
assertEquals(emptyList<String>(), nestedNames(MutableList::class))
|
||||
assertEquals(listOf("Entry"), nestedNames(Map::class))
|
||||
assertEquals(emptyList<String>(), nestedNames(Map.Entry::class))
|
||||
assertEquals(emptyList<String>(), nestedNames(MutableMap.MutableEntry::class))
|
||||
|
||||
// TODO: should be MutableEntry. Currently we do not distinguish between Map and MutableMap.
|
||||
assertEquals(listOf("Entry"), nestedNames(MutableMap::class))
|
||||
|
||||
// Primitives
|
||||
for (primitive in listOf(Byte::class, Double::class, Float::class, Int::class, Long::class, Short::class, Char::class)) {
|
||||
assertEquals(listOf("Companion"), nestedNames(primitive))
|
||||
}
|
||||
assertEquals(emptyList<String>(), nestedNames(Boolean::class))
|
||||
|
||||
// Primitive arrays
|
||||
for (primitiveArray in listOf(
|
||||
ByteArray::class, DoubleArray::class, FloatArray::class, IntArray::class,
|
||||
LongArray::class, ShortArray::class, CharArray::class, BooleanArray::class
|
||||
)) {
|
||||
assertEquals(emptyList<String>(), nestedNames(primitiveArray))
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
object Obj {
|
||||
fun foo() = 1
|
||||
}
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
fun foo() = 2
|
||||
}
|
||||
}
|
||||
|
||||
class B {
|
||||
companion object Factory {
|
||||
fun foo() = 3
|
||||
}
|
||||
}
|
||||
|
||||
class C
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(1, Obj::class.objectInstance!!.foo())
|
||||
assertEquals(2, A.Companion::class.objectInstance!!.foo())
|
||||
assertEquals(3, B.Factory::class.objectInstance!!.foo())
|
||||
|
||||
assertEquals(null, C::class.objectInstance)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class Klass {
|
||||
class Nested
|
||||
companion object
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals("Klass", Klass::class.qualifiedName)
|
||||
assertEquals("Klass.Nested", Klass.Nested::class.qualifiedName)
|
||||
assertEquals("Klass.Companion", Klass.Companion::class.qualifiedName)
|
||||
|
||||
assertEquals("kotlin.Any", Any::class.qualifiedName)
|
||||
assertEquals("kotlin.Int", Int::class.qualifiedName)
|
||||
assertEquals("kotlin.Int.Companion", Int.Companion::class.qualifiedName)
|
||||
assertEquals("kotlin.IntArray", IntArray::class.qualifiedName)
|
||||
assertEquals("kotlin.collections.List", List::class.qualifiedName)
|
||||
assertEquals("kotlin.String", String::class.qualifiedName)
|
||||
assertEquals("kotlin.String", java.lang.String::class.qualifiedName)
|
||||
|
||||
assertEquals("kotlin.Array", Array<Any>::class.qualifiedName)
|
||||
assertEquals("kotlin.Array", Array<Int>::class.qualifiedName)
|
||||
assertEquals("kotlin.Array", Array<Array<String>>::class.qualifiedName)
|
||||
|
||||
assertEquals("java.util.Date", java.util.Date::class.qualifiedName)
|
||||
assertEquals("kotlin.jvm.internal.Ref.ObjectRef", kotlin.jvm.internal.Ref.ObjectRef::class.qualifiedName)
|
||||
assertEquals("java.lang.Void", java.lang.Void::class.qualifiedName)
|
||||
|
||||
class Local
|
||||
assertEquals(null, Local::class.qualifiedName)
|
||||
|
||||
val o = object {}
|
||||
assertEquals(null, o.javaClass.kotlin.qualifiedName)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user