FIR: Rename classes properly in FirImplicitBodyResolve.kt
This commit is contained in:
+2
-2
@@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-9
@@ -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|()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user