[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.ReturnTypeCalculatorForFullBodyResolve
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.builder.buildResolvedTypeRef
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(
declaration: FirDeclaration,
block: () -> Unit = { declaration.acceptChildren(this, null) }
@@ -158,7 +158,7 @@ class FirTypeResolveTransformer(
}
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> {
@@ -26,12 +26,10 @@ class FirResolvedTypeRefImpl @FirImplementationDetail constructor(
) : FirResolvedTypeRef() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
delegatedTypeRef?.accept(visitor, data)
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedTypeRefImpl {
transformAnnotations(transformer, data)
delegatedTypeRef = delegatedTypeRef?.transformSingle(transformer, data)
return this
}
@@ -388,6 +388,9 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
impl(resolvedTypeRef) {
publicImplementation()
default("delegatedTypeRef") {
needAcceptAndTransform = false
}
}
impl(errorExpression) {