Speed up REPL package member declaration provider

about 10-15% on specific test
also preparing test infrastructure for it
This commit is contained in:
Ilya Chernikov
2020-01-17 11:56:00 +01:00
parent cb7cc8ac6b
commit c7d9eaed40
2 changed files with 42 additions and 9 deletions
@@ -164,7 +164,11 @@ class ReplCodeAnalyzer(environment: KotlinCoreEnvironment) {
private var delegateProvider: PackageMemberDeclarationProvider
) : DelegatePackageMemberDeclarationProvider(delegateProvider) {
fun addDelegateProvider(provider: PackageMemberDeclarationProvider) {
delegateProvider = CombinedPackageMemberDeclarationProvider(listOf(provider, delegateProvider))
val combinedDelegateProvider = delegateProvider as? CombinedPackageMemberDeclarationProvider
val providers =
if (combinedDelegateProvider != null) listOf(provider) + combinedDelegateProvider.providers
else listOf(provider, delegateProvider)
delegateProvider = CombinedPackageMemberDeclarationProvider(providers)
delegate = delegateProvider
}