KT-29144 Interface companion object field should always be ACC_PUBLIC
This commit is contained in:
@@ -795,16 +795,14 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
|||||||
!properVisibilityForCompanionObjectInstanceField &&
|
!properVisibilityForCompanionObjectInstanceField &&
|
||||||
(hasPrivateOrProtectedProperVisibility || hasPackagePrivateProperVisibility ||
|
(hasPrivateOrProtectedProperVisibility || hasPackagePrivateProperVisibility ||
|
||||||
isNonIntrinsicPrivateCompanionObjectInInterface(companionObjectDescriptor));
|
isNonIntrinsicPrivateCompanionObjectInInterface(companionObjectDescriptor));
|
||||||
boolean doNotGeneratePublic =
|
boolean fieldIsForcedToBePublic =
|
||||||
properVisibilityForCompanionObjectInstanceField && hasPrivateOrProtectedProperVisibility;
|
JvmCodegenUtil.isJvmInterface(descriptor) ||
|
||||||
int fieldAccessFlags;
|
!properVisibilityForCompanionObjectInstanceField;
|
||||||
if (doNotGeneratePublic) {
|
int fieldAccessFlags = ACC_STATIC | ACC_FINAL;
|
||||||
fieldAccessFlags = ACC_STATIC | ACC_FINAL;
|
if (fieldIsForcedToBePublic) {
|
||||||
|
fieldAccessFlags |= ACC_PUBLIC;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fieldAccessFlags = ACC_PUBLIC | ACC_STATIC | ACC_FINAL;
|
|
||||||
}
|
|
||||||
if (properVisibilityForCompanionObjectInstanceField) {
|
|
||||||
fieldAccessFlags |= properFieldVisibilityFlag;
|
fieldAccessFlags |= properFieldVisibilityFlag;
|
||||||
}
|
}
|
||||||
if (fieldShouldBeDeprecated) {
|
if (fieldShouldBeDeprecated) {
|
||||||
|
|||||||
Reference in New Issue
Block a user