Lateinit property backing field now inherits visibility from the property setter

This commit is contained in:
Mikhail Glukhikh
2015-12-22 19:14:32 +03:00
parent ebda21c68a
commit f56dc722d9
5 changed files with 55 additions and 0 deletions
@@ -311,6 +311,7 @@ public class PropertyCodegen {
FieldOwnerContext backingFieldContext = context;
boolean takeVisibilityFromDescriptor = propertyDescriptor.isLateInit() || propertyDescriptor.isConst();
boolean takeVisibilityFromSetter = propertyDescriptor.isLateInit() && propertyDescriptor.getSetter() != null;
if (AsmUtil.isInstancePropertyWithStaticBackingField(propertyDescriptor) ) {
modifiers |= ACC_STATIC;
@@ -338,6 +339,10 @@ public class PropertyCodegen {
modifiers |= ACC_DEPRECATED;
}
}
else if (takeVisibilityFromSetter) {
// For lateinits, we take visibility from setter, if any
modifiers |= getVisibilityAccessFlag(propertyDescriptor.getSetter());
}
else if (takeVisibilityFromDescriptor) {
modifiers |= getVisibilityAccessFlag(propertyDescriptor);
}