From 95249099eb38873932ec8ed2b3f7665deddcf6af Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Wed, 20 Jun 2012 19:15:41 +0400 Subject: [PATCH] KT-2279 Setter generated for abstract var is not abstract #KT-2279 fixed --- .../src/org/jetbrains/jet/codegen/PropertyCodegen.java | 1 + .../codegen/regressions/{kt1482.kt => kt1482_2279.kt} | 6 +++--- .../tests/org/jetbrains/jet/codegen/PropertyGenTest.java | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) rename compiler/testData/codegen/regressions/{kt1482.kt => kt1482_2279.kt} (80%) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java index 0bd7d0482aa..b1fc165caaa 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java @@ -251,6 +251,7 @@ public class PropertyCodegen { int modifiers = JetTypeMapper.getAccessModifiers(propertyDescriptor, 0); PropertySetterDescriptor setter = propertyDescriptor.getSetter(); int flags = setter == null ? modifiers : JetTypeMapper.getAccessModifiers(setter, modifiers); + flags |= (propertyDescriptor.getModality() == Modality.ABSTRACT ? Opcodes.ACC_ABSTRACT : 0); generateDefaultSetter(propertyDescriptor, flags, p); } diff --git a/compiler/testData/codegen/regressions/kt1482.kt b/compiler/testData/codegen/regressions/kt1482_2279.kt similarity index 80% rename from compiler/testData/codegen/regressions/kt1482.kt rename to compiler/testData/codegen/regressions/kt1482_2279.kt index b8c3a98e42f..18e476bf63d 100644 --- a/compiler/testData/codegen/regressions/kt1482.kt +++ b/compiler/testData/codegen/regressions/kt1482_2279.kt @@ -1,5 +1,5 @@ abstract class ClassValAbstract { - abstract val a: Int + abstract var a: Int class object { val methods = (this as java.lang.Object).getClass()?.getClassLoader()?.loadClass("ClassValAbstract")?.getMethods() @@ -8,11 +8,11 @@ abstract class ClassValAbstract { fun box() : String { for(m in ClassValAbstract.methods) { - if(m.sure().getName() == "getA") { + if (m.sure().getName() == "getA") { if(m.sure().getModifiers() != 1025) return "get failed" } - if(m.sure().getName() == "setA") { + if (m.sure().getName() == "setA") { if(m.sure().getModifiers() != 1025) return "set failed" } diff --git a/compiler/tests/org/jetbrains/jet/codegen/PropertyGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/PropertyGenTest.java index 30322942667..c9be589ac1d 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/PropertyGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/PropertyGenTest.java @@ -227,9 +227,9 @@ public class PropertyGenTest extends CodegenTestCase { blackBoxFile("regressions/kt1398.kt"); } - public void testKt1482() throws Exception { + public void testKt1482_2279() throws Exception { createEnvironmentWithFullJdk(); - blackBoxFile("regressions/kt1482.kt"); + blackBoxFile("regressions/kt1482_2279.kt"); } public void testKt1714() throws Exception {