[FIR] Make SyntheticPropertySymbol derived from FirAccessorSymbol
This commit is contained in:
+3
-3
@@ -106,12 +106,12 @@ class JavaClassEnhancementScope(
|
||||
return symbol
|
||||
}
|
||||
is FirSyntheticProperty -> {
|
||||
original as FirAccessorSymbol
|
||||
val accessorSymbol = firElement.symbol
|
||||
val enhancedFunctionSymbol = enhanceMethod(
|
||||
firElement.getter.delegate, original.accessorId, original.accessorId.callableName
|
||||
firElement.getter.delegate, accessorSymbol.accessorId, accessorSymbol.accessorId.callableName
|
||||
)
|
||||
val enhancedProperty = FirSyntheticProperty(
|
||||
session, name, FirAccessorSymbol(original.callableId, original.accessorId),
|
||||
session, name, FirAccessorSymbol(accessorSymbol.callableId, accessorSymbol.accessorId),
|
||||
enhancedFunctionSymbol.fir as FirSimpleFunction
|
||||
)
|
||||
return enhancedProperty.symbol
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ class JavaClassUseSiteMemberScope(
|
||||
syntheticPropertyName: Name,
|
||||
overrideCandidates: MutableSet<FirCallableSymbol<*>>,
|
||||
isGetter: Boolean
|
||||
): FirPropertySymbol? {
|
||||
): FirAccessorSymbol? {
|
||||
if (functionSymbol !is FirNamedFunctionSymbol) {
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.isStatic
|
||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.symbols.AccessorSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||
import org.jetbrains.kotlin.fir.symbols.SyntheticSymbol
|
||||
@@ -25,7 +24,7 @@ import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeFirstWord
|
||||
class SyntheticPropertySymbol(
|
||||
callableId: CallableId,
|
||||
override val accessorId: CallableId
|
||||
) : FirPropertySymbol(callableId), AccessorSymbol, SyntheticSymbol
|
||||
) : FirAccessorSymbol(callableId, accessorId), SyntheticSymbol
|
||||
|
||||
class FirSyntheticFunctionSymbol(
|
||||
callableId: CallableId
|
||||
|
||||
+3
-5
@@ -68,9 +68,7 @@ class FirClassSubstitutionScope(
|
||||
processor(field)
|
||||
}
|
||||
is FirAccessorSymbol -> {
|
||||
val accessor = fakeOverrideAccessors.getOrPut(original) {
|
||||
createFakeOverrideAccessor(original) as FirAccessorSymbol
|
||||
}
|
||||
val accessor = fakeOverrideAccessors.getOrPut(original) { createFakeOverrideAccessor(original) }
|
||||
processor(accessor)
|
||||
}
|
||||
else -> {
|
||||
@@ -197,7 +195,7 @@ class FirClassSubstitutionScope(
|
||||
return createFakeOverrideField(session, member, original, newReturnType)
|
||||
}
|
||||
|
||||
private fun createFakeOverrideAccessor(original: FirAccessorSymbol): FirPropertySymbol {
|
||||
private fun createFakeOverrideAccessor(original: FirAccessorSymbol): FirAccessorSymbol {
|
||||
val member = original.fir as FirSyntheticProperty
|
||||
|
||||
val returnType = typeCalculator.tryCalculateReturnType(member).type
|
||||
@@ -330,7 +328,7 @@ class FirClassSubstitutionScope(
|
||||
baseSymbol: FirAccessorSymbol,
|
||||
newReturnType: ConeKotlinType? = null,
|
||||
newParameterTypes: List<ConeKotlinType?>? = null
|
||||
): FirPropertySymbol {
|
||||
): FirAccessorSymbol {
|
||||
val functionSymbol = FirNamedFunctionSymbol(baseSymbol.accessorId)
|
||||
val function = createFakeOverrideFunction(
|
||||
functionSymbol, session, baseProperty.getter.delegate, null, newReturnType, newParameterTypes
|
||||
|
||||
+3
-3
@@ -13,9 +13,9 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||
import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
@@ -27,7 +27,7 @@ class FirSyntheticProperty(
|
||||
override val returnTypeRef: FirTypeRef,
|
||||
override val name: Name,
|
||||
override val isVar: Boolean,
|
||||
override val symbol: FirPropertySymbol,
|
||||
override val symbol: FirAccessorSymbol,
|
||||
override val status: FirDeclarationStatus,
|
||||
override val resolvePhase: FirResolvePhase,
|
||||
override val getter: FirSyntheticPropertyAccessor,
|
||||
@@ -40,7 +40,7 @@ class FirSyntheticProperty(
|
||||
constructor(
|
||||
session: FirSession,
|
||||
name: Name,
|
||||
symbol: FirPropertySymbol,
|
||||
symbol: FirAccessorSymbol,
|
||||
delegateGetter: FirSimpleFunction
|
||||
) : this(
|
||||
session, delegateGetter.returnTypeRef, name, false, symbol,
|
||||
|
||||
@@ -33,7 +33,7 @@ class FirConstructorSymbol(
|
||||
override val overriddenSymbol: FirConstructorSymbol? = null
|
||||
) : FirFunctionSymbol<FirConstructor>(callableId)
|
||||
|
||||
class FirAccessorSymbol(
|
||||
open class FirAccessorSymbol(
|
||||
callableId: CallableId,
|
||||
override val accessorId: CallableId
|
||||
) : FirPropertySymbol(callableId), AccessorSymbol
|
||||
|
||||
Reference in New Issue
Block a user