Delete kotlin.jvm.internal.KObject

It was supposed to be used in reflection but the benefits do not outweigh the
cost of KT-6951

 #KT-3223 Fixed
 #KT-6951 Fixed
This commit is contained in:
Alexander Udalov
2015-03-12 14:05:42 +03:00
parent e5d5b49ce2
commit 8af6ca5279
29 changed files with 34 additions and 122 deletions
@@ -1,4 +1,4 @@
public final class WithPlatformTypes implements kotlin.jvm.internal.KObject, java.lang.Iterable<java.lang.String> {
public final class WithPlatformTypes implements java.lang.Iterable<java.lang.String> {
public WithPlatformTypes(@org.jetbrains.annotations.NotNull java.lang.Iterable<java.lang.String> i) { /* compiled code */ }
@org.jetbrains.annotations.NotNull
@@ -1,4 +1,4 @@
public final class Derived implements kotlin.jvm.internal.KObject, Base {
public final class Derived implements Base {
public Derived(@org.jetbrains.annotations.NotNull Base x) { /* compiled code */ }
@org.jetbrains.annotations.NotNull
@@ -1,4 +1,4 @@
public final class Derived implements kotlin.jvm.internal.KObject, Base {
public final class Derived implements Base {
public Derived(@org.jetbrains.annotations.NotNull Base x) { /* compiled code */ }
@org.jetbrains.annotations.NotNull
@@ -1,4 +1,4 @@
public final class WithPlatformTypes implements kotlin.jvm.internal.KObject, p.J {
public final class WithPlatformTypes implements p.J {
public WithPlatformTypes(@org.jetbrains.annotations.NotNull p.J j) { /* compiled code */ }
@org.jetbrains.annotations.NotNull
@@ -1,4 +1,4 @@
public final class Class implements kotlin.jvm.internal.KObject {
public final class Class {
@org.jetbrains.annotations.Nullable
private final java.lang.String nullableVal = "";
@org.jetbrains.annotations.Nullable
@@ -1,4 +1,4 @@
public final class ClassObjectField implements kotlin.jvm.internal.KObject {
public final class ClassObjectField {
@org.jetbrains.annotations.Nullable
public static final java.lang.String x = "";
private static final java.lang.String y = "";
@@ -11,7 +11,7 @@ public final class ClassObjectField implements kotlin.jvm.internal.KObject {
public ClassObjectField() { /* compiled code */ }
public static final class Default implements kotlin.jvm.internal.KObject {
public static final class Default {
@org.jetbrains.annotations.Nullable
public final java.lang.String getX() { /* compiled code */ }
@@ -1,3 +1,3 @@
public final class ClassWithConstructor implements kotlin.jvm.internal.KObject {
public final class ClassWithConstructor {
public ClassWithConstructor(@org.jetbrains.annotations.Nullable java.lang.String nullable, @org.jetbrains.annotations.NotNull java.lang.String notNull) { /* compiled code */ }
}
@@ -1,4 +1,4 @@
public final class ClassWithConstructorAndProperties implements kotlin.jvm.internal.KObject {
public final class ClassWithConstructorAndProperties {
@org.jetbrains.annotations.Nullable
private final java.lang.String nullable;
@org.jetbrains.annotations.NotNull
@@ -1,4 +1,4 @@
public final class C implements kotlin.jvm.internal.KObject, Tr {
public final class C implements Tr {
private final int v = 1;
@org.jetbrains.annotations.NotNull
@@ -1,4 +1,4 @@
public final class C implements kotlin.jvm.internal.KObject, Base {
public final class C implements Base {
public void foo() { /* compiled code */ }
public C() { /* compiled code */ }
@@ -1,4 +1,4 @@
public final class PlatformTypes implements kotlin.jvm.internal.KObject {
public final class PlatformTypes {
public final java.lang.String simplyPlatform() { /* compiled code */ }
@org.jetbrains.annotations.Nullable
@@ -1,4 +1,4 @@
public final class PrivateInClass implements kotlin.jvm.internal.KObject {
public final class PrivateInClass {
private final java.lang.String getNn() { /* compiled code */ }
private final void setNn(java.lang.String value) { /* compiled code */ }
@@ -1,9 +1,9 @@
public final class Synthetic implements kotlin.jvm.internal.KObject {
public final class Synthetic {
private final void foo() { /* compiled code */ }
public Synthetic() { /* compiled code */ }
public final class Inner implements kotlin.jvm.internal.KObject {
public final class Inner {
public final void test() { /* compiled code */ }
public Inner() { /* compiled code */ }
@@ -8,7 +8,7 @@ public interface TraitClassObjectField {
@org.jetbrains.annotations.Nullable
java.lang.String x = "";
static final class Default implements kotlin.jvm.internal.KObject {
static final class Default {
@org.jetbrains.annotations.Nullable
private final java.lang.String x = "";
private final java.lang.String y = "";
@@ -1,4 +1,4 @@
public final class C implements kotlin.jvm.internal.KObject, Base<kotlin.Unit> {
public final class C implements Base<kotlin.Unit> {
public void foo(@org.jetbrains.annotations.NotNull kotlin.Unit t) { /* compiled code */ }
public C() { /* compiled code */ }
@@ -1,12 +1,12 @@
package test
import kotlin.jvm.internal.KObject
import kotlin.jvm.internal.Intrinsics
import kotlin.jvm.internal.Ref
fun foo(): String {
// This method call should be resolved to kotlin-runtime.jar
val r: String = Intrinsics.stringPlus(":", ")")
// This method call should be resolved to sources
return KObject.methodWhichDoesNotExistInKotlinRuntime()
return Ref.methodWhichDoesNotExistInKotlinRuntime()
}
@@ -1,6 +1,6 @@
package kotlin.jvm.internal;
public class KObject {
public class Ref {
public static String methodWhichDoesNotExistInKotlinRuntime() {
return ":)";
}
@@ -1,7 +1,5 @@
// KT-4485 getGenericInterfaces vs getInterfaces for kotlin classes
import kotlin.jvm.internal.KObject
class SimpleClass
class ClassWithNonGenericSuperInterface: Cloneable
@@ -10,10 +8,6 @@ class ClassWithGenericSuperInterface: java.util.Comparator<String> {
override fun compare(a: String, b: String): Int = 0
}
class ExplicitKObject: java.util.Comparator<String>, KObject {
override fun compare(a: String, b: String): Int = 0
}
fun check(klass: Class<*>) {
val interfaces = klass.getInterfaces().toList()
val genericInterfaces = klass.getGenericInterfaces().toList()
@@ -26,6 +20,5 @@ fun box(): String {
check(javaClass<SimpleClass>())
check(javaClass<ClassWithNonGenericSuperInterface>())
check(javaClass<ClassWithGenericSuperInterface>())
check(javaClass<ExplicitKObject>())
return "OK"
}
@@ -1,30 +0,0 @@
// KT-5609: interfaces should not inherit from KObject, unless explicitly said so
trait A
trait B : kotlin.jvm.internal.KObject
annotation class C
class D
class E : kotlin.jvm.internal.KObject
fun box(): String {
val a = javaClass<A>().getGenericInterfaces().toList()
if (a.toString() != "[]") return "Fail A: $a"
val b = javaClass<B>().getGenericInterfaces().toList()
if (b.toString() != "[interface kotlin.jvm.internal.KObject]") return "Fail B: $b"
val c = javaClass<C>().getGenericInterfaces().toList()
if (c.toString() != "[interface java.lang.annotation.Annotation]") return "Fail C: $c"
val d = javaClass<D>().getGenericInterfaces().toList()
if (d.toString() != "[interface kotlin.jvm.internal.KObject]") return "Fail D: $d"
val e = javaClass<E>().getGenericInterfaces().toList()
if (e.toString() != "[interface kotlin.jvm.internal.KObject]") return "Fail E: $e"
return "OK"
}
@@ -8,4 +8,4 @@ class Sub: Super<C<*>>()
// class: Sub
// jvm signature: Sub
// generic signature: LSuper<LC<*>;>;Lkotlin/jvm/internal/KObject;
// generic signature: LSuper<LC<*>;>;
@@ -4,4 +4,4 @@ class Derived<A, B, C>: Base<A, B, C>()
// class: Derived
// jvm signature: Derived
// generic signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;>LBase<TA;TB;TC;>;Lkotlin/jvm/internal/KObject;
// generic signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;>LBase<TA;TB;TC;>;
@@ -4,4 +4,4 @@ class Derived<A, B, C>: Base<A, B, C>
// class: Derived
// jvm signature: Derived
// generic signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;>Ljava/lang/Object;Lkotlin/jvm/internal/KObject;LBase<TA;TB;TC;>;
// generic signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;>Ljava/lang/Object;LBase<TA;TB;TC;>;
@@ -5,4 +5,4 @@ class Derived<A, B, C>: Intermediate<Base<A, B, C>>
// class: Derived
// jvm signature: Derived
// generic signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;>Ljava/lang/Object;Lkotlin/jvm/internal/KObject;LIntermediate<LBase<TA;-TB;+TC;>;>;
// generic signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;C:Ljava/lang/Object;>Ljava/lang/Object;LIntermediate<LBase<TA;-TB;+TC;>;>;