diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt index 49646e58cb2..57e925ae0ef 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt @@ -7,15 +7,25 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.expressions.FirBody import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall +import org.jetbrains.kotlin.fir.transformSingle +import org.jetbrains.kotlin.fir.visitors.FirTransformer open class FirConstructorImpl( session: FirSession, psi: PsiElement?, final override val visibility: Visibility, - final override val delegatedConstructor: FirDelegatedConstructorCall?, + final override var delegatedConstructor: FirDelegatedConstructorCall?, body: FirBody? -) : FirAbstractFunction(session, psi, body), FirConstructor \ No newline at end of file +) : FirAbstractFunction(session, psi, body), FirConstructor { + + override fun transformChildren(transformer: FirTransformer, data: D): FirElement { + delegatedConstructor = delegatedConstructor?.transformSingle(transformer, data) + + return super.transformChildren(transformer, data) + } +} \ No newline at end of file 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 2d695948180..639daf96198 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 @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.types.FirType import org.jetbrains.kotlin.fir.types.FirTypeProjectionContainer import org.jetbrains.kotlin.fir.visitors.FirVisitor -interface FirDelegatedConstructorCall : FirCall, FirTypeProjectionContainer { +interface FirDelegatedConstructorCall : FirCall { // Do we need 'constructedType: FirType' here? val constructedType: FirType 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 0d9b21037ab..4408d935948 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 @@ -6,16 +6,22 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall +import org.jetbrains.kotlin.fir.transformSingle import org.jetbrains.kotlin.fir.types.FirType -import org.jetbrains.kotlin.fir.types.FirTypeProjection +import org.jetbrains.kotlin.fir.visitors.FirTransformer class FirDelegatedConstructorCallImpl( session: FirSession, psi: PsiElement?, - override val constructedType: FirType, + override var constructedType: FirType, override val isThis: Boolean ) : FirAbstractCall(session, psi), FirDelegatedConstructorCall { - override val typeArguments = mutableListOf() + override fun transformChildren(transformer: FirTransformer, data: D): FirElement { + constructedType = constructedType.transformSingle(transformer, data) + + return this + } } \ No newline at end of file