FIR nested classifier scope building: optimize companion search

This commit is contained in:
Mikhail Glukhikh
2019-11-07 18:20:42 +03:00
parent 48938a20a7
commit 411dc5d60e
2 changed files with 4 additions and 4 deletions
@@ -41,8 +41,8 @@ abstract class FirAbstractTreeTransformerWithSuperTypes(
nestedClassifierScope(it.lookupTag.classId, session) nestedClassifierScope(it.lookupTag.classId, session)
} }
regularClass.addTypeParametersScope() regularClass.addTypeParametersScope()
val companionObjects = regularClass.declarations.filterIsInstance<FirRegularClass>().filter { it.isCompanion } val companionObject = regularClass.companionObject
for (companionObject in companionObjects) { if (companionObject != null) {
towerScope.scopes += nestedClassifierScope(companionObject) towerScope.scopes += nestedClassifierScope(companionObject)
} }
towerScope.scopes += nestedClassifierScope(regularClass) towerScope.scopes += nestedClassifierScope(regularClass)
@@ -231,8 +231,8 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
if (regularClass.symbol.classId.isLocal) { if (regularClass.symbol.classId.isLocal) {
prepareLocalClassForBodyResolve(regularClass) prepareLocalClassForBodyResolve(regularClass)
} }
val companionObjects = regularClass.declarations.filterIsInstance<FirRegularClass>().filter { it.isCompanion } val companionObject = regularClass.companionObject
for (companionObject in companionObjects) { if (companionObject != null) {
topLevelScopes += nestedClassifierScope(companionObject) topLevelScopes += nestedClassifierScope(companionObject)
} }
topLevelScopes += nestedClassifierScope(regularClass) topLevelScopes += nestedClassifierScope(regularClass)