FIR: refactor/use properly FirAccessorSymbol & FirSyntheticPropertySymbol
This commit is contained in:
committed by
TeamCityServer
parent
41849c8beb
commit
c673c4cc91
+3
-3
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.declarations.utils.isStatic
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.references.*
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnmatchedTypeArgumentsError
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
|
||||
@@ -34,6 +33,7 @@ import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.fir.buildSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.KtFirPackageSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -89,9 +89,9 @@ internal object FirReferenceResolveHelper {
|
||||
}
|
||||
is FirResolvedNamedReference -> {
|
||||
val fir = when (val symbol = resolvedSymbol) {
|
||||
is FirSyntheticPropertySymbol -> {
|
||||
is FirAccessorSymbol -> {
|
||||
val syntheticProperty = symbol.fir as FirSyntheticProperty
|
||||
if (syntheticProperty.getter.delegate.symbol.callableId == symbol.accessorId) {
|
||||
if (syntheticProperty.getter.delegate.symbol.callableId == symbol.getterId) {
|
||||
syntheticProperty.getter.delegate
|
||||
} else {
|
||||
syntheticProperty.setter!!.delegate
|
||||
|
||||
+1
-1
@@ -154,7 +154,7 @@ class FirSignatureEnhancement(
|
||||
return buildSyntheticProperty {
|
||||
moduleData = this@FirSignatureEnhancement.moduleData
|
||||
this.name = name
|
||||
symbol = FirAccessorSymbol(accessorSymbol.callableId, accessorSymbol.accessorId)
|
||||
symbol = FirAccessorSymbol(accessorSymbol.callableId, accessorSymbol.getterId)
|
||||
delegateGetter = enhancedGetterSymbol.fir as FirSimpleFunction
|
||||
delegateSetter = enhancedSetterSymbol?.fir as FirSimpleFunction?
|
||||
status = firElement.status
|
||||
|
||||
+2
-2
@@ -75,8 +75,8 @@ class JavaClassUseSiteMemberScope(
|
||||
moduleData = session.moduleData
|
||||
name = property.name
|
||||
symbol = FirAccessorSymbol(
|
||||
accessorId = getterSymbol.callableId,
|
||||
callableId = CallableId(getterSymbol.callableId.packageName, getterSymbol.callableId.className, property.name)
|
||||
getterId = getterSymbol.callableId,
|
||||
propertyId = CallableId(getterSymbol.callableId.packageName, getterSymbol.callableId.className, property.name)
|
||||
)
|
||||
delegateGetter = getterSymbol.fir
|
||||
delegateSetter = setterSymbol?.fir
|
||||
|
||||
@@ -28,9 +28,9 @@ import org.jetbrains.kotlin.name.StandardClassIds
|
||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||
|
||||
class FirSyntheticPropertySymbol(
|
||||
callableId: CallableId,
|
||||
override val accessorId: CallableId
|
||||
) : FirAccessorSymbol(callableId, accessorId), SyntheticSymbol
|
||||
propertyId: CallableId,
|
||||
getterId: CallableId
|
||||
) : FirAccessorSymbol(propertyId, getterId), SyntheticSymbol
|
||||
|
||||
class FirSyntheticFunctionSymbol(
|
||||
callableId: CallableId
|
||||
@@ -114,8 +114,8 @@ class FirSyntheticPropertiesScope(
|
||||
moduleData = session.moduleData
|
||||
name = propertyName
|
||||
symbol = FirSyntheticPropertySymbol(
|
||||
accessorId = getterSymbol.callableId,
|
||||
callableId = CallableId(packageName, className, propertyName)
|
||||
getterId = getterSymbol.callableId,
|
||||
propertyId = CallableId(packageName, className, propertyName)
|
||||
)
|
||||
delegateGetter = getter
|
||||
delegateSetter = matchingSetter
|
||||
|
||||
+3
-3
@@ -435,7 +435,7 @@ object FirFakeOverrideGenerator {
|
||||
newSetterParameterTypes: List<ConeKotlinType?>?,
|
||||
fakeOverrideSubstitution: FakeOverrideSubstitution?
|
||||
): FirAccessorSymbol {
|
||||
val getterSymbol = FirNamedFunctionSymbol(baseSymbol.accessorId)
|
||||
val getterSymbol = FirNamedFunctionSymbol(baseSymbol.getterId)
|
||||
val getter = createSubstitutionOverrideFunction(
|
||||
getterSymbol,
|
||||
session,
|
||||
@@ -447,7 +447,7 @@ object FirFakeOverrideGenerator {
|
||||
newTypeParameters = null,
|
||||
fakeOverrideSubstitution = fakeOverrideSubstitution
|
||||
)
|
||||
val setterSymbol = FirNamedFunctionSymbol(baseSymbol.accessorId)
|
||||
val setterSymbol = FirNamedFunctionSymbol(baseSymbol.getterId)
|
||||
val baseSetter = baseProperty.setter
|
||||
val setter = if (baseSetter == null) null else createSubstitutionOverrideFunction(
|
||||
setterSymbol,
|
||||
@@ -463,7 +463,7 @@ object FirFakeOverrideGenerator {
|
||||
return buildSyntheticProperty {
|
||||
moduleData = session.moduleData
|
||||
name = baseProperty.name
|
||||
symbol = FirAccessorSymbol(baseSymbol.callableId, baseSymbol.accessorId)
|
||||
symbol = FirAccessorSymbol(baseSymbol.callableId, baseSymbol.getterId)
|
||||
delegateGetter = getter
|
||||
delegateSetter = setter
|
||||
status = baseProperty.status
|
||||
|
||||
@@ -81,9 +81,9 @@ class FirConstructorSymbol(
|
||||
}
|
||||
|
||||
open class FirAccessorSymbol(
|
||||
callableId: CallableId,
|
||||
open val accessorId: CallableId
|
||||
) : FirPropertySymbol(callableId)
|
||||
propertyId: CallableId,
|
||||
val getterId: CallableId
|
||||
) : FirPropertySymbol(propertyId)
|
||||
|
||||
// ------------------------ unnamed ------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user