FIR: introduce synthetic property symbol hierarchy
This commit is contained in:
committed by
TeamCityServer
parent
c673c4cc91
commit
79b98f9173
+2
-3
@@ -11,8 +11,7 @@ import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
@@ -25,7 +24,7 @@ class FirSyntheticProperty(
|
||||
override val moduleData: FirModuleData,
|
||||
override val name: Name,
|
||||
override val isVar: Boolean,
|
||||
override val symbol: FirAccessorSymbol,
|
||||
override val symbol: FirSyntheticPropertySymbol,
|
||||
override val status: FirDeclarationStatus,
|
||||
override var resolvePhase: FirResolvePhase,
|
||||
override val getter: FirSyntheticPropertyAccessor,
|
||||
|
||||
+2
-2
@@ -9,13 +9,13 @@ import org.jetbrains.kotlin.fir.FirModuleData
|
||||
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
|
||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class FirSyntheticPropertyBuilder {
|
||||
lateinit var moduleData: FirModuleData
|
||||
lateinit var name: Name
|
||||
lateinit var symbol: FirAccessorSymbol
|
||||
lateinit var symbol: FirSyntheticPropertySymbol
|
||||
lateinit var delegateGetter: FirSimpleFunction
|
||||
lateinit var deprecation: DeprecationsPerUseSite
|
||||
|
||||
|
||||
@@ -80,10 +80,19 @@ class FirConstructorSymbol(
|
||||
get() = fir.delegatedConstructor?.isSuper ?: false
|
||||
}
|
||||
|
||||
open class FirAccessorSymbol(
|
||||
/**
|
||||
* This is a property symbol which is always bound to FirSyntheticProperty.
|
||||
*
|
||||
* Synthetic property symbol is effectively a combination of
|
||||
* a property (which never exists in sources) and
|
||||
* a getter which exists in sources and is either from Java or overrides another getter from Java.
|
||||
*/
|
||||
abstract class FirSyntheticPropertySymbol(
|
||||
propertyId: CallableId,
|
||||
val getterId: CallableId
|
||||
) : FirPropertySymbol(propertyId)
|
||||
) : FirPropertySymbol(propertyId) {
|
||||
abstract fun copy(): FirSyntheticPropertySymbol
|
||||
}
|
||||
|
||||
// ------------------------ unnamed ------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user