KT-1417 & KT-1398 proper access flags for backing fields

This commit is contained in:
Alex Tkachman
2012-02-24 09:57:30 +02:00
parent de3d5edb2a
commit 7f2a8100c4
4 changed files with 32 additions and 1 deletions
@@ -112,7 +112,14 @@ public abstract class ClassBodyCodegen {
//noinspection ConstantConditions
if (!(kind instanceof OwnerKind.DelegateKind) && state.getBindingContext().get(BindingContext.BACKING_FIELD_REQUIRED, propertyDescriptor)) {
v.newField(p, Opcodes.ACC_PRIVATE, p.getName(), state.getTypeMapper().mapType(propertyDescriptor.getOutType()).getDescriptor(), null, null);
int modifiers = JetTypeMapper.getAccessModifiers(propertyDescriptor, 0);
if (!propertyDescriptor.isVar()) {
modifiers |= Opcodes.ACC_FINAL;
}
if(state.getStandardLibrary().isVolatile(propertyDescriptor)) {
modifiers |= Opcodes.ACC_VOLATILE;
}
v.newField(p, modifiers, p.getName(), state.getTypeMapper().mapType(propertyDescriptor.getOutType()).getDescriptor(), null, null);
}
}
}