diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FieldInfo.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FieldInfo.java index c00db37fe29..99e97b4bddc 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FieldInfo.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FieldInfo.java @@ -20,7 +20,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.builtins.CompanionObjectMapping; import org.jetbrains.kotlin.codegen.state.JetTypeMapper; import org.jetbrains.kotlin.descriptors.ClassDescriptor; -import org.jetbrains.kotlin.descriptors.ClassifierDescriptor; import org.jetbrains.kotlin.load.java.JvmAbi; import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.org.objectweb.asm.Type; @@ -46,18 +45,6 @@ public class FieldInfo { } } - @SuppressWarnings("deprecation") - @NotNull - public static FieldInfo deprecatedFieldForCompanionObject(@NotNull ClassDescriptor companionObject, @NotNull JetTypeMapper typeMapper) { - assert DescriptorUtils.isCompanionObject(companionObject) : "Not a companion object: " + companionObject; - return new FieldInfo( - typeMapper.mapType((ClassifierDescriptor) companionObject.getContainingDeclaration()), - typeMapper.mapType(companionObject), - JvmAbi.DEPRECATED_COMPANION_OBJECT_FIELD, - true - ); - } - @NotNull public static FieldInfo createForHiddenField(@NotNull Type owner, @NotNull Type fieldType, @NotNull String fieldName) { return new FieldInfo(owner, fieldType, fieldName, false); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index 547b58b0836..118d894d66f 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -43,7 +43,6 @@ import org.jetbrains.kotlin.load.java.JvmAbi; import org.jetbrains.kotlin.load.java.JvmAnnotationNames; import org.jetbrains.kotlin.load.java.JvmAnnotationNames.KotlinClass; import org.jetbrains.kotlin.load.java.descriptors.JavaCallableMemberDescriptor; -import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.resolve.BindingContext; @@ -1008,12 +1007,6 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { StackValue.Field field = StackValue.singleton(companionObjectDescriptor, typeMapper); v.newField(OtherOrigin(companionObject), ACC_PUBLIC | ACC_STATIC | ACC_FINAL, field.name, field.type.getDescriptor(), null, null); - StackValue.Field deprecatedField = StackValue.deprecatedCompanionObjectAccessor(companionObjectDescriptor, typeMapper); - FieldVisitor fv = v.newField(OtherOrigin(companionObject), ACC_PUBLIC | ACC_STATIC | ACC_FINAL | ACC_DEPRECATED, - deprecatedField.name, deprecatedField.type.getDescriptor(), null, null); - - fv.visitAnnotation(asmDescByFqNameWithoutInnerClasses(new FqName("java.lang.Deprecated")), true).visitEnd(); - if (state.getClassBuilderMode() != ClassBuilderMode.FULL) return; if (!isCompanionObjectWithBackingFieldsInOuter(companionObjectDescriptor)) { @@ -1074,7 +1067,6 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { codegen.v.dup(); StackValue instance = StackValue.onStack(typeMapper.mapClass(companionObject)); StackValue.singleton(companionObject, typeMapper).store(instance, codegen.v, true); - StackValue.deprecatedCompanionObjectAccessor(companionObject, typeMapper).store(instance, codegen.v, true); } private void generatePrimaryConstructor(final DelegationFieldsInfo delegationFieldsInfo) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java index f99bc87ba1d..025dc639989 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java @@ -552,10 +552,6 @@ public abstract class StackValue { return field(FieldInfo.createForSingleton(classDescriptor, typeMapper)); } - public static Field deprecatedCompanionObjectAccessor(ClassDescriptor classDescriptor, JetTypeMapper typeMapper) { - return field(FieldInfo.deprecatedFieldForCompanionObject(classDescriptor, typeMapper)); - } - public static StackValue operation(Type type, Function1 lambda) { return new OperationStackValue(type, lambda); } diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.java b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.java index 305e9aadb16..e9951862f26 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.java +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.java @@ -154,9 +154,8 @@ public class LightClassUtil { PsiClass outerPsiClass = getWrappingClass(companionObject); if (outerPsiClass != null) { for (PsiField fieldOfParent : outerPsiClass.getFields()) { - if (!(fieldOfParent instanceof KotlinLightElement)) continue; - if (((KotlinLightElement) fieldOfParent).getOrigin() == companionObject && - fieldOfParent.getName().equals(companionObject.getName())) { // TODO this check is relevant while light class has deprecated OBJECT$ field + if ((fieldOfParent instanceof KotlinLightElement) && + ((KotlinLightElement) fieldOfParent).getOrigin() == companionObject) { return fieldOfParent; } } diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.java index 216eca84c56..74373b189c7 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/ClassObjectField.java @@ -3,11 +3,6 @@ public final class ClassObjectField { public static final java.lang.String x = ""; private static final java.lang.String y = ""; public static final ClassObjectField.Companion Companion; - /** - * @deprecated - */ - @java.lang.Deprecated - public static final ClassObjectField.Companion OBJECT$; public ClassObjectField() { /* compiled code */ } diff --git a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java index 27b9d09742c..6a1577a11e3 100644 --- a/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java +++ b/compiler/testData/asJava/lightClasses/nullabilityAnnotations/TraitClassObjectField.java @@ -1,10 +1,5 @@ public interface TraitClassObjectField { TraitClassObjectField.Companion Companion; - /** - * @deprecated - */ - @java.lang.Deprecated - TraitClassObjectField.Companion OBJECT$; @org.jetbrains.annotations.Nullable java.lang.String x = ""; diff --git a/compiler/testData/codegen/boxWithJava/classObjectAccessor/J.java b/compiler/testData/codegen/boxWithJava/classObjectAccessor/J.java index 308c328b2b8..1464f02b7bc 100644 --- a/compiler/testData/codegen/boxWithJava/classObjectAccessor/J.java +++ b/compiler/testData/codegen/boxWithJava/classObjectAccessor/J.java @@ -1,5 +1,5 @@ public class J { public static int f() { - return A.Companion.getI1() + A.OBJECT$.getI2() + B.Named.getI1() + B.OBJECT$.getI2(); + return A.Companion.getI1() + A.Companion.getI2() + B.Named.getI1() + B.Named.getI2(); } } diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObject.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObject.kt index f4fc2430b45..7cb3dde5a54 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObject.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObject.kt @@ -3,9 +3,3 @@ class C { val Companion = C } - -class D { - companion object {} - - val `OBJECT$` = D -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObject.txt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObject.txt index 4fac25c9706..d0332ec3902 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObject.txt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObject.txt @@ -14,18 +14,3 @@ internal final class C { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } } - -internal final class D { - public constructor D() - internal final val `OBJECT$`: D.Companion - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - public companion object Companion { - private constructor Companion() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } -} diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObjectCopiedFieldObject.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObjectCopiedFieldObject.kt index 63f2176ecf8..a95ee845d35 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObjectCopiedFieldObject.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObjectCopiedFieldObject.kt @@ -11,11 +11,3 @@ class C { } } - -class D { - companion object { - val `OBJECT$` = this - } - - val `OBJECT$` = D -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObjectCopiedFieldObject.txt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObjectCopiedFieldObject.txt index 353977e4cb0..4971046d69d 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObjectCopiedFieldObject.txt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/classObjectCopiedFieldObject.txt @@ -29,19 +29,3 @@ internal final class C { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } } - -internal final class D { - public constructor D() - internal final val `OBJECT$`: D.Companion - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - public companion object Companion { - private constructor Companion() - internal final val `OBJECT$`: D.Companion - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } -} 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 5fe52492bad..a0f89706774 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 @@ -45,10 +45,6 @@ public final class JvmAbi { public static final String KOTLIN_PACKAGE_FIELD_NAME = "$kotlinPackage"; public static final ClassId REFLECTION_FACTORY_IMPL = ClassId.topLevel(new FqName("kotlin.reflect.jvm.internal.ReflectionFactoryImpl")); - //TODO: To be removed after kotlin M11 - @Deprecated - public static final String DEPRECATED_COMPANION_OBJECT_FIELD = "OBJECT$"; - @NotNull public static String getSyntheticMethodNameForAnnotatedProperty(@NotNull Name propertyName) { return propertyName.asString() + ANNOTATED_PROPERTY_METHOD_NAME_SUFFIX; diff --git a/idea/idea-completion/testData/injava/ClassObjectField.java b/idea/idea-completion/testData/injava/ClassObjectField.java index 0173f41c06f..a5ae5f15cd8 100644 --- a/idea/idea-completion/testData/injava/ClassObjectField.java +++ b/idea/idea-completion/testData/injava/ClassObjectField.java @@ -5,4 +5,3 @@ public class Testing { } // EXIST: Companion -// EXIST: OBJECT$ \ No newline at end of file diff --git a/idea/testData/checker/duplicateJvmSignature/fields/classObjectCopiedFieldObject.kt b/idea/testData/checker/duplicateJvmSignature/fields/classObjectCopiedFieldObject.kt index 75b1c68ea7c..4505579a855 100644 --- a/idea/testData/checker/duplicateJvmSignature/fields/classObjectCopiedFieldObject.kt +++ b/idea/testData/checker/duplicateJvmSignature/fields/classObjectCopiedFieldObject.kt @@ -11,11 +11,3 @@ class C { } } - -class D { - companion object A { - val `OBJECT$` = this - } - - val `OBJECT$` = D -} \ No newline at end of file diff --git a/idea/testData/resolve/referenceInJava/DeprecatedClassObjectField.java b/idea/testData/resolve/referenceInJava/DeprecatedClassObjectField.java deleted file mode 100644 index 0199370c25f..00000000000 --- a/idea/testData/resolve/referenceInJava/DeprecatedClassObjectField.java +++ /dev/null @@ -1,7 +0,0 @@ -public class ClassObjectField { - public static void foo() { - k.ClassWithClassObject.OBJECT$.f(); - } -} - -// REF: companion object of (k).ClassWithClassObject diff --git a/idea/tests/org/jetbrains/kotlin/idea/javaFacade/JetJavaFacadeTest.java b/idea/tests/org/jetbrains/kotlin/idea/javaFacade/JetJavaFacadeTest.java index 9d51a2cdad4..f41d01efdbd 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/javaFacade/JetJavaFacadeTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/javaFacade/JetJavaFacadeTest.java @@ -27,7 +27,6 @@ import org.jetbrains.kotlin.asJava.LightClassUtil; import org.jetbrains.kotlin.idea.test.JetLightCodeInsightFixtureTestCase; import org.jetbrains.kotlin.idea.test.JetLightProjectDescriptor; import org.jetbrains.kotlin.idea.test.PluginTestCaseBase; -import org.jetbrains.kotlin.load.java.JvmAbi; import org.jetbrains.kotlin.name.SpecialNames; import org.jetbrains.kotlin.psi.*; @@ -199,14 +198,6 @@ public class JetJavaFacadeTest extends JetLightCodeInsightFixtureTestCase { assertTrue(instance.hasModifierProperty(PsiModifier.STATIC)); assertTrue(instance.hasModifierProperty(PsiModifier.FINAL)); - PsiField deprecatedAccessor = theClass.findFieldByName(JvmAbi.DEPRECATED_COMPANION_OBJECT_FIELD, false); - assertNotNull(deprecatedAccessor); - assertEquals("foo.TheClass." + defaultCompanionObjectName, deprecatedAccessor.getType().getCanonicalText()); - assertTrue(deprecatedAccessor.hasModifierProperty(PsiModifier.PUBLIC)); - assertTrue(deprecatedAccessor.hasModifierProperty(PsiModifier.STATIC)); - assertTrue(deprecatedAccessor.hasModifierProperty(PsiModifier.FINAL)); - assertTrue(deprecatedAccessor.isDeprecated()); - PsiMethod[] methods = classObjectClass.findMethodsByName("getOut", false); assertEquals("java.io.PrintStream", methods[0].getReturnType().getCanonicalText()); diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInJavaTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInJavaTestGenerated.java index 2f28ae5f55d..4cf14ac99e5 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInJavaTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInJavaTestGenerated.java @@ -77,12 +77,6 @@ public class ReferenceResolveInJavaTestGenerated extends AbstractReferenceResolv doTest(fileName); } - @TestMetadata("DeprecatedClassObjectField.java") - public void testDeprecatedClassObjectField() throws Exception { - String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInJava/DeprecatedClassObjectField.java"); - doTest(fileName); - } - @TestMetadata("EnumEntry.java") public void testEnumEntry() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInJava/EnumEntry.java"); diff --git a/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/nestedClasses/annotations.txt b/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/nestedClasses/annotations.txt index 06d233ba572..c8d587fc057 100644 --- a/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/nestedClasses/annotations.txt +++ b/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/nestedClasses/annotations.txt @@ -6,5 +6,3 @@ m 1 0/SomeClass$Companion access$init$0 c 0 0/SomeClass$SomeInnerObject c 0 0/SomeClass$InnerClass c 0 0/SomeClass$NestedClass -a java.lang.Deprecated 2 -f 2 0/SomeClass OBJECT$ diff --git a/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/nestedClasses/parsed.txt b/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/nestedClasses/parsed.txt index 5611a2ca5d2..c22f8eb4807 100644 --- a/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/nestedClasses/parsed.txt +++ b/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/nestedClasses/parsed.txt @@ -1,4 +1,3 @@ -java.lang.Deprecated org.test.SomeClass OBJECT$ javax.inject.Named org.test.SomeClass.Companion javax.inject.Named org.test.SomeClass.InnerClass javax.inject.Named org.test.SomeClass.NestedClass diff --git a/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/platformStatic/annotations.txt b/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/platformStatic/annotations.txt index 4d9c66f1134..8ba2076e654 100644 --- a/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/platformStatic/annotations.txt +++ b/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/platformStatic/annotations.txt @@ -5,7 +5,5 @@ a kotlin.inline 1 m 1 0/SomeClass$Companion a a org.jetbrains.annotations.NotNull 2 m 2 0/SomeClass$Companion access$init$0 -a java.lang.Deprecated 3 -f 3 0/SomeClass OBJECT$ m 0 0/SomeClass a m 1 0/SomeClass a diff --git a/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/platformStatic/parsed.txt b/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/platformStatic/parsed.txt index 0cb4a1b4bed..004d4e6ea11 100644 --- a/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/platformStatic/parsed.txt +++ b/libraries/tools/kotlin-annotation-processing/src/test/resources/parse/platformStatic/parsed.txt @@ -1,4 +1,3 @@ -java.lang.Deprecated org.test.SomeClass OBJECT$ kotlin.inline org.test.SomeClass.Companion a kotlin.platform.platformStatic org.test.SomeClass.Companion a org.jetbrains.annotations.NotNull org.test.SomeClass.Companion access$init$0 \ No newline at end of file diff --git a/plugins/annotation-collector/testData/collectToFile/nestedClasses/annotations.txt b/plugins/annotation-collector/testData/collectToFile/nestedClasses/annotations.txt index 4183ec87fa3..036ab4d5eb6 100644 --- a/plugins/annotation-collector/testData/collectToFile/nestedClasses/annotations.txt +++ b/plugins/annotation-collector/testData/collectToFile/nestedClasses/annotations.txt @@ -5,4 +5,3 @@ c 0 0/SomeClass$SomeInnerObject c 0 0/SomeClass$InnerClass c 0 0/SomeClass$InnerClass$InnerClassInInnerClass c 0 0/SomeClass$NestedClass -f 0 0/SomeClass OBJECT$ diff --git a/plugins/annotation-collector/testData/collectToFile/platformStatic/annotations.txt b/plugins/annotation-collector/testData/collectToFile/platformStatic/annotations.txt index b8d64a800d4..51b1222d98d 100644 --- a/plugins/annotation-collector/testData/collectToFile/platformStatic/annotations.txt +++ b/plugins/annotation-collector/testData/collectToFile/platformStatic/annotations.txt @@ -3,7 +3,5 @@ p org.test 0 m 0 0/SomeClass$Companion a a kotlin.inline 1 m 1 0/SomeClass$Companion a -a java.lang.Deprecated 2 -f 2 0/SomeClass OBJECT$ m 0 0/SomeClass a m 1 0/SomeClass a