FIR: Rename classes properly in FirImplicitBodyResolve.kt

This commit is contained in:
Denis Zharkov
2020-01-27 15:52:15 +03:00
parent 1cb18a73db
commit dd51d5065a
3 changed files with 19 additions and 13 deletions
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.resolve.transformers
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase.*
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitTypeBodyResolveTransformerAdapter2
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitTypeBodyResolveTransformerAdapter
import org.jetbrains.kotlin.fir.visitors.FirTransformer
// TODO: add FirSession parameter
@@ -20,7 +20,7 @@ fun FirResolvePhase.createTransformerByPhase(): FirTransformer<Nothing?> {
SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer()
TYPES -> FirTypeResolveTransformer()
STATUS -> FirStatusResolveTransformer()
IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveTransformerAdapter2()
IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveTransformerAdapter()
BODY_RESOLVE -> FirBodyResolveTransformerAdapter()
}
}
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.compose
@Deprecated("It is temp", level = DeprecationLevel.WARNING, replaceWith = ReplaceWith("TODO(\"что-то нормальное\")"))
class FirImplicitTypeBodyResolveTransformerAdapter2 : FirTransformer<Nothing?>() {
class FirImplicitTypeBodyResolveTransformerAdapter : FirTransformer<Nothing?>() {
private val scopeSession = ScopeSession()
private val implicitBodyResolveComputationSession = ImplicitBodyResolveComputationSession()
@@ -39,8 +39,8 @@ class FirImplicitTypeBodyResolveTransformerAdapter2 : FirTransformer<Nothing?>()
override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirFile> {
val session = file.session
scopeSession.returnTypeCalculator = MyReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession)
val transformer = MyFirBodyResolveTransformer(
scopeSession.returnTypeCalculator = ReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession)
val transformer = FirImplicitBodyResolveTransformer(
session,
scopeSession,
implicitBodyResolveComputationSession
@@ -84,7 +84,7 @@ private class FirApplyInferredDeclarationTypesTransformer(
}
}
private open class MyFirBodyResolveTransformer(
private open class FirImplicitBodyResolveTransformer(
session: FirSession,
scopeSession: ScopeSession,
private val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession
@@ -93,7 +93,7 @@ private open class MyFirBodyResolveTransformer(
phase = FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE,
implicitTypeOnly = true,
scopeSession = scopeSession,
returnTypeCalculator = MyReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession)
returnTypeCalculator = ReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession)
) {
override fun transformSimpleFunction(
simpleFunction: FirSimpleFunction,
@@ -139,7 +139,7 @@ private open class MyFirBodyResolveTransformer(
}
}
private class MyReturnTypeCalculatorWithJump(
private class ReturnTypeCalculatorWithJump(
private val session: FirSession,
private val scopeSession: ScopeSession,
private val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession
@@ -192,7 +192,7 @@ private class MyReturnTypeCalculatorWithJump(
)
}
val designation = (listOf(file) + outerClasses.filterNotNull().asReversed() + listOf(declaration))
val transformer = MyFirDesignatedBodyResolveTransformer(
val transformer = FirDesignatedBodyResolveTransformerForReturnTypeCalculator(
designation.iterator(),
file.session,
scopeSession,
@@ -210,12 +210,12 @@ private class MyReturnTypeCalculatorWithJump(
}
}
private class MyFirDesignatedBodyResolveTransformer(
private class FirDesignatedBodyResolveTransformerForReturnTypeCalculator(
private val designation: Iterator<FirElement>,
session: FirSession,
scopeSession: ScopeSession,
implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession
) : MyFirBodyResolveTransformer(
) : FirImplicitBodyResolveTransformer(
session,
scopeSession,
implicitBodyResolveComputationSession
@@ -5,7 +5,10 @@ FILE: localImplicitBodies.kt
super<R|kotlin/Any|>()
}
public final fun sss(): <ERROR TYPE REF: Cannot calculate return type (local class/object?)> {
public final fun sss(): <ERROR TYPE REF: Cannot calculate return type during full-body resolution (local class/object?): public final fun abc(): <implicit> {
^abc IntegerLiteral(1)
}
> {
^sss R?C|/anonymous.abc|()
}
@@ -15,5 +18,8 @@ FILE: localImplicitBodies.kt
}
lval g: <ERROR TYPE REF: Cannot calculate return type (local class/object?)> = R|<local>/x|.R?C|/anonymous.sss|()
lval g: <ERROR TYPE REF: Cannot calculate return type during full-body resolution (local class/object?): public final fun abc(): <implicit> {
^abc IntegerLiteral(1)
}
> = R|<local>/x|.R?C|/anonymous.sss|()
}