mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-04-20 00:21:29 +00:00
FIR: Do not store nested local classes to local scopes
This commit is contained in:
@@ -159,7 +159,8 @@ abstract class FirAbstractBodyResolveTransformer(phase: FirResolvePhase) : FirAb
|
||||
localScopes = localScopes.add(localScope)
|
||||
}
|
||||
|
||||
fun storeClass(klass: FirRegularClass) {
|
||||
fun storeClassIfNotNested(klass: FirRegularClass) {
|
||||
if (containerIfAny is FirClass<*>) return
|
||||
updateLastScope { storeClass(klass) }
|
||||
}
|
||||
|
||||
|
||||
@@ -317,7 +317,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
|
||||
}
|
||||
|
||||
override fun transformRegularClass(regularClass: FirRegularClass, data: ResolutionMode): CompositeTransformResult<FirStatement> {
|
||||
context.storeClass(regularClass)
|
||||
context.storeClassIfNotNested(regularClass)
|
||||
|
||||
if (regularClass.isLocal && regularClass !in context.targetedLocalClasses) {
|
||||
return regularClass.runAllPhasesForLocalClass(transformer, components, data).compose()
|
||||
|
||||
@@ -163,7 +163,7 @@ class FirContractResolveTransformer(
|
||||
|
||||
override fun transformRegularClass(regularClass: FirRegularClass, data: ResolutionMode): CompositeTransformResult<FirStatement> {
|
||||
regularClass.updatePhase()
|
||||
context.storeClass(regularClass)
|
||||
context.storeClassIfNotNested(regularClass)
|
||||
regularClass.transformCompanionObject(this, data)
|
||||
withTypeParametersOf(regularClass) {
|
||||
context.withContainer(regularClass) {
|
||||
|
||||
Reference in New Issue
Block a user