diff --git a/compiler/testData/compileKotlinAgainstKotlin/targetedJvmName.kt b/compiler/testData/compileKotlinAgainstKotlin/targetedJvmName.kt new file mode 100644 index 00000000000..3ae0ab843ff --- /dev/null +++ b/compiler/testData/compileKotlinAgainstKotlin/targetedJvmName.kt @@ -0,0 +1,15 @@ +// IGNORE_BACKEND: NATIVE +// FILE: A.kt +package lib + +@set:JvmName("renamedSetFoo") +@get:JvmName("renamedGetFoo") +var foo = "not set" + +// FILE: B.kt +import lib.* + +fun box(): String { + foo = "OK" + return foo +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java index 6ce011f1092..01e7ad364a1 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java @@ -240,6 +240,12 @@ public class CompileKotlinAgainstKotlinTestGenerated extends AbstractCompileKotl doTest(fileName); } + @TestMetadata("targetedJvmName.kt") + public void testTargetedJvmName() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/compileKotlinAgainstKotlin/targetedJvmName.kt"); + doTest(fileName); + } + @TestMetadata("typeAliasesKt13181.kt") public void testTypeAliasesKt13181() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/compileKotlinAgainstKotlin/typeAliasesKt13181.kt"); diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt index d5c21da4904..b72b0293fb0 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt @@ -75,10 +75,11 @@ class MemberDeserializer(private val c: DeserializationContext) { val isNotDefault = proto.hasGetterFlags() && Flags.IS_NOT_DEFAULT.get(getterFlags) val isExternal = proto.hasGetterFlags() && Flags.IS_EXTERNAL_ACCESSOR.get(getterFlags) val isInline = proto.hasGetterFlags() && Flags.IS_INLINE_ACCESSOR.get(getterFlags) + val annotations = getAnnotations(proto, getterFlags, AnnotatedCallableKind.PROPERTY_GETTER) val getter = if (isNotDefault) { PropertyGetterDescriptorImpl( property, - getAnnotations(proto, getterFlags, AnnotatedCallableKind.PROPERTY_GETTER), + annotations, Deserialization.modality(Flags.MODALITY.get(getterFlags)), Deserialization.visibility(Flags.VISIBILITY.get(getterFlags)), /* isDefault = */ !isNotDefault, @@ -88,7 +89,7 @@ class MemberDeserializer(private val c: DeserializationContext) { ) } else { - DescriptorFactory.createDefaultGetter(property, Annotations.EMPTY) + DescriptorFactory.createDefaultGetter(property, annotations) } getter.initialize(property.returnType) getter @@ -102,10 +103,11 @@ class MemberDeserializer(private val c: DeserializationContext) { val isNotDefault = proto.hasSetterFlags() && Flags.IS_NOT_DEFAULT.get(setterFlags) val isExternal = proto.hasSetterFlags() && Flags.IS_EXTERNAL_ACCESSOR.get(setterFlags) val isInline = proto.hasGetterFlags() && Flags.IS_INLINE_ACCESSOR.get(setterFlags) + val annotations = getAnnotations(proto, setterFlags, AnnotatedCallableKind.PROPERTY_SETTER) if (isNotDefault) { val setter = PropertySetterDescriptorImpl( property, - getAnnotations(proto, setterFlags, AnnotatedCallableKind.PROPERTY_SETTER), + annotations, Deserialization.modality(Flags.MODALITY.get(setterFlags)), Deserialization.visibility(Flags.VISIBILITY.get(setterFlags)), /* isDefault = */ !isNotDefault, @@ -121,7 +123,7 @@ class MemberDeserializer(private val c: DeserializationContext) { setter } else { - DescriptorFactory.createDefaultSetter(property, Annotations.EMPTY) + DescriptorFactory.createDefaultSetter(property, annotations) } } else {