Don't load Object as a supertype for Java classes
#KT-4890 In Progress #KT-5002 Fixed
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
public open class Test(): java.util.RandomAccess, Cloneable, java.io.Serializable
|
||||
{
|
||||
public override fun clone(): Test = Test() // Override 'clone()' with more precise type 'Test'
|
||||
public fun clone(): Test = Test() // Override 'clone()' with more precise type 'Test'
|
||||
|
||||
public override fun toString() = "OK"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
fun box(): String {
|
||||
val f = { }
|
||||
val class1 = Runnable(f).getClass()
|
||||
val class2 = Runnable(f).getClass()
|
||||
val class1 = (Runnable(f) as Object).getClass()
|
||||
val class2 = (Runnable(f) as Object).getClass()
|
||||
|
||||
return if (class1 == class2) "OK" else "$class1 $class2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
fun box(): String {
|
||||
val f = { }
|
||||
val class1 = Runnable(f).getClass()
|
||||
val class2 = Custom.Runnable(f).getClass()
|
||||
val class1 = Runnable(f).javaClass
|
||||
val class2 = Custom.Runnable(f).javaClass
|
||||
|
||||
return if (class1 != class2) "OK" else "Same class: $class1"
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import java.util.Arrays
|
||||
|
||||
fun box(): String {
|
||||
val r: JavaClass.Computable<String> = JavaClass.Computable { "OK" }
|
||||
val supertypes = Arrays.toString(r.getClass().getGenericInterfaces())
|
||||
val supertypes = Arrays.toString(r.javaClass.getGenericInterfaces())
|
||||
if (supertypes != "[JavaClass.JavaClass\$Computable<java.lang.String>]") return "Fail: $supertypes"
|
||||
return JavaClass.compute(r)!!
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
fun box(): String {
|
||||
val class1 = getWrapped1().getClass()
|
||||
val class2 = getWrapped2().getClass()
|
||||
val class1 = getWrapped1().javaClass
|
||||
val class2 = getWrapped2().javaClass
|
||||
|
||||
return if (class1 != class2) "OK" else "Same class: $class1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import java.io.Serializable
|
||||
|
||||
public data class Pair<out A, out B> (
|
||||
public val first: A,
|
||||
public val second: B
|
||||
) : Serializable
|
||||
|
||||
fun box(): String {
|
||||
val p = Pair(42, "OK")
|
||||
val q = Pair(42, "OK")
|
||||
if (p != q) return "Fail equals"
|
||||
if (p.hashCode() != q.hashCode()) return "Fail hashCode"
|
||||
if (p.toString() != q.toString()) return "Fail toString"
|
||||
return p.second
|
||||
}
|
||||
Reference in New Issue
Block a user