diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index fac6074fc59..cbaafc3b0e6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -52,7 +52,6 @@ import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants; import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames; -import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.*; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; @@ -350,8 +349,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { sw.writeSuperclassEnd(); List interfaceSupertypes = Lists.newArrayList(); - FqNameUnsafe jetObjectFqName = JvmAbi.JET_OBJECT.getFqNameForClassNameWithoutDollars().toUnsafe(); - boolean explicitJetObject = false; + boolean explicitKObject = false; for (JetDelegationSpecifier specifier : myClass.getDelegationSpecifiers()) { JetType superType = bindingContext.get(BindingContext.TYPE, specifier.getTypeReference()); @@ -361,19 +359,20 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { interfaceSupertypes.add(superType); assert superClassDescriptor != null : "should be already checked by isInterface()"; - if (jetObjectFqName.equals(DescriptorUtils.getFqName(superClassDescriptor))) { - explicitJetObject = true; + if (JvmAbi.K_OBJECT.equalsTo(DescriptorUtils.getFqName(superClassDescriptor))) { + explicitKObject = true; } } } LinkedHashSet superInterfaces = new LinkedHashSet(); - if (!explicitJetObject) { + if (!explicitKObject) { + Type kObject = asmTypeByFqNameWithoutInnerClasses(JvmAbi.K_OBJECT); sw.writeInterface(); - sw.writeClassBegin(Type.getObjectType(JvmAbi.JET_OBJECT.getInternalName())); + sw.writeClassBegin(kObject); sw.writeClassEnd(); sw.writeInterfaceEnd(); - superInterfaces.add(JvmAbi.JET_OBJECT.getInternalName()); + superInterfaces.add(kObject.getInternalName()); } for (JetType supertype : interfaceSupertypes) { diff --git a/compiler/testData/asJava/nullabilityAnnotations/Class.java b/compiler/testData/asJava/nullabilityAnnotations/Class.java index 394923d8d0e..02944a909ca 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/Class.java +++ b/compiler/testData/asJava/nullabilityAnnotations/Class.java @@ -1,4 +1,4 @@ -public final class Class implements jet.JetObject { +public final class Class implements kotlin.jvm.internal.KObject { @org.jetbrains.annotations.Nullable private final java.lang.String nullableVal = ""; @org.jetbrains.annotations.Nullable @@ -71,4 +71,4 @@ public final class Class implements jet.JetObject { @org.jetbrains.annotations.NotNull public Class() { /* compiled code */ } -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/ClassObjectField.java b/compiler/testData/asJava/nullabilityAnnotations/ClassObjectField.java index 26b3180727f..60f5378a83c 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/ClassObjectField.java +++ b/compiler/testData/asJava/nullabilityAnnotations/ClassObjectField.java @@ -1,4 +1,4 @@ -public final class ClassObjectField implements jet.JetObject { +public final class ClassObjectField implements kotlin.jvm.internal.KObject { @org.jetbrains.annotations.Nullable public static final java.lang.String x = ""; private static final java.lang.String y = ""; @@ -7,7 +7,7 @@ public final class ClassObjectField implements jet.JetObject { @org.jetbrains.annotations.NotNull public ClassObjectField() { /* compiled code */ } - public static final class object implements jet.JetObject { + public static final class object implements kotlin.jvm.internal.KObject { @org.jetbrains.annotations.Nullable public final java.lang.String getX() { /* compiled code */ } @@ -15,4 +15,4 @@ public final class ClassObjectField implements jet.JetObject { private object() { /* compiled code */ } } -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/ClassWithConstructor.java b/compiler/testData/asJava/nullabilityAnnotations/ClassWithConstructor.java index 63fa0808070..f781f98d627 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/ClassWithConstructor.java +++ b/compiler/testData/asJava/nullabilityAnnotations/ClassWithConstructor.java @@ -1,4 +1,4 @@ -public final class ClassWithConstructor implements jet.JetObject { +public final class ClassWithConstructor implements kotlin.jvm.internal.KObject { @org.jetbrains.annotations.NotNull public ClassWithConstructor(@org.jetbrains.annotations.Nullable @jet.runtime.typeinfo.JetValueParameter(name = "nullable", type = "?") java.lang.String nullable, @org.jetbrains.annotations.NotNull @jet.runtime.typeinfo.JetValueParameter(name = "notNull") java.lang.String notNull) { /* compiled code */ } -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/ClassWithConstructorAndProperties.java b/compiler/testData/asJava/nullabilityAnnotations/ClassWithConstructorAndProperties.java index 97b3230151b..b59925f9a57 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/ClassWithConstructorAndProperties.java +++ b/compiler/testData/asJava/nullabilityAnnotations/ClassWithConstructorAndProperties.java @@ -1,4 +1,4 @@ -public final class ClassWithConstructorAndProperties implements jet.JetObject { +public final class ClassWithConstructorAndProperties implements kotlin.jvm.internal.KObject { @org.jetbrains.annotations.Nullable private final java.lang.String nullable; @org.jetbrains.annotations.NotNull @@ -12,4 +12,4 @@ public final class ClassWithConstructorAndProperties implements jet.JetObject { @org.jetbrains.annotations.NotNull public ClassWithConstructorAndProperties(@org.jetbrains.annotations.Nullable @jet.runtime.typeinfo.JetValueParameter(name = "nullable", type = "?") java.lang.String nullable, @org.jetbrains.annotations.NotNull @jet.runtime.typeinfo.JetValueParameter(name = "notNull") java.lang.String notNull) { /* compiled code */ } -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/Generic.java b/compiler/testData/asJava/nullabilityAnnotations/Generic.java index 068c72311df..2467ff5720e 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/Generic.java +++ b/compiler/testData/asJava/nullabilityAnnotations/Generic.java @@ -1,4 +1,4 @@ -public interface Generic extends jet.JetObject { +public interface Generic extends kotlin.jvm.internal.KObject { N a(@jet.runtime.typeinfo.JetValueParameter(name = "n") N n); @org.jetbrains.annotations.NotNull @@ -9,4 +9,4 @@ public interface Generic extends jet.JetObject { @org.jetbrains.annotations.Nullable NN b1(@org.jetbrains.annotations.Nullable @jet.runtime.typeinfo.JetValueParameter(name = "nn", type = "?") NN nn); -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/Primitives.java b/compiler/testData/asJava/nullabilityAnnotations/Primitives.java index 0f3a81a7a42..e9e92214695 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/Primitives.java +++ b/compiler/testData/asJava/nullabilityAnnotations/Primitives.java @@ -1,4 +1,4 @@ -public interface Primitives extends jet.JetObject { +public interface Primitives extends kotlin.jvm.internal.KObject { int $$int /* Real name is 'int' */(@jet.runtime.typeinfo.JetValueParameter(name = "x") int x); @org.jetbrains.annotations.Nullable @@ -40,4 +40,4 @@ public interface Primitives extends jet.JetObject { float getFloat(); double getDouble(); -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/PrivateInClass.java b/compiler/testData/asJava/nullabilityAnnotations/PrivateInClass.java index bdc456393f6..32bf3192ac3 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/PrivateInClass.java +++ b/compiler/testData/asJava/nullabilityAnnotations/PrivateInClass.java @@ -1,4 +1,4 @@ -public final class PrivateInClass implements jet.JetObject { +public final class PrivateInClass implements kotlin.jvm.internal.KObject { private final java.lang.String nn = ""; private final java.lang.String n = ""; @@ -9,4 +9,4 @@ public final class PrivateInClass implements jet.JetObject { private final java.lang.String bar(@jet.runtime.typeinfo.JetValueParameter(name = "a") java.lang.String a, @jet.runtime.typeinfo.JetValueParameter(name = "b", type = "?") java.lang.String b) { /* compiled code */ } private PrivateInClass(@jet.runtime.typeinfo.JetValueParameter(name = "s", type = "?") java.lang.String s) { /* compiled code */ } -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/PrivateInTrait.java b/compiler/testData/asJava/nullabilityAnnotations/PrivateInTrait.java index 699ae9fea12..f09cd14a03b 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/PrivateInTrait.java +++ b/compiler/testData/asJava/nullabilityAnnotations/PrivateInTrait.java @@ -1,4 +1,4 @@ -public interface PrivateInTrait extends jet.JetObject { +public interface PrivateInTrait extends kotlin.jvm.internal.KObject { @org.jetbrains.annotations.NotNull java.lang.String getNn(); @@ -7,4 +7,4 @@ public interface PrivateInTrait extends jet.JetObject { @org.jetbrains.annotations.Nullable java.lang.String bar(@org.jetbrains.annotations.NotNull @jet.runtime.typeinfo.JetValueParameter(name = "a") java.lang.String a, @org.jetbrains.annotations.Nullable @jet.runtime.typeinfo.JetValueParameter(name = "b", type = "?") java.lang.String b); -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/Synthetic.java b/compiler/testData/asJava/nullabilityAnnotations/Synthetic.java index d1f6a7e46c0..4bbf5fb52b9 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/Synthetic.java +++ b/compiler/testData/asJava/nullabilityAnnotations/Synthetic.java @@ -1,14 +1,14 @@ -public final class Synthetic implements jet.JetObject { +public final class Synthetic implements kotlin.jvm.internal.KObject { private final void foo() { /* compiled code */ } @org.jetbrains.annotations.NotNull public Synthetic() { /* compiled code */ } - public final class Inner implements jet.JetObject { + public final class Inner implements kotlin.jvm.internal.KObject { @org.jetbrains.annotations.NotNull public final void test() { /* compiled code */ } @org.jetbrains.annotations.NotNull public Inner() { /* compiled code */ } } -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/Trait.java b/compiler/testData/asJava/nullabilityAnnotations/Trait.java index 520787fb8ca..ebe1ccec524 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/Trait.java +++ b/compiler/testData/asJava/nullabilityAnnotations/Trait.java @@ -1,4 +1,4 @@ -public interface Trait extends jet.JetObject { +public interface Trait extends kotlin.jvm.internal.KObject { @org.jetbrains.annotations.NotNull java.lang.String notNull(@org.jetbrains.annotations.NotNull @jet.runtime.typeinfo.JetValueParameter(name = "a") java.lang.String a); @@ -36,4 +36,4 @@ public interface Trait extends jet.JetObject { @org.jetbrains.annotations.NotNull void setNotNullVar(@org.jetbrains.annotations.NotNull @jet.runtime.typeinfo.JetValueParameter(name = "") java.lang.String p); -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/nullabilityAnnotations/TraitClassObjectField.java b/compiler/testData/asJava/nullabilityAnnotations/TraitClassObjectField.java index 77923e6da3a..b089bc0e449 100644 --- a/compiler/testData/asJava/nullabilityAnnotations/TraitClassObjectField.java +++ b/compiler/testData/asJava/nullabilityAnnotations/TraitClassObjectField.java @@ -1,9 +1,9 @@ -public interface TraitClassObjectField extends jet.JetObject { +public interface TraitClassObjectField extends kotlin.jvm.internal.KObject { TraitClassObjectField.object object$; @org.jetbrains.annotations.Nullable java.lang.String x = ""; - static final class object implements jet.JetObject { + static final class object implements kotlin.jvm.internal.KObject { @org.jetbrains.annotations.Nullable private final java.lang.String x = ""; private final java.lang.String y = ""; @@ -15,4 +15,4 @@ public interface TraitClassObjectField extends jet.JetObject { private object() { /* compiled code */ } } -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/boxWithStdlib/regressions/getGenericInterfaces.kt b/compiler/testData/codegen/boxWithStdlib/regressions/getGenericInterfaces.kt index d20e96e2b41..f01bd39ef95 100644 --- a/compiler/testData/codegen/boxWithStdlib/regressions/getGenericInterfaces.kt +++ b/compiler/testData/codegen/boxWithStdlib/regressions/getGenericInterfaces.kt @@ -1,5 +1,7 @@ // KT-4485 getGenericInterfaces vs getInterfaces for kotlin classes +import kotlin.jvm.internal.KObject + class SimpleClass class ClassWithNonGenericSuperInterface: Cloneable @@ -8,7 +10,7 @@ class ClassWithGenericSuperInterface: java.util.Comparator { override fun compare(a: String, b: String): Int = 0 } -class ExplicitJetObject: java.util.Comparator, JetObject { +class ExplicitKObject: java.util.Comparator, KObject { override fun compare(a: String, b: String): Int = 0 } @@ -24,6 +26,6 @@ fun box(): String { check(javaClass()) check(javaClass()) check(javaClass()) - check(javaClass()) + check(javaClass()) return "OK" -} \ No newline at end of file +} diff --git a/compiler/testData/writeSignature/declarationSiteVariance/MappedSupertypeWithVariance.kt b/compiler/testData/writeSignature/declarationSiteVariance/MappedSupertypeWithVariance.kt index 8083856a511..b3dc2dbb72b 100644 --- a/compiler/testData/writeSignature/declarationSiteVariance/MappedSupertypeWithVariance.kt +++ b/compiler/testData/writeSignature/declarationSiteVariance/MappedSupertypeWithVariance.kt @@ -3,4 +3,4 @@ trait Derived: List // class: Derived // jvm signature: Derived -// generic signature: Ljava/lang/Object;Ljet/JetObject;Ljava/util/List; +// generic signature: Ljava/lang/Object;Lkotlin/jvm/internal/KObject;Ljava/util/List; diff --git a/compiler/testData/writeSignature/declarationSiteVariance/SuperClassWithVariance.kt b/compiler/testData/writeSignature/declarationSiteVariance/SuperClassWithVariance.kt index 46827b87e42..8d672aee6c7 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;Ljet/JetObject; +// generic signature: LBase;Lkotlin/jvm/internal/KObject; diff --git a/compiler/testData/writeSignature/declarationSiteVariance/SuperTraitWithVariance.kt b/compiler/testData/writeSignature/declarationSiteVariance/SuperTraitWithVariance.kt index 85e99257517..5315bec17a3 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;Ljet/JetObject;LBase; +// generic signature: Ljava/lang/Object;Lkotlin/jvm/internal/KObject;LBase; diff --git a/compiler/testData/writeSignature/declarationSiteVariance/SuperTypeWithVarianceInArguments.kt b/compiler/testData/writeSignature/declarationSiteVariance/SuperTypeWithVarianceInArguments.kt index 3be3c1bf1b9..d334e6a2404 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;Ljet/JetObject;LIntermediate;>; +// generic signature: Ljava/lang/Object;Lkotlin/jvm/internal/KObject;LIntermediate;>; diff --git a/compiler/tests/org/jetbrains/jet/codegen/AnnotationGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/AnnotationGenTest.java index 93579252f3b..2bc226d079f 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/AnnotationGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/AnnotationGenTest.java @@ -235,7 +235,7 @@ public class AnnotationGenTest extends CodegenTestCase { assertTrue(aClass.isAnnotation()); assertEquals(2, interfaces.length); assertEquals( - Sets.newHashSet("java.lang.annotation.Annotation", "jet.JetObject"), + Sets.newHashSet("java.lang.annotation.Annotation", "kotlin.jvm.internal.KObject"), Sets.newHashSet(interfaces[0].getName(), interfaces[1].getName()) ); } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JvmAbi.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JvmAbi.java index d4ae2ab86b4..7f1301c212d 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JvmAbi.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JvmAbi.java @@ -46,7 +46,7 @@ public final class JvmAbi { public static final String INSTANCE_FIELD = "instance$"; public static final String CLASS_OBJECT_FIELD = "object$"; - public static final JvmClassName JET_OBJECT = JvmClassName.byFqNameWithoutInnerClasses("jet.JetObject"); + public static final FqName K_OBJECT = new FqName("kotlin.jvm.internal.KObject"); public static boolean isClassObjectFqName(@NotNull FqName fqName) { return fqName.lastSegmentIs(Name.identifier(CLASS_OBJECT_CLASS_NAME)); diff --git a/core/runtime.jvm/src/jet/JetObject.java b/core/runtime.jvm/src/kotlin/jvm/internal/KObject.java similarity index 91% rename from core/runtime.jvm/src/jet/JetObject.java rename to core/runtime.jvm/src/kotlin/jvm/internal/KObject.java index e5ca29dac3f..e59d02e617a 100644 --- a/core/runtime.jvm/src/jet/JetObject.java +++ b/core/runtime.jvm/src/kotlin/jvm/internal/KObject.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package jet; +package kotlin.jvm.internal; -public interface JetObject { +public interface KObject { } diff --git a/idea/src/org/jetbrains/jet/plugin/versions/KotlinRuntimeLibraryUtil.java b/idea/src/org/jetbrains/jet/plugin/versions/KotlinRuntimeLibraryUtil.java index 0a6f67ad112..ece84d3631b 100644 --- a/idea/src/org/jetbrains/jet/plugin/versions/KotlinRuntimeLibraryUtil.java +++ b/idea/src/org/jetbrains/jet/plugin/versions/KotlinRuntimeLibraryUtil.java @@ -19,7 +19,6 @@ package org.jetbrains.jet.plugin.versions; import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; @@ -60,7 +59,6 @@ import java.util.Set; import static com.intellij.util.PathUtil.getLocalFile; import static com.intellij.util.PathUtil.getLocalPath; - import static org.jetbrains.jet.plugin.versions.OutdatedKotlinRuntimeNotification.showRuntimeJarNotFoundDialog; public class KotlinRuntimeLibraryUtil { @@ -156,12 +154,9 @@ public class KotlinRuntimeLibraryUtil { ImmutableList candidateClassNames = ImmutableList.of( kotlinPackageClassFqName, - // For built-ins module in Kotlin project "jet.Unit", // For older versions - "kotlin.namespace", - // For really old versions - "jet.JetObject" + "kotlin.namespace" ); for (String className : candidateClassNames) {