[FIR] runAllPhasesForLocalClass: drop redundant annotations transformation
Such annotations will be transformed as usual in `FirDeclarationsResolveTransformer.transformRegularClass`. Also, this transformation doesn't have a corresponding class as a container ^KT-63042
This commit is contained in:
committed by
Space Team
parent
a7afd1fe01
commit
6f0d52f991
+4
-3
@@ -660,7 +660,7 @@ open class FirDeclarationsResolveTransformer(
|
|||||||
context.withContainingClass(regularClass) {
|
context.withContainingClass(regularClass) {
|
||||||
val isLocal = regularClass.isLocal
|
val isLocal = regularClass.isLocal
|
||||||
if (isLocal && regularClass !in context.targetedLocalClasses) {
|
if (isLocal && regularClass !in context.targetedLocalClasses) {
|
||||||
return regularClass.runAllPhasesForLocalClass(transformer, components, data, transformer.firResolveContextCollector)
|
return regularClass.runAllPhasesForLocalClass(components, data, transformer.firResolveContextCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isLocal || !implicitTypeOnly) {
|
if (isLocal || !implicitTypeOnly) {
|
||||||
@@ -700,7 +700,7 @@ open class FirDeclarationsResolveTransformer(
|
|||||||
override fun transformTypeAlias(typeAlias: FirTypeAlias, data: ResolutionMode): FirTypeAlias = whileAnalysing(session, typeAlias) {
|
override fun transformTypeAlias(typeAlias: FirTypeAlias, data: ResolutionMode): FirTypeAlias = whileAnalysing(session, typeAlias) {
|
||||||
if (implicitTypeOnly) return typeAlias
|
if (implicitTypeOnly) return typeAlias
|
||||||
if (typeAlias.isLocal && typeAlias !in context.targetedLocalClasses) {
|
if (typeAlias.isLocal && typeAlias !in context.targetedLocalClasses) {
|
||||||
return typeAlias.runAllPhasesForLocalClass(transformer, components, data, transformer.firResolveContextCollector)
|
return typeAlias.runAllPhasesForLocalClass(components, data, transformer.firResolveContextCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(PrivateForInline::class)
|
@OptIn(PrivateForInline::class)
|
||||||
@@ -772,8 +772,9 @@ open class FirDeclarationsResolveTransformer(
|
|||||||
data: ResolutionMode
|
data: ResolutionMode
|
||||||
): FirAnonymousObject = whileAnalysing(session, anonymousObject) {
|
): FirAnonymousObject = whileAnalysing(session, anonymousObject) {
|
||||||
if (anonymousObject !in context.targetedLocalClasses) {
|
if (anonymousObject !in context.targetedLocalClasses) {
|
||||||
return anonymousObject.runAllPhasesForLocalClass(transformer, components, data, transformer.firResolveContextCollector)
|
return anonymousObject.runAllPhasesForLocalClass(components, data, transformer.firResolveContextCollector)
|
||||||
}
|
}
|
||||||
|
|
||||||
require(anonymousObject.controlFlowGraphReference == null)
|
require(anonymousObject.controlFlowGraphReference == null)
|
||||||
val buildGraph = !implicitTypeOnly
|
val buildGraph = !implicitTypeOnly
|
||||||
dataFlowAnalyzer.enterClass(anonymousObject, buildGraph)
|
dataFlowAnalyzer.enterClass(anonymousObject, buildGraph)
|
||||||
|
|||||||
+3
-4
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -8,14 +8,13 @@ package org.jetbrains.kotlin.fir.resolve.transformers.body.resolve
|
|||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.resolve.ResolutionMode
|
import org.jetbrains.kotlin.fir.resolve.ResolutionMode
|
||||||
import org.jetbrains.kotlin.fir.resolve.createCurrentScopeList
|
import org.jetbrains.kotlin.fir.resolve.createCurrentScopeList
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.plugin.runCompilerRequiredAnnotationsResolvePhaseForLocalClass
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.plugin.runCompanionGenerationPhaseForLocalClass
|
import org.jetbrains.kotlin.fir.resolve.transformers.plugin.runCompanionGenerationPhaseForLocalClass
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.transformers.plugin.runCompilerRequiredAnnotationsResolvePhaseForLocalClass
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.runStatusResolveForLocalClass
|
import org.jetbrains.kotlin.fir.resolve.transformers.runStatusResolveForLocalClass
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.runSupertypeResolvePhaseForLocalClass
|
import org.jetbrains.kotlin.fir.resolve.transformers.runSupertypeResolvePhaseForLocalClass
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.runTypeResolvePhaseForLocalClass
|
import org.jetbrains.kotlin.fir.resolve.transformers.runTypeResolvePhaseForLocalClass
|
||||||
|
|
||||||
fun <F : FirClassLikeDeclaration> F.runAllPhasesForLocalClass(
|
fun <F : FirClassLikeDeclaration> F.runAllPhasesForLocalClass(
|
||||||
transformer: FirAbstractBodyResolveTransformer,
|
|
||||||
components: FirAbstractBodyResolveTransformer.BodyResolveTransformerComponents,
|
components: FirAbstractBodyResolveTransformer.BodyResolveTransformerComponents,
|
||||||
resolutionMode: ResolutionMode,
|
resolutionMode: ResolutionMode,
|
||||||
firResolveContextCollector: FirResolveContextCollector?
|
firResolveContextCollector: FirResolveContextCollector?
|
||||||
@@ -24,7 +23,7 @@ fun <F : FirClassLikeDeclaration> F.runAllPhasesForLocalClass(
|
|||||||
if (this is FirRegularClass) {
|
if (this is FirRegularClass) {
|
||||||
components.context.storeClassIfNotNested(this, components.session)
|
components.context.storeClassIfNotNested(this, components.session)
|
||||||
}
|
}
|
||||||
this.transformAnnotations(transformer, ResolutionMode.ContextIndependent)
|
|
||||||
val localClassesNavigationInfo = collectLocalClassesNavigationInfo()
|
val localClassesNavigationInfo = collectLocalClassesNavigationInfo()
|
||||||
|
|
||||||
for ((nested, outer) in localClassesNavigationInfo.parentForClass) {
|
for ((nested, outer) in localClassesNavigationInfo.parentForClass) {
|
||||||
|
|||||||
Reference in New Issue
Block a user