From 505cb37052a31bffa3cc56d53fcdf0e0b52b1c1f Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Fri, 25 Sep 2015 16:13:31 +0300 Subject: [PATCH] Generate `deprecated` flag on getter of const val's --- .../org/jetbrains/kotlin/codegen/AsmUtil.java | 3 +++ .../bytecodeText/constValsGetterDeprecated.kt | 19 +++++++++++++++++++ .../codegen/BytecodeTextTestGenerated.java | 6 ++++++ 3 files changed, 28 insertions(+) create mode 100644 compiler/testData/codegen/bytecodeText/constValsGetterDeprecated.kt diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index 1b093825447..a1847ab7194 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -288,6 +288,9 @@ public class AsmUtil { public static int getDeprecatedAccessFlag(@NotNull MemberDescriptor descriptor) { if (descriptor instanceof PropertyAccessorDescriptor) { + if (((PropertyAccessorDescriptor) descriptor).getCorrespondingProperty().isConst()) { + return ACC_DEPRECATED; + } return KotlinBuiltIns.isDeprecated(descriptor) ? ACC_DEPRECATED : getDeprecatedAccessFlag(((PropertyAccessorDescriptor) descriptor).getCorrespondingProperty()); diff --git a/compiler/testData/codegen/bytecodeText/constValsGetterDeprecated.kt b/compiler/testData/codegen/bytecodeText/constValsGetterDeprecated.kt new file mode 100644 index 00000000000..b8a8e8e62ca --- /dev/null +++ b/compiler/testData/codegen/bytecodeText/constValsGetterDeprecated.kt @@ -0,0 +1,19 @@ +const val CONST_VAL = 1 + +object A { + const val CONST_VAL = 2 +} + +class B { + companion object { + const val CONST_VAL = 2 + } +} + +/* + One DEPRECATED is for _DefaultPackage + One is for _DefaultPackage.getCONST_VAL + 3 others are for getCONST_VAL +*/ + +// 5 DEPRECATED \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java index c7f0cbeadeb..8595cda156a 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java @@ -95,6 +95,12 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest { doTest(fileName); } + @TestMetadata("constValsGetterDeprecated.kt") + public void testConstValsGetterDeprecated() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/constValsGetterDeprecated.kt"); + doTest(fileName); + } + @TestMetadata("defaultDelegation.kt") public void testDefaultDelegation() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/defaultDelegation.kt");