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