[IRFakeOverrides] Fix accessors visibilities
^KT-65801
This commit is contained in:
committed by
Space Team
parent
acee8da283
commit
c991535756
@@ -325,19 +325,24 @@ class IrFakeOverrideBuilder(
|
||||
compatibilityMode: Boolean
|
||||
) {
|
||||
val modality = determineModalityForFakeOverride(overridables)
|
||||
val visibility = findMemberWithMaxVisibility(overridables).override.visibility
|
||||
val maxVisibilityMember = findMemberWithMaxVisibility(overridables).override
|
||||
val mostSpecific = selectMostSpecificMember(overridables)
|
||||
|
||||
val fakeOverride = mostSpecific.override.apply {
|
||||
when (this) {
|
||||
is IrPropertyWithLateBinding -> {
|
||||
this.visibility = visibility
|
||||
this.visibility = maxVisibilityMember.visibility
|
||||
this.modality = modality
|
||||
this.getter = this.getter?.updateAccessorModalityAndVisibility(modality, visibility)
|
||||
this.setter = this.setter?.updateAccessorModalityAndVisibility(modality, visibility)
|
||||
maxVisibilityMember as IrProperty
|
||||
this.getter = this.getter?.updateAccessorModalityAndVisibility(
|
||||
modality, (maxVisibilityMember.getter ?: maxVisibilityMember).visibility
|
||||
)
|
||||
this.setter = this.setter?.updateAccessorModalityAndVisibility(
|
||||
modality, (maxVisibilityMember.setter ?: maxVisibilityMember).visibility
|
||||
)
|
||||
}
|
||||
is IrFunctionWithLateBinding -> {
|
||||
this.visibility = visibility
|
||||
this.visibility = maxVisibilityMember.visibility
|
||||
this.modality = modality
|
||||
}
|
||||
else -> error("Unexpected fake override kind: $this")
|
||||
|
||||
Reference in New Issue
Block a user