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