diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/TowerResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/TowerResolver.kt index ddab95951e7..0ff0cc9b424 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/TowerResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/TowerResolver.kt @@ -72,6 +72,10 @@ class TowerResolver { return run(context, processor, false, AllCandidatesCollector(context)) } + private fun ScopeTower.createLocalLevels() = lexicalScope.parentsWithSelf. + filterIsInstance().filter { it.kind.withLocalDescriptors }. + map { ScopeBasedTowerLevel(this, it) } + private fun ScopeTower.createNonLocalLevels(): List { val result = ArrayList() @@ -92,10 +96,7 @@ class TowerResolver { private fun ScopeTower.createTowerDataList(): List = ArrayList().apply { operator fun TowerData.unaryPlus() = add(this) - val localLevels = lexicalScope.parentsWithSelf. - filterIsInstance().filter { it.kind.withLocalDescriptors }. - map { ScopeBasedTowerLevel(this@createTowerDataList, it) } - + val localLevels = createLocalLevels() val nonLocalLevels = createNonLocalLevels() val syntheticLevel = SyntheticScopeBasedTowerLevel(this@createTowerDataList, syntheticScopes)