From 989fea3399f79fce3a0bc4802995b38cd9d21463 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Fri, 26 Feb 2021 10:13:02 +0100 Subject: [PATCH] Remove version requirements for -Xjvm-default=enable (1.2.40) and JvmFieldInInterface(1.2.70) --- .../serialization/JvmSerializerExtension.kt | 13 --------- .../backend/jvm/FirJvmSerializerExtension.kt | 27 ------------------- .../testData/versionRequirement/jvmDefault.kt | 8 ------ .../jvmFieldInInterfaceCompanion.kt | 9 ------- .../JvmVersionRequirementTest.kt | 18 ------------- 5 files changed, 75 deletions(-) delete mode 100644 compiler/testData/versionRequirement/jvmDefault.kt delete mode 100644 compiler/testData/versionRequirement/jvmFieldInInterfaceCompanion.kt diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/serialization/JvmSerializerExtension.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/serialization/JvmSerializerExtension.kt index 09d7469d516..d8afafe5362 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/serialization/JvmSerializerExtension.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/serialization/JvmSerializerExtension.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.codegen.createFreeFakeLocalPropertyDescriptor import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings.* import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.codegen.state.KotlinTypeMapperBase -import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.config.JvmDefaultMode import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.* @@ -32,7 +31,6 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils.isInterface import org.jetbrains.kotlin.resolve.descriptorUtil.classId import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyPrivateApi import org.jetbrains.kotlin.resolve.descriptorUtil.nonSourceAnnotations -import org.jetbrains.kotlin.resolve.jvm.annotations.hasJvmDefaultAnnotation import org.jetbrains.kotlin.resolve.jvm.requiresFunctionNameManglingForParameterTypes import org.jetbrains.kotlin.resolve.jvm.requiresFunctionNameManglingForReturnType import org.jetbrains.kotlin.serialization.DescriptorSerializer @@ -114,13 +112,6 @@ class JvmSerializerExtension @JvmOverloads constructor( versionRequirementTable: MutableVersionRequirementTable ) { if (isInterface(classDescriptor)) { - if (jvmDefaultMode == JvmDefaultMode.ENABLE && classDescriptor.unsubstitutedMemberScope.getContributedDescriptors().any { - it is CallableMemberDescriptor && it.hasJvmDefaultAnnotation() - }) { - builder.addVersionRequirement( - writeVersionRequirement(1, 2, 40, ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION, versionRequirementTable) - ) - } if (jvmDefaultMode == JvmDefaultMode.ALL_INCOMPATIBLE) { builder.addVersionRequirement( writeVersionRequirement(1, 4, 0, ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION, versionRequirementTable) @@ -280,10 +271,6 @@ class JvmSerializerExtension @JvmOverloads constructor( if (descriptor.isJvmFieldPropertyInInterfaceCompanion() && versionRequirementTable != null) { proto.setExtension(JvmProtoBuf.flags, JvmFlags.getPropertyFlags(true)) - - proto.addVersionRequirement( - writeVersionRequirement(1, 2, 70, ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION, versionRequirementTable) - ) } if (getter?.needsInlineParameterNullCheckRequirement() == true || setter?.needsInlineParameterNullCheckRequirement() == true) { diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt index 57f53a79d03..4e6c16008ab 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt @@ -32,7 +32,6 @@ import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil import org.jetbrains.kotlin.metadata.serialization.MutableVersionRequirementTable import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.protobuf.GeneratedMessageLite -import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_DEFAULT_FQ_NAME import org.jetbrains.kotlin.serialization.DescriptorSerializer import org.jetbrains.kotlin.types.AbstractTypeApproximator import org.jetbrains.org.objectweb.asm.Type @@ -108,22 +107,6 @@ class FirJvmSerializerExtension( versionRequirementTable: MutableVersionRequirementTable ) { if (klass is FirRegularClass && klass.classKind == ClassKind.INTERFACE) { - if (jvmDefaultMode == JvmDefaultMode.ENABLE && klass.declarations.any { - it is FirCallableMemberDeclaration<*> && it.annotations.any { annotationCall -> - val classId = annotationCall.annotationTypeRef.coneTypeSafe()?.classId - classId?.asSingleFqName() == JVM_DEFAULT_FQ_NAME - } - }) { - builder.addVersionRequirement( - DescriptorSerializer.writeVersionRequirement( - 1, - 2, - 40, - ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION, - versionRequirementTable - ) - ) - } if (jvmDefaultMode == JvmDefaultMode.ALL_INCOMPATIBLE) { builder.addVersionRequirement( DescriptorSerializer.writeVersionRequirement( @@ -261,16 +244,6 @@ class FirJvmSerializerExtension( if (property.isJvmFieldPropertyInInterfaceCompanion() && versionRequirementTable != null) { proto.setExtension(JvmProtoBuf.flags, JvmFlags.getPropertyFlags(true)) - - proto.addVersionRequirement( - DescriptorSerializer.writeVersionRequirement( - 1, - 2, - 70, - ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION, - versionRequirementTable - ) - ) } if (getter?.needsInlineParameterNullCheckRequirement() == true || setter?.needsInlineParameterNullCheckRequirement() == true) { diff --git a/compiler/testData/versionRequirement/jvmDefault.kt b/compiler/testData/versionRequirement/jvmDefault.kt deleted file mode 100644 index 81ea75f0429..00000000000 --- a/compiler/testData/versionRequirement/jvmDefault.kt +++ /dev/null @@ -1,8 +0,0 @@ -package test - -interface Base { - @JvmDefault - fun foo() {} -} - -interface Derived : Base diff --git a/compiler/testData/versionRequirement/jvmFieldInInterfaceCompanion.kt b/compiler/testData/versionRequirement/jvmFieldInInterfaceCompanion.kt deleted file mode 100644 index f73ec8cfa45..00000000000 --- a/compiler/testData/versionRequirement/jvmFieldInInterfaceCompanion.kt +++ /dev/null @@ -1,9 +0,0 @@ -package test - -interface Base { - companion object { - @Suppress("INAPPLICABLE_JVM_FIELD") - @JvmField - val foo = object : Base {} - } -} diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/JvmVersionRequirementTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/JvmVersionRequirementTest.kt index 4ce945f71b9..227032dc922 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/JvmVersionRequirementTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/JvmVersionRequirementTest.kt @@ -63,17 +63,6 @@ class JvmVersionRequirementTest : AbstractVersionRequirementTest() { ) ).moduleDescriptor - fun testJvmDefault() { - doTest( - VersionRequirement.Version(1, 2, 40), DeprecationLevel.ERROR, null, COMPILER_VERSION, null, - analysisFlags = mapOf(JvmAnalysisFlags.jvmDefaultMode to JvmDefaultMode.ENABLE), - fqNamesWithRequirements = listOf( - "test.Base", - "test.Derived" - ) - ) - } - fun testAllJvmDefault() { doTest( VersionRequirement.Version(1, 4, 0), DeprecationLevel.ERROR, null, COMPILER_VERSION, null, @@ -109,13 +98,6 @@ class JvmVersionRequirementTest : AbstractVersionRequirementTest() { ) } - fun testJvmFieldInInterfaceCompanion() { - doTest( - VersionRequirement.Version(1, 2, 70), DeprecationLevel.ERROR, null, COMPILER_VERSION, null, - fqNamesWithRequirements = listOf("test.Base.Companion.foo") - ) - } - fun testInlineParameterNullCheck() { doTest( VersionRequirement.Version(1, 3, 50), DeprecationLevel.ERROR, null, COMPILER_VERSION, null,