[FIR] Fix visibility for property accessors in raw fir common
This commit is contained in:
committed by
TeamCityServer
parent
defb0cf611
commit
070e860669
+1
-1
@@ -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|)
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -4,6 +4,6 @@ FILE: localDeclarationWithExpression.kt
|
||||
localProperty#
|
||||
}
|
||||
)
|
||||
public? get(): <implicit> {
|
||||
private get(): <implicit> {
|
||||
^ D|/nonLocalProperty|.getValue#(Null(null), ::R|/nonLocalProperty|)
|
||||
}
|
||||
|
||||
+6
-4
@@ -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
|
||||
|
||||
-3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user