FIR call resolve: set values of dispatch & extension receivers
This commit is contained in:
@@ -20,6 +20,10 @@ interface FirQualifiedAccess : FirResolvable {
|
||||
|
||||
fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
|
||||
|
||||
fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
|
||||
|
||||
fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitQualifiedAccess(this, data)
|
||||
|
||||
|
||||
+8
@@ -27,6 +27,14 @@ class FirComponentCallImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
|
||||
return this
|
||||
}
|
||||
|
||||
override var calleeReference: FirNamedReference =
|
||||
FirSimpleNamedReference(psi, Name.identifier("component$componentIndex"))
|
||||
|
||||
|
||||
+8
@@ -42,6 +42,14 @@ class FirDelegatedConstructorCallImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
|
||||
return this
|
||||
}
|
||||
|
||||
override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(psi)
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
|
||||
|
||||
+18
@@ -20,6 +20,14 @@ interface FirModifiableQualifiedAccess<C : FirReference> : FirQualifiedAccess {
|
||||
|
||||
override var explicitReceiver: FirExpression?
|
||||
|
||||
override var dispatchReceiver: FirExpression
|
||||
get() = super.dispatchReceiver
|
||||
set(_) {}
|
||||
|
||||
override var extensionReceiver: FirExpression
|
||||
get() = super.extensionReceiver
|
||||
set(_) {}
|
||||
|
||||
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
|
||||
calleeReference = calleeReference.transformSingle(transformer, data)
|
||||
return this
|
||||
@@ -29,4 +37,14 @@ interface FirModifiableQualifiedAccess<C : FirReference> : FirQualifiedAccess {
|
||||
explicitReceiver = explicitReceiver?.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
|
||||
dispatchReceiver = dispatchReceiver.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
|
||||
extensionReceiver = extensionReceiver.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir.references
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirAbstractElement
|
||||
import org.jetbrains.kotlin.fir.FirThisReference
|
||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||
|
||||
class FirImplicitThisReference(override val boundSymbol: AbstractFirBasedSymbol<*>) : FirAbstractElement(null), FirThisReference {
|
||||
override val labelName: String?
|
||||
get() = null
|
||||
}
|
||||
Reference in New Issue
Block a user