FIR (rename): candidateOwner -> boundSymbol
This commit is contained in:
@@ -105,9 +105,9 @@ fun FirReference.toSymbol(declarationStorage: Fir2IrDeclarationStorage): IrSymbo
|
|||||||
return when (this) {
|
return when (this) {
|
||||||
is FirResolvedCallableReference -> coneSymbol.toSymbol(declarationStorage)
|
is FirResolvedCallableReference -> coneSymbol.toSymbol(declarationStorage)
|
||||||
is FirThisReference -> {
|
is FirThisReference -> {
|
||||||
when (val ownerSymbol = candidateOwner?.toSymbol(declarationStorage)) {
|
when (val boundSymbol = boundSymbol?.toSymbol(declarationStorage)) {
|
||||||
is IrClassSymbol -> ownerSymbol.owner.thisReceiver?.symbol
|
is IrClassSymbol -> boundSymbol.owner.thisReceiver?.symbol
|
||||||
is IrFunctionSymbol -> ownerSymbol.owner.extensionReceiverParameter?.symbol
|
is IrFunctionSymbol -> boundSymbol.owner.extensionReceiverParameter?.symbol
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -203,7 +203,7 @@ open class FirBodyResolveTransformer(
|
|||||||
val implicitReceivers =
|
val implicitReceivers =
|
||||||
if (labelName == null) implicitReceiverPerLabel.values() else implicitReceiverPerLabel[Name.identifier(labelName)]
|
if (labelName == null) implicitReceiverPerLabel.values() else implicitReceiverPerLabel[Name.identifier(labelName)]
|
||||||
val implicitReceiver = implicitReceivers.lastOrNull()
|
val implicitReceiver = implicitReceivers.lastOrNull()
|
||||||
callee.candidateOwner = implicitReceiver?.boundSymbol
|
callee.boundSymbol = implicitReceiver?.boundSymbol
|
||||||
qualifiedAccessExpression.resultType = FirResolvedTypeRefImpl(
|
qualifiedAccessExpression.resultType = FirResolvedTypeRefImpl(
|
||||||
null, implicitReceiver?.type ?: ConeKotlinErrorType("Unresolved this@$labelName"),
|
null, implicitReceiver?.type ?: ConeKotlinErrorType("Unresolved this@$labelName"),
|
||||||
emptyList()
|
emptyList()
|
||||||
|
|||||||
@@ -808,7 +808,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
|||||||
override fun visitThisReference(thisReference: FirThisReference) {
|
override fun visitThisReference(thisReference: FirThisReference) {
|
||||||
print("this")
|
print("this")
|
||||||
val labelName = thisReference.labelName
|
val labelName = thisReference.labelName
|
||||||
val symbol = thisReference.candidateOwner
|
val symbol = thisReference.boundSymbol
|
||||||
when {
|
when {
|
||||||
symbol != null -> print("@R|${symbol.render()}|")
|
symbol != null -> print("@R|${symbol.render()}|")
|
||||||
labelName != null -> print("@$labelName#")
|
labelName != null -> print("@$labelName#")
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
|||||||
interface FirThisReference : FirReference {
|
interface FirThisReference : FirReference {
|
||||||
val labelName: String?
|
val labelName: String?
|
||||||
|
|
||||||
val candidateOwner: AbstractFirBasedSymbol<*>? get() = null
|
val boundSymbol: AbstractFirBasedSymbol<*>? get() = null
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||||
visitor.visitThisReference(this, data)
|
visitor.visitThisReference(this, data)
|
||||||
|
|||||||
+1
-1
@@ -11,5 +11,5 @@ import org.jetbrains.kotlin.fir.FirThisReference
|
|||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
|
|
||||||
class FirExplicitThisReference(psi: PsiElement?, override val labelName: String?) : FirAbstractElement(psi), FirThisReference {
|
class FirExplicitThisReference(psi: PsiElement?, override val labelName: String?) : FirAbstractElement(psi), FirThisReference {
|
||||||
override var candidateOwner: AbstractFirBasedSymbol<*>? = null
|
override var boundSymbol: AbstractFirBasedSymbol<*>? = null
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user