FIR resolve phases: set BODY_RESOLVE phased properly
Before this commit, we never set this phase to declaration or file
This commit is contained in:
+1
-1
@@ -28,7 +28,7 @@ abstract class FirAbstractPhaseTransformer<D>(
|
|||||||
|
|
||||||
open val <D> AbstractFirBasedSymbol<D>.phasedFir: D where D : FirDeclaration, D : FirSymbolOwner<D>
|
open val <D> AbstractFirBasedSymbol<D>.phasedFir: D where D : FirDeclaration, D : FirSymbolOwner<D>
|
||||||
get() {
|
get() {
|
||||||
val requiredPhase = transformerPhase.prev
|
val requiredPhase = transformerPhase.requiredToLaunch
|
||||||
return phasedFir(session, requiredPhase)
|
return phasedFir(session, requiredPhase)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@ abstract class FirAbstractBodyResolveTransformer(phase: FirResolvePhase) : FirAb
|
|||||||
|
|
||||||
final override val <D> AbstractFirBasedSymbol<D>.phasedFir: D where D : FirDeclaration, D : FirSymbolOwner<D>
|
final override val <D> AbstractFirBasedSymbol<D>.phasedFir: D where D : FirDeclaration, D : FirSymbolOwner<D>
|
||||||
get() {
|
get() {
|
||||||
val requiredPhase = transformerPhase.prev
|
val requiredPhase = transformerPhase.requiredToLaunch
|
||||||
return phasedFir(session, requiredPhase)
|
return phasedFir(session, requiredPhase)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -73,10 +73,9 @@ class FirBodyResolveTransformerAdapter : FirTransformer<Nothing?>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirFile> {
|
override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult<FirFile> {
|
||||||
// Despite of real phase is EXPRESSIONS, we state IMPLICIT_TYPES here, because DECLARATIONS previous phase is OK for us
|
|
||||||
val transformer = FirBodyResolveTransformer(
|
val transformer = FirBodyResolveTransformer(
|
||||||
file.session,
|
file.session,
|
||||||
phase = FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE,
|
phase = FirResolvePhase.BODY_RESOLVE,
|
||||||
implicitTypeOnly = false,
|
implicitTypeOnly = false,
|
||||||
scopeSession = scopeSession
|
scopeSession = scopeSession
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ enum class FirResolvePhase {
|
|||||||
IMPLICIT_TYPES_BODY_RESOLVE,
|
IMPLICIT_TYPES_BODY_RESOLVE,
|
||||||
BODY_RESOLVE;
|
BODY_RESOLVE;
|
||||||
|
|
||||||
val prev: FirResolvePhase get() = values()[ordinal - 1]
|
val requiredToLaunch: FirResolvePhase get() = if (this == BODY_RESOLVE) STATUS else values()[ordinal - 1]
|
||||||
|
|
||||||
val next: FirResolvePhase get() = values()[ordinal + 1]
|
val next: FirResolvePhase get() = values()[ordinal + 1]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user