[FIR] Fix visibility for property accessors in raw fir common

This commit is contained in:
Ivan Kochurkin
2021-12-22 18:12:46 +03:00
committed by TeamCityServer
parent defb0cf611
commit 070e860669
4 changed files with 8 additions and 9 deletions
@@ -1,5 +1,5 @@
FILE: localDeclarationWithExpression.kt
private final? val nonLocalProperty: List<XXX>by LAZY_EXPRESSION
public? get(): <implicit> {
private get(): <implicit> {
^ D|/nonLocalProperty|.getValue#(Null(null), ::R|/nonLocalProperty|)
}
@@ -4,6 +4,6 @@ FILE: localDeclarationWithExpression.kt
localProperty#
}
)
public? get(): <implicit> {
private get(): <implicit> {
^ D|/nonLocalProperty|.getValue#(Null(null), ::R|/nonLocalProperty|)
}
@@ -441,14 +441,15 @@ fun <T> FirPropertyBuilder.generateAccessorsByDelegate(
if (getter == null || getter is FirDefaultPropertyAccessor) {
val annotations = getter?.annotations
val returnTarget = FirFunctionTarget(null, isLambda = false)
val getterStatus = getter?.status
getter = buildPropertyAccessor {
this.source = fakeSource
this.moduleData = moduleData
origin = FirDeclarationOrigin.Source
returnTypeRef = buildImplicitTypeRef()
isGetter = true
status = FirDeclarationStatusImpl(Visibilities.Unknown, Modality.FINAL).apply {
isInline = this@generateAccessorsByDelegate.getter?.status?.isInline ?: isInline
status = FirDeclarationStatusImpl(getterStatus?.visibility ?: Visibilities.Unknown, Modality.FINAL).apply {
isInline = getterStatus?.isInline ?: isInline
}
symbol = FirPropertyAccessorSymbol()
@@ -479,14 +480,15 @@ fun <T> FirPropertyBuilder.generateAccessorsByDelegate(
if (isVar && (setter == null || setter is FirDefaultPropertyAccessor)) {
val annotations = setter?.annotations
val parameterAnnotations = setter?.valueParameters?.firstOrNull()?.annotations
val setterStatus = setter?.status
setter = buildPropertyAccessor {
this.source = fakeSource
this.moduleData = moduleData
origin = FirDeclarationOrigin.Source
returnTypeRef = moduleData.session.builtinTypes.unitType
isGetter = false
status = FirDeclarationStatusImpl(Visibilities.Unknown, Modality.FINAL).apply {
isInline = this@generateAccessorsByDelegate.setter?.status?.isInline ?: isInline
status = FirDeclarationStatusImpl(setterStatus?.visibility ?: Visibilities.Unknown, Modality.FINAL).apply {
isInline = setterStatus?.isInline ?: isInline
}
val parameter = buildValueParameter {
source = fakeSource
@@ -1,7 +1,4 @@
// IGNORE_BACKEND_FIR: JVM_IR
// FIR status: Fail: property.set should cause IllegalCallableAccessException
// TARGET_BACKEND: JVM
// WITH_REFLECT
import kotlin.reflect.KProperty