[FIR] FirSyntheticProperty: make constructor internal
Also, backingField can be moved into the body ^KT-61990
This commit is contained in:
committed by
Space Team
parent
6c1405cf99
commit
bb40ce0bfc
+13
-14
@@ -9,18 +9,18 @@ import org.jetbrains.kotlin.descriptors.Modality
|
|||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.copy
|
import org.jetbrains.kotlin.fir.copy
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
|
||||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.getDeprecationsProviderFromAccessors
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty
|
||||||
import org.jetbrains.kotlin.fir.java.symbols.FirJavaOverriddenSyntheticPropertySymbol
|
import org.jetbrains.kotlin.fir.java.symbols.FirJavaOverriddenSyntheticPropertySymbol
|
||||||
import org.jetbrains.kotlin.fir.nullableModuleData
|
import org.jetbrains.kotlin.fir.nullableModuleData
|
||||||
|
import org.jetbrains.kotlin.fir.scopes.FirDelegatingTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.fir.declarations.resolvePhase
|
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirDelegatingTypeScope
|
|
||||||
|
|
||||||
class JavaAnnotationSyntheticPropertiesScope(
|
class JavaAnnotationSyntheticPropertiesScope(
|
||||||
private val session: FirSession,
|
private val session: FirSession,
|
||||||
@@ -43,18 +43,17 @@ class JavaAnnotationSyntheticPropertiesScope(
|
|||||||
val symbol = syntheticPropertiesCache.getOrPut(functionSymbol) {
|
val symbol = syntheticPropertiesCache.getOrPut(functionSymbol) {
|
||||||
val callableId = CallableId(classId, name)
|
val callableId = CallableId(classId, name)
|
||||||
FirJavaOverriddenSyntheticPropertySymbol(callableId, callableId).also {
|
FirJavaOverriddenSyntheticPropertySymbol(callableId, callableId).also {
|
||||||
val accessor = FirSyntheticPropertyAccessor(function, isGetter = true, it)
|
buildSyntheticProperty {
|
||||||
FirSyntheticProperty(
|
moduleData = session.nullableModuleData ?: function.moduleData
|
||||||
session.nullableModuleData ?: function.moduleData,
|
this.name = name
|
||||||
name,
|
symbol = it
|
||||||
isVar = false,
|
status = function.status.copy(modality = Modality.FINAL)
|
||||||
it,
|
delegateGetter = function
|
||||||
function.status.copy(modality = Modality.FINAL),
|
deprecationsProvider = UnresolvedDeprecationProvider
|
||||||
function.resolvePhase,
|
}
|
||||||
accessor
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
processor(symbol)
|
processor(symbol)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.declarations.synthetic
|
package org.jetbrains.kotlin.fir.declarations.synthetic
|
||||||
|
|
||||||
import org.jetbrains.kotlin.KtSourceElement
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||||
@@ -20,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
|
|
||||||
class FirSyntheticProperty(
|
class FirSyntheticProperty @FirImplementationDetail internal constructor(
|
||||||
override val moduleData: FirModuleData,
|
override val moduleData: FirModuleData,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val isVar: Boolean,
|
override val isVar: Boolean,
|
||||||
@@ -29,7 +30,6 @@ class FirSyntheticProperty(
|
|||||||
resolvePhase: FirResolvePhase,
|
resolvePhase: FirResolvePhase,
|
||||||
override val getter: FirSyntheticPropertyAccessor,
|
override val getter: FirSyntheticPropertyAccessor,
|
||||||
override val setter: FirSyntheticPropertyAccessor? = null,
|
override val setter: FirSyntheticPropertyAccessor? = null,
|
||||||
override val backingField: FirBackingField? = null,
|
|
||||||
override val deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
|
override val deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
|
||||||
) : FirProperty() {
|
) : FirProperty() {
|
||||||
init {
|
init {
|
||||||
@@ -41,6 +41,8 @@ class FirSyntheticProperty(
|
|||||||
this.resolveState = resolvePhase.asResolveState()
|
this.resolveState = resolvePhase.asResolveState()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val backingField: FirBackingField? get() = null
|
||||||
|
|
||||||
override val returnTypeRef: FirTypeRef
|
override val returnTypeRef: FirTypeRef
|
||||||
get() = getter.returnTypeRef
|
get() = getter.returnTypeRef
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.declarations.synthetic
|
package org.jetbrains.kotlin.fir.declarations.synthetic
|
||||||
|
|
||||||
import org.jetbrains.kotlin.KtSourceElement
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.contracts.FirContractDescription
|
import org.jetbrains.kotlin.fir.contracts.FirContractDescription
|
||||||
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
|
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
|
||||||
@@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
|||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
|
|
||||||
class FirSyntheticPropertyAccessor(
|
class FirSyntheticPropertyAccessor @FirImplementationDetail internal constructor(
|
||||||
val delegate: FirSimpleFunction,
|
val delegate: FirSimpleFunction,
|
||||||
override val isGetter: Boolean,
|
override val isGetter: Boolean,
|
||||||
override val propertySymbol: FirPropertySymbol,
|
override val propertySymbol: FirPropertySymbol,
|
||||||
|
|||||||
+2
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.declarations.synthetic
|
package org.jetbrains.kotlin.fir.declarations.synthetic
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
|
import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
|
||||||
@@ -24,6 +25,7 @@ class FirSyntheticPropertyBuilder {
|
|||||||
var delegateSetter: FirSimpleFunction? = null
|
var delegateSetter: FirSimpleFunction? = null
|
||||||
|
|
||||||
|
|
||||||
|
@OptIn(FirImplementationDetail::class)
|
||||||
fun build(): FirSyntheticProperty = FirSyntheticProperty(
|
fun build(): FirSyntheticProperty = FirSyntheticProperty(
|
||||||
moduleData, name, isVar = delegateSetter != null, symbol = symbol,
|
moduleData, name, isVar = delegateSetter != null, symbol = symbol,
|
||||||
status = status ?: delegateGetter.status,
|
status = status ?: delegateGetter.status,
|
||||||
|
|||||||
Reference in New Issue
Block a user