Add kotlin.Any to KClass.superclasses if it's absent
#KT-18476 Fixed
This commit is contained in:
+1
-1
@@ -34,7 +34,7 @@ fun box(): String {
|
||||
check<Any>()
|
||||
checkAll<Any>()
|
||||
|
||||
check<String>(::comparableOfString, ::charSequence, ::serializable)
|
||||
check<String>(::comparableOfString, ::charSequence, ::serializable, ::any)
|
||||
checkAll<String>(::comparableOfString, ::charSequence, ::serializable, ::any)
|
||||
|
||||
check<Int>(::number, ::comparableOfInt, ::serializable)
|
||||
|
||||
@@ -13,10 +13,15 @@ interface Interface
|
||||
interface Interface2
|
||||
class ClassAndTwoInterfaces : Interface, Simple(), Interface2
|
||||
|
||||
class ClassWithSuperInterfaceOnly : Interface
|
||||
|
||||
annotation class AnnotationClass
|
||||
|
||||
fun any(): Any = null!!
|
||||
fun simple(): Simple = null!!
|
||||
fun interface_(): Interface = null!!
|
||||
fun interface2(): Interface2 = null!!
|
||||
fun annotation(): Annotation = null!!
|
||||
|
||||
fun box(): String {
|
||||
with(Simple::class) {
|
||||
@@ -48,5 +53,19 @@ fun box(): String {
|
||||
assertEquals(setOf(Interface::class, Simple::class, Interface2::class, Any::class), allSuperclasses.toSet())
|
||||
}
|
||||
|
||||
with (ClassWithSuperInterfaceOnly::class) {
|
||||
assertEquals(listOf(::interface_.returnType, ::any.returnType), supertypes)
|
||||
assertEquals(listOf(Interface::class, Any::class), superclasses)
|
||||
assertEquals(setOf(::interface_.returnType, ::any.returnType), allSupertypes.toSet())
|
||||
assertEquals(setOf(Interface::class, Any::class), allSuperclasses.toSet())
|
||||
}
|
||||
|
||||
with (AnnotationClass::class) {
|
||||
assertEquals(listOf(::annotation.returnType, ::any.returnType), supertypes)
|
||||
assertEquals(listOf(Annotation::class, Any::class), superclasses)
|
||||
assertEquals(listOf(::annotation.returnType, ::any.returnType), allSupertypes)
|
||||
assertEquals(listOf(Annotation::class, Any::class), allSuperclasses)
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user