KT-2279 Setter generated for abstract var is not abstract
#KT-2279 fixed
This commit is contained in:
@@ -251,6 +251,7 @@ public class PropertyCodegen {
|
|||||||
int modifiers = JetTypeMapper.getAccessModifiers(propertyDescriptor, 0);
|
int modifiers = JetTypeMapper.getAccessModifiers(propertyDescriptor, 0);
|
||||||
PropertySetterDescriptor setter = propertyDescriptor.getSetter();
|
PropertySetterDescriptor setter = propertyDescriptor.getSetter();
|
||||||
int flags = setter == null ? modifiers : JetTypeMapper.getAccessModifiers(setter, modifiers);
|
int flags = setter == null ? modifiers : JetTypeMapper.getAccessModifiers(setter, modifiers);
|
||||||
|
flags |= (propertyDescriptor.getModality() == Modality.ABSTRACT ? Opcodes.ACC_ABSTRACT : 0);
|
||||||
generateDefaultSetter(propertyDescriptor, flags, p);
|
generateDefaultSetter(propertyDescriptor, flags, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
abstract class ClassValAbstract {
|
abstract class ClassValAbstract {
|
||||||
abstract val a: Int
|
abstract var a: Int
|
||||||
|
|
||||||
class object {
|
class object {
|
||||||
val methods = (this as java.lang.Object).getClass()?.getClassLoader()?.loadClass("ClassValAbstract")?.getMethods()
|
val methods = (this as java.lang.Object).getClass()?.getClassLoader()?.loadClass("ClassValAbstract")?.getMethods()
|
||||||
@@ -227,9 +227,9 @@ public class PropertyGenTest extends CodegenTestCase {
|
|||||||
blackBoxFile("regressions/kt1398.kt");
|
blackBoxFile("regressions/kt1398.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testKt1482() throws Exception {
|
public void testKt1482_2279() throws Exception {
|
||||||
createEnvironmentWithFullJdk();
|
createEnvironmentWithFullJdk();
|
||||||
blackBoxFile("regressions/kt1482.kt");
|
blackBoxFile("regressions/kt1482_2279.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testKt1714() throws Exception {
|
public void testKt1714() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user