From 8af6ca5279784db6a78ff2d97ea9ec52cf4ab6f7 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 12 Mar 2015 14:05:42 +0300 Subject: [PATCH] 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 --- .../codegen/ImplementationBodyCodegen.java | 27 +++-------------- .../delegation/ExternalAnnotations.java | 2 +- .../lightClasses/delegation/Function.java | 2 +- .../lightClasses/delegation/Property.java | 2 +- .../delegation/WithPlatformTypes.java | 2 +- .../nullabilityAnnotations/Class.java | 2 +- .../ClassObjectField.java | 4 +-- .../ClassWithConstructor.java | 2 +- .../ClassWithConstructorAndProperties.java | 2 +- .../IntOverridesAny.java | 2 +- .../OverrideAnyWithUnit.java | 2 +- .../nullabilityAnnotations/PlatformTypes.java | 2 +- .../PrivateInClass.java | 2 +- .../nullabilityAnnotations/Synthetic.java | 4 +-- .../TraitClassObjectField.java | 2 +- .../UnitAsGenericArgument.java | 2 +- .../testData/classpathOrder/classpathOrder.kt | 4 +-- .../jvm/internal/{KObject.java => Ref.java} | 2 +- .../regressions/getGenericInterfaces.kt | 7 ----- .../boxWithStdlib/regressions/kt5609.kt | 30 ------------------- .../writeSignature/StarProjectionInSuper.kt | 2 +- .../SuperClassWithVariance.kt | 2 +- .../SuperTraitWithVariance.kt | 2 +- .../SuperTypeWithVarianceInArguments.kt | 2 +- ...lackBoxWithStdlibCodegenTestGenerated.java | 6 ---- .../jetbrains/kotlin/load/java/JvmAbi.java | 2 -- .../src/kotlin/jvm/internal/KObject.java | 20 ------------- .../evaluate/KotlinRuntimeTypeEvaluator.kt | 7 ++--- .../refactoring/javaElementFactoryUtils.kt | 9 +++--- 29 files changed, 34 insertions(+), 122 deletions(-) rename compiler/testData/classpathOrder/kotlin/jvm/internal/{KObject.java => Ref.java} (84%) delete mode 100644 compiler/testData/codegen/boxWithStdlib/regressions/kt5609.kt delete mode 100644 core/runtime.jvm/src/kotlin/jvm/internal/KObject.java diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index b2ea4e4810d..7508eabf79c 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -23,13 +23,13 @@ import com.intellij.util.ArrayUtil; import kotlin.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension; import org.jetbrains.kotlin.backend.common.CodegenUtil; import org.jetbrains.kotlin.backend.common.CodegenUtilKt; import org.jetbrains.kotlin.backend.common.DataClassMethodGenerator; import org.jetbrains.kotlin.builtins.KotlinBuiltIns; import org.jetbrains.kotlin.codegen.binding.MutableClosure; import org.jetbrains.kotlin.codegen.context.*; +import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension; import org.jetbrains.kotlin.codegen.signature.BothSignatureWriter; import org.jetbrains.kotlin.codegen.state.GenerationState; import org.jetbrains.kotlin.codegen.state.JetTypeMapper; @@ -282,34 +282,16 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { sw.writeSuperclassEnd(); List interfaceSupertypes = Lists.newArrayList(); - boolean explicitKObject = false; for (JetDelegationSpecifier specifier : myClass.getDelegationSpecifiers()) { JetType superType = bindingContext.get(BindingContext.TYPE, specifier.getTypeReference()); assert superType != null : "No supertype for class: " + myClass.getText(); - ClassifierDescriptor classifierDescriptor = superType.getConstructor().getDeclarationDescriptor(); - if (classifierDescriptor instanceof ClassDescriptor) { - ClassDescriptor superClassDescriptor = (ClassDescriptor) classifierDescriptor; - if (isInterface(superClassDescriptor)) { - interfaceSupertypes.add(superType); - - if (JvmAbi.K_OBJECT.equalsTo(DescriptorUtils.getFqName(superClassDescriptor))) { - explicitKObject = true; - } - } + if (isInterface(superType.getConstructor().getDeclarationDescriptor())) { + interfaceSupertypes.add(superType); } } LinkedHashSet superInterfaces = new LinkedHashSet(); - if (!explicitKObject && !isInterface(descriptor)) { - Type kObject = asmTypeByFqNameWithoutInnerClasses(JvmAbi.K_OBJECT); - sw.writeInterface(); - sw.writeClassBegin(kObject); - sw.writeClassEnd(); - sw.writeInterfaceEnd(); - superInterfaces.add(kObject.getInternalName()); - } - for (JetType supertype : interfaceSupertypes) { sw.writeInterface(); Type jvmName = typeMapper.mapSupertype(supertype, sw); @@ -318,8 +300,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { } return new JvmClassSignature(classAsmType.getInternalName(), superClassAsmType.getInternalName(), - new ArrayList(superInterfaces), - sw.makeJavaGenericSignature()); + new ArrayList(superInterfaces), sw.makeJavaGenericSignature()); } protected void getSuperClass() { diff --git a/compiler/testData/asJava/lightClasses/delegation/ExternalAnnotations.java b/compiler/testData/asJava/lightClasses/delegation/ExternalAnnotations.java index 79a833d5980..a196350495a 100644 --- a/compiler/testData/asJava/lightClasses/delegation/ExternalAnnotations.java +++ b/compiler/testData/asJava/lightClasses/delegation/ExternalAnnotations.java @@ -1,4 +1,4 @@ -public final class WithPlatformTypes implements kotlin.jvm.internal.KObject, java.lang.Iterable { +public final class WithPlatformTypes implements java.lang.Iterable { public WithPlatformTypes(@org.jetbrains.annotations.NotNull java.lang.Iterable i) { /* compiled code */ } @org.jetbrains.annotations.NotNull diff --git a/compiler/testData/asJava/lightClasses/delegation/Function.java b/compiler/testData/asJava/lightClasses/delegation/Function.java index d15636618a1..c6d4fbde337 100644 --- a/compiler/testData/asJava/lightClasses/delegation/Function.java +++ b/compiler/testData/asJava/lightClasses/delegation/Function.java @@ -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 diff --git a/compiler/testData/asJava/lightClasses/delegation/Property.java b/compiler/testData/asJava/lightClasses/delegation/Property.java index 29411d4b5c8..21acba1c939 100644 --- a/compiler/testData/asJava/lightClasses/delegation/Property.java +++ b/compiler/testData/asJava/lightClasses/delegation/Property.java @@ -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 diff --git a/compiler/testData/asJava/lightClasses/delegation/WithPlatformTypes.java b/compiler/testData/asJava/lightClasses/delegation/WithPlatformTypes.java index 490ba4982a2..93864a39c9d 100644 --- a/compiler/testData/asJava/lightClasses/delegation/WithPlatformTypes.java +++ b/compiler/testData/asJava/lightClasses/delegation/WithPlatformTypes.java @@ -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 diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Class.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Class.java index 9bc000314cf..388ed6d1c0f 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Class.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Class.java @@ -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 diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.java index 02dc355584c..a6970f8533b 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.java @@ -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 */ } diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.java index 2c301e60276..da69321750f 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructor.java @@ -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 */ } } \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructorAndProperties.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructorAndProperties.java index 9b956541f94..51674a13afd 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructorAndProperties.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassWithConstructorAndProperties.java @@ -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 diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/IntOverridesAny.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/IntOverridesAny.java index 4a518c5ca97..c104fc53d36 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/IntOverridesAny.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/IntOverridesAny.java @@ -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 diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.java index ea46f1f8b4d..ff086422eb7 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/OverrideAnyWithUnit.java @@ -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 */ } diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/PlatformTypes.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/PlatformTypes.java index 52a98c248e8..8a3b52538db 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/PlatformTypes.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/PlatformTypes.java @@ -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 diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/PrivateInClass.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/PrivateInClass.java index 90487537a46..2856f43710e 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/PrivateInClass.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/PrivateInClass.java @@ -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 */ } diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.java index c9e411d88d4..84cf3a2178e 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/Synthetic.java @@ -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 */ } diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java index 1997bc2ab45..84aa2ddbaa3 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java @@ -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 = ""; diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.java index d2e957c7211..f033e4e824e 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/UnitAsGenericArgument.java @@ -1,4 +1,4 @@ -public final class C implements kotlin.jvm.internal.KObject, Base { +public final class C implements Base { public void foo(@org.jetbrains.annotations.NotNull kotlin.Unit t) { /* compiled code */ } public C() { /* compiled code */ } diff --git a/compiler/testData/classpathOrder/classpathOrder.kt b/compiler/testData/classpathOrder/classpathOrder.kt index ad379c976fd..01172c524a3 100644 --- a/compiler/testData/classpathOrder/classpathOrder.kt +++ b/compiler/testData/classpathOrder/classpathOrder.kt @@ -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() } diff --git a/compiler/testData/classpathOrder/kotlin/jvm/internal/KObject.java b/compiler/testData/classpathOrder/kotlin/jvm/internal/Ref.java similarity index 84% rename from compiler/testData/classpathOrder/kotlin/jvm/internal/KObject.java rename to compiler/testData/classpathOrder/kotlin/jvm/internal/Ref.java index c75043326b9..db76f49a9c1 100644 --- a/compiler/testData/classpathOrder/kotlin/jvm/internal/KObject.java +++ b/compiler/testData/classpathOrder/kotlin/jvm/internal/Ref.java @@ -1,6 +1,6 @@ package kotlin.jvm.internal; -public class KObject { +public class Ref { public static String methodWhichDoesNotExistInKotlinRuntime() { return ":)"; } diff --git a/compiler/testData/codegen/boxWithStdlib/regressions/getGenericInterfaces.kt b/compiler/testData/codegen/boxWithStdlib/regressions/getGenericInterfaces.kt index f01bd39ef95..7bc013b60b7 100644 --- a/compiler/testData/codegen/boxWithStdlib/regressions/getGenericInterfaces.kt +++ b/compiler/testData/codegen/boxWithStdlib/regressions/getGenericInterfaces.kt @@ -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 { override fun compare(a: String, b: String): Int = 0 } -class ExplicitKObject: java.util.Comparator, 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()) check(javaClass()) check(javaClass()) - check(javaClass()) return "OK" } diff --git a/compiler/testData/codegen/boxWithStdlib/regressions/kt5609.kt b/compiler/testData/codegen/boxWithStdlib/regressions/kt5609.kt deleted file mode 100644 index a866c62f612..00000000000 --- a/compiler/testData/codegen/boxWithStdlib/regressions/kt5609.kt +++ /dev/null @@ -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().getGenericInterfaces().toList() - if (a.toString() != "[]") return "Fail A: $a" - - val b = javaClass().getGenericInterfaces().toList() - if (b.toString() != "[interface kotlin.jvm.internal.KObject]") return "Fail B: $b" - - val c = javaClass().getGenericInterfaces().toList() - if (c.toString() != "[interface java.lang.annotation.Annotation]") return "Fail C: $c" - - val d = javaClass().getGenericInterfaces().toList() - if (d.toString() != "[interface kotlin.jvm.internal.KObject]") return "Fail D: $d" - - val e = javaClass().getGenericInterfaces().toList() - if (e.toString() != "[interface kotlin.jvm.internal.KObject]") return "Fail E: $e" - - return "OK" -} diff --git a/compiler/testData/writeSignature/StarProjectionInSuper.kt b/compiler/testData/writeSignature/StarProjectionInSuper.kt index 65a2b98362d..c20f6941fb9 100644 --- a/compiler/testData/writeSignature/StarProjectionInSuper.kt +++ b/compiler/testData/writeSignature/StarProjectionInSuper.kt @@ -8,4 +8,4 @@ class Sub: Super>() // class: Sub // jvm signature: Sub -// generic signature: LSuper;>;Lkotlin/jvm/internal/KObject; +// generic signature: LSuper;>; diff --git a/compiler/testData/writeSignature/declarationSiteVariance/SuperClassWithVariance.kt b/compiler/testData/writeSignature/declarationSiteVariance/SuperClassWithVariance.kt index 8d672aee6c7..f50b52a9ec4 100644 --- a/compiler/testData/writeSignature/declarationSiteVariance/SuperClassWithVariance.kt +++ b/compiler/testData/writeSignature/declarationSiteVariance/SuperClassWithVariance.kt @@ -4,4 +4,4 @@ class Derived: Base() // class: Derived // jvm signature: Derived -// generic signature: LBase;Lkotlin/jvm/internal/KObject; +// generic signature: LBase; diff --git a/compiler/testData/writeSignature/declarationSiteVariance/SuperTraitWithVariance.kt b/compiler/testData/writeSignature/declarationSiteVariance/SuperTraitWithVariance.kt index 5315bec17a3..b2dc85c7503 100644 --- a/compiler/testData/writeSignature/declarationSiteVariance/SuperTraitWithVariance.kt +++ b/compiler/testData/writeSignature/declarationSiteVariance/SuperTraitWithVariance.kt @@ -4,4 +4,4 @@ class Derived: Base // class: Derived // jvm signature: Derived -// generic signature: Ljava/lang/Object;Lkotlin/jvm/internal/KObject;LBase; +// generic signature: Ljava/lang/Object;LBase; diff --git a/compiler/testData/writeSignature/declarationSiteVariance/SuperTypeWithVarianceInArguments.kt b/compiler/testData/writeSignature/declarationSiteVariance/SuperTypeWithVarianceInArguments.kt index d334e6a2404..7e8ac77788c 100644 --- a/compiler/testData/writeSignature/declarationSiteVariance/SuperTypeWithVarianceInArguments.kt +++ b/compiler/testData/writeSignature/declarationSiteVariance/SuperTypeWithVarianceInArguments.kt @@ -5,4 +5,4 @@ class Derived: Intermediate> // class: Derived // jvm signature: Derived -// generic signature: Ljava/lang/Object;Lkotlin/jvm/internal/KObject;LIntermediate;>; +// generic signature: Ljava/lang/Object;LIntermediate;>; diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java index 7799c367896..cdfd9c09f0a 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java @@ -3068,12 +3068,6 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode doTestWithStdlib(fileName); } - @TestMetadata("kt5609.kt") - public void testKt5609() throws Exception { - String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/regressions/kt5609.kt"); - doTestWithStdlib(fileName); - } - @TestMetadata("kt715.kt") public void testKt715() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/regressions/kt715.kt"); diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java index c70aea75920..08dc00d423c 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java @@ -17,7 +17,6 @@ package org.jetbrains.kotlin.load.java; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.Name; public final class JvmAbi { @@ -40,7 +39,6 @@ public final class JvmAbi { public static final String INSTANCE_FIELD = "INSTANCE$"; - public static final FqName K_OBJECT = new FqName("kotlin.jvm.internal.KObject"); public static final String KOTLIN_CLASS_FIELD_NAME = "$kotlinClass"; public static final String KOTLIN_PACKAGE_FIELD_NAME = "$kotlinPackage"; diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/KObject.java b/core/runtime.jvm/src/kotlin/jvm/internal/KObject.java deleted file mode 100644 index 8d59b49b67f..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/internal/KObject.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package kotlin.jvm.internal; - -public interface KObject { -} diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt index cca0bf975e7..ca7cb1ef155 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinRuntimeTypeEvaluator.kt @@ -33,12 +33,11 @@ import com.intellij.openapi.project.Project import com.intellij.psi.CommonClassNames import com.sun.jdi.ClassType import com.sun.jdi.Value -import org.jetbrains.eval4j.jdi.* +import org.jetbrains.eval4j.jdi.asValue +import org.jetbrains.kotlin.psi.JetExpression import org.jetbrains.kotlin.psi.JetPsiFactory import org.jetbrains.kotlin.types.JetType import org.jetbrains.org.objectweb.asm.Type as AsmType -import org.jetbrains.kotlin.psi.JetExpression -import org.jetbrains.kotlin.load.java.JvmAbi public abstract class KotlinRuntimeTypeEvaluator( editor: Editor?, @@ -99,8 +98,6 @@ public abstract class KotlinRuntimeTypeEvaluator( } for (interfaceType in type.interfaces()) { - if (JvmAbi.K_OBJECT.asString() == interfaceType.name()) continue - psiClass = AsmType.getType(interfaceType.signature()).getClassDescriptor(project) if (psiClass != null) { return psiClass!!.getDefaultType() diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/javaElementFactoryUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/javaElementFactoryUtils.kt index 2311c4a4c09..8296f4c4a66 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/javaElementFactoryUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/javaElementFactoryUtils.kt @@ -16,18 +16,17 @@ package org.jetbrains.kotlin.idea.refactoring -import com.intellij.psi.PsiReferenceList -import com.intellij.psi.PsiReferenceList.Role import com.intellij.psi.PsiElementFactory import com.intellij.psi.PsiJavaCodeReferenceElement -import org.jetbrains.kotlin.load.java.* +import com.intellij.psi.PsiReferenceList +import com.intellij.psi.PsiReferenceList.Role public fun PsiElementFactory.createReferenceListWithRole( references: Array, role: Role ): PsiReferenceList? { - val filteredRefs = references.map { it.getCanonicalText() }.filter { it != JvmAbi.K_OBJECT.asString() } - val refListText = if (filteredRefs.isNotEmpty()) filteredRefs.joinToString() else return null + val refsText = references.map { it.getCanonicalText() } + val refListText = if (refsText.isNotEmpty()) refsText.joinToString() else return null return when (role) { Role.THROWS_LIST -> createMethodFromText("void foo() throws $refListText {}", null).getThrowsList() Role.EXTENDS_LIST -> createClassFromText("class Foo extends $refListText {}", null).getInnerClasses()[0].getExtendsList()