Fix modifiers generation for companion objects

when language verion is 1.3

 #KT-23002: Fixed
This commit is contained in:
Ilmir Usmanov
2018-02-22 18:46:03 +03:00
parent 30314d43d9
commit 07ec704228
7 changed files with 47 additions and 3 deletions
@@ -897,7 +897,15 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
deprecatedFieldForInvisibleCompanionObject &&
!properVisibilityForCompanionObjectInstanceField &&
(properFieldVisibilityFlag & (ACC_PRIVATE | ACC_PROTECTED)) != 0;
int fieldAccessFlags = ACC_PUBLIC | ACC_STATIC | ACC_FINAL;
boolean doNotGeneratePublic =
properVisibilityForCompanionObjectInstanceField && (properFieldVisibilityFlag & (ACC_PRIVATE | ACC_PROTECTED)) != 0;
int fieldAccessFlags;
if (doNotGeneratePublic) {
fieldAccessFlags = ACC_STATIC | ACC_FINAL;
}
else {
fieldAccessFlags = ACC_PUBLIC | ACC_STATIC | ACC_FINAL;
}
if (properVisibilityForCompanionObjectInstanceField) {
fieldAccessFlags |= properFieldVisibilityFlag;
}