[FIR] Remove transform/accept from FirResolvedTypeRef.delegateTypeRef

This commit is contained in:
Simon Ogorodnik
2021-01-18 19:59:12 +03:00
committed by Igor Yakovlev
parent 243f85a4d6
commit b7d3469819
4 changed files with 10 additions and 3 deletions
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.resolve.defaultType
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculatorForFullBodyResolve import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculatorForFullBodyResolve
import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.coneTypeSafe import org.jetbrains.kotlin.fir.types.coneTypeSafe
@@ -160,6 +161,11 @@ abstract class AbstractDiagnosticCollector(
} }
} }
override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: Nothing?) {
super.visitResolvedTypeRef(resolvedTypeRef, data)
resolvedTypeRef.delegatedTypeRef?.accept(this, data)
}
private inline fun visitWithDeclaration( private inline fun visitWithDeclaration(
declaration: FirDeclaration, declaration: FirDeclaration,
block: () -> Unit = { declaration.acceptChildren(this, null) } block: () -> Unit = { declaration.acceptChildren(this, null) }
@@ -158,7 +158,7 @@ class FirTypeResolveTransformer(
} }
override fun transformTypeRef(typeRef: FirTypeRef, data: Nothing?): CompositeTransformResult<FirTypeRef> { override fun transformTypeRef(typeRef: FirTypeRef, data: Nothing?): CompositeTransformResult<FirTypeRef> {
return typeResolverTransformer.transformTypeRef(typeRef, towerScope) return typeRef.transform(typeResolverTransformer, towerScope)
} }
override fun transformValueParameter(valueParameter: FirValueParameter, data: Nothing?): CompositeTransformResult<FirStatement> { override fun transformValueParameter(valueParameter: FirValueParameter, data: Nothing?): CompositeTransformResult<FirStatement> {
@@ -26,12 +26,10 @@ class FirResolvedTypeRefImpl @FirImplementationDetail constructor(
) : FirResolvedTypeRef() { ) : FirResolvedTypeRef() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
delegatedTypeRef?.accept(visitor, data)
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedTypeRefImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedTypeRefImpl {
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
delegatedTypeRef = delegatedTypeRef?.transformSingle(transformer, data)
return this return this
} }
@@ -388,6 +388,9 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
impl(resolvedTypeRef) { impl(resolvedTypeRef) {
publicImplementation() publicImplementation()
default("delegatedTypeRef") {
needAcceptAndTransform = false
}
} }
impl(errorExpression) { impl(errorExpression) {