diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirDelegatedConstructorCall.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirDelegatedConstructorCall.kt index 294ae825bb3..daf572502eb 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirDelegatedConstructorCall.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirDelegatedConstructorCall.kt @@ -5,10 +5,11 @@ package org.jetbrains.kotlin.fir.expressions +import org.jetbrains.kotlin.fir.VisitedSupertype import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.FirVisitor -interface FirDelegatedConstructorCall : FirCall { +interface FirDelegatedConstructorCall : @VisitedSupertype FirCall, FirQualifiedAccess { // Do we need 'constructedType: FirType' here? val constructedTypeRef: FirTypeRef @@ -22,6 +23,7 @@ interface FirDelegatedConstructorCall : FirCall { override fun acceptChildren(visitor: FirVisitor, data: D) { constructedTypeRef.accept(visitor, data) - super.acceptChildren(visitor, data) + calleeReference.accept(visitor, data) + super.acceptChildren(visitor, data) } } \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt index c11e804cbab..19f0bdce48f 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt @@ -7,8 +7,12 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirReference import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall +import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess +import org.jetbrains.kotlin.fir.references.FirExplicitSuperReference +import org.jetbrains.kotlin.fir.references.FirExplicitThisReference import org.jetbrains.kotlin.fir.transformSingle import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.FirTransformer @@ -19,8 +23,17 @@ class FirDelegatedConstructorCallImpl( override var constructedTypeRef: FirTypeRef, override val isThis: Boolean ) : FirAbstractCall(session, psi), FirDelegatedConstructorCall { + override var calleeReference: FirReference = + if (isThis) FirExplicitThisReference(session, psi, null) else FirExplicitSuperReference(session, psi, constructedTypeRef) + + override fun transformCalleeReference(transformer: FirTransformer, data: D): FirQualifiedAccess { + calleeReference = calleeReference.transformSingle(transformer, data) + return this + } + override fun transformChildren(transformer: FirTransformer, data: D): FirElement { constructedTypeRef = constructedTypeRef.transformSingle(transformer, data) + calleeReference = calleeReference.transformSingle(transformer, data) return super.transformChildren(transformer, data) }