[Analysis API] add KtScope.getCallableSymbols/getClassifier symbols overloads which accept a candidate name set
This is needed for the cases when a candidate name set is known to avoid retrieving a set with all possible names when processing the scope. ^KT-58653 fixed
This commit is contained in:
committed by
Space Team
parent
aacdfb67c6
commit
29be88e3c9
+16
-2
@@ -5,11 +5,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.impl.base.scopes
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtScope
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtScopeNameFilter
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class KtCompositeScope(
|
||||
@@ -46,12 +46,26 @@ class KtCompositeScope(
|
||||
}
|
||||
}
|
||||
|
||||
override fun getCallableSymbols(names: Collection<Name>): Sequence<KtCallableSymbol> = withValidityAssertion {
|
||||
if (names.isEmpty()) return emptySequence()
|
||||
sequence {
|
||||
subScopes.forEach { yieldAll(it.getCallableSymbols(names)) }
|
||||
}
|
||||
}
|
||||
|
||||
override fun getClassifierSymbols(nameFilter: KtScopeNameFilter): Sequence<KtClassifierSymbol> = withValidityAssertion {
|
||||
sequence {
|
||||
subScopes.forEach { yieldAll(it.getClassifierSymbols(nameFilter)) }
|
||||
}
|
||||
}
|
||||
|
||||
override fun getClassifierSymbols(names: Collection<Name>): Sequence<KtClassifierSymbol> = withValidityAssertion {
|
||||
if (names.isEmpty()) return emptySequence()
|
||||
sequence {
|
||||
subScopes.forEach { yieldAll(it.getClassifierSymbols(names)) }
|
||||
}
|
||||
}
|
||||
|
||||
override fun getConstructors(): Sequence<KtConstructorSymbol> = withValidityAssertion {
|
||||
sequence {
|
||||
subScopes.forEach { yieldAll(it.getConstructors()) }
|
||||
|
||||
+10
-2
@@ -5,11 +5,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.impl.base.scopes
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtScope
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtScopeNameFilter
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class KtEmptyScope(override val token: KtLifetimeToken) : KtScope {
|
||||
@@ -33,10 +33,18 @@ class KtEmptyScope(override val token: KtLifetimeToken) : KtScope {
|
||||
return emptySequence()
|
||||
}
|
||||
|
||||
override fun getCallableSymbols(names: Collection<Name>): Sequence<KtCallableSymbol> = withValidityAssertion {
|
||||
return emptySequence()
|
||||
}
|
||||
|
||||
override fun getClassifierSymbols(nameFilter: KtScopeNameFilter): Sequence<KtClassifierSymbol> = withValidityAssertion {
|
||||
return emptySequence()
|
||||
}
|
||||
|
||||
override fun getClassifierSymbols(names: Collection<Name>): Sequence<KtClassifierSymbol> = withValidityAssertion {
|
||||
return emptySequence()
|
||||
}
|
||||
|
||||
override fun getConstructors(): Sequence<KtConstructorSymbol> = withValidityAssertion {
|
||||
return emptySequence()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user