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.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.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 import org.jetbrains.kotlin.fir.visitors.FirTransformer
// TODO: add FirSession parameter // TODO: add FirSession parameter
@@ -20,7 +20,7 @@ fun FirResolvePhase.createTransformerByPhase(): FirTransformer<Nothing?> {
SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer() SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer()
TYPES -> FirTypeResolveTransformer() TYPES -> FirTypeResolveTransformer()
STATUS -> FirStatusResolveTransformer() STATUS -> FirStatusResolveTransformer()
IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveTransformerAdapter2() IMPLICIT_TYPES_BODY_RESOLVE -> FirImplicitTypeBodyResolveTransformerAdapter()
BODY_RESOLVE -> FirBodyResolveTransformerAdapter() BODY_RESOLVE -> FirBodyResolveTransformerAdapter()
} }
} }
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.compose import org.jetbrains.kotlin.fir.visitors.compose
@Deprecated("It is temp", level = DeprecationLevel.WARNING, replaceWith = ReplaceWith("TODO(\"что-то нормальное\")")) @Deprecated("It is temp", level = DeprecationLevel.WARNING, replaceWith = ReplaceWith("TODO(\"что-то нормальное\")"))
class FirImplicitTypeBodyResolveTransformerAdapter2 : FirTransformer<Nothing?>() { class FirImplicitTypeBodyResolveTransformerAdapter : FirTransformer<Nothing?>() {
private val scopeSession = ScopeSession() private val scopeSession = ScopeSession()
private val implicitBodyResolveComputationSession = ImplicitBodyResolveComputationSession() private val implicitBodyResolveComputationSession = ImplicitBodyResolveComputationSession()
@@ -39,8 +39,8 @@ class FirImplicitTypeBodyResolveTransformerAdapter2 : FirTransformer<Nothing?>()
override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirFile> { override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirFile> {
val session = file.session val session = file.session
scopeSession.returnTypeCalculator = MyReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession) scopeSession.returnTypeCalculator = ReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession)
val transformer = MyFirBodyResolveTransformer( val transformer = FirImplicitBodyResolveTransformer(
session, session,
scopeSession, scopeSession,
implicitBodyResolveComputationSession implicitBodyResolveComputationSession
@@ -84,7 +84,7 @@ private class FirApplyInferredDeclarationTypesTransformer(
} }
} }
private open class MyFirBodyResolveTransformer( private open class FirImplicitBodyResolveTransformer(
session: FirSession, session: FirSession,
scopeSession: ScopeSession, scopeSession: ScopeSession,
private val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession private val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession
@@ -93,7 +93,7 @@ private open class MyFirBodyResolveTransformer(
phase = FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE, phase = FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE,
implicitTypeOnly = true, implicitTypeOnly = true,
scopeSession = scopeSession, scopeSession = scopeSession,
returnTypeCalculator = MyReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession) returnTypeCalculator = ReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession)
) { ) {
override fun transformSimpleFunction( override fun transformSimpleFunction(
simpleFunction: FirSimpleFunction, simpleFunction: FirSimpleFunction,
@@ -139,7 +139,7 @@ private open class MyFirBodyResolveTransformer(
} }
} }
private class MyReturnTypeCalculatorWithJump( private class ReturnTypeCalculatorWithJump(
private val session: FirSession, private val session: FirSession,
private val scopeSession: ScopeSession, private val scopeSession: ScopeSession,
private val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession private val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession
@@ -192,7 +192,7 @@ private class MyReturnTypeCalculatorWithJump(
) )
} }
val designation = (listOf(file) + outerClasses.filterNotNull().asReversed() + listOf(declaration)) val designation = (listOf(file) + outerClasses.filterNotNull().asReversed() + listOf(declaration))
val transformer = MyFirDesignatedBodyResolveTransformer( val transformer = FirDesignatedBodyResolveTransformerForReturnTypeCalculator(
designation.iterator(), designation.iterator(),
file.session, file.session,
scopeSession, scopeSession,
@@ -210,12 +210,12 @@ private class MyReturnTypeCalculatorWithJump(
} }
} }
private class MyFirDesignatedBodyResolveTransformer( private class FirDesignatedBodyResolveTransformerForReturnTypeCalculator(
private val designation: Iterator<FirElement>, private val designation: Iterator<FirElement>,
session: FirSession, session: FirSession,
scopeSession: ScopeSession, scopeSession: ScopeSession,
implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession
) : MyFirBodyResolveTransformer( ) : FirImplicitBodyResolveTransformer(
session, session,
scopeSession, scopeSession,
implicitBodyResolveComputationSession implicitBodyResolveComputationSession
@@ -5,7 +5,10 @@ FILE: localImplicitBodies.kt
super<R|kotlin/Any|>() 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|() ^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|()
} }