diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCliJavaFileManagerImpl.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCliJavaFileManagerImpl.kt index 1b8c225db9e..61218c36053 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCliJavaFileManagerImpl.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCliJavaFileManagerImpl.kt @@ -24,6 +24,7 @@ import com.intellij.psi.* import com.intellij.psi.impl.file.PsiPackageImpl import com.intellij.psi.search.GlobalSearchScope import gnu.trove.THashMap +import gnu.trove.THashSet import org.jetbrains.kotlin.cli.jvm.index.JavaRoot import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndex import org.jetbrains.kotlin.cli.jvm.index.SingleJavaFileRootsIndex @@ -216,7 +217,7 @@ class KotlinCliJavaFileManagerImpl(private val myPsiManager: PsiManager) : CoreJ } override fun knownClassNamesInPackage(packageFqName: FqName): Set { - val result = hashSetOf() + val result = THashSet() index.traverseDirectoriesInPackage(packageFqName, continueSearch = { dir, _ -> for (child in dir.children) { if (child.extension == "class" || child.extension == "java") { diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteLookupTrackerClient.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteLookupTrackerClient.kt index 444808d5f81..987a5ee0ec6 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteLookupTrackerClient.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteLookupTrackerClient.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.daemon import com.intellij.util.containers.StringInterner +import gnu.trove.THashSet import org.jetbrains.kotlin.daemon.common.CompilerCallbackServicesFacade import org.jetbrains.kotlin.daemon.common.DummyProfiler import org.jetbrains.kotlin.daemon.common.Profiler @@ -29,7 +30,7 @@ import org.jetbrains.kotlin.incremental.components.ScopeKind class RemoteLookupTrackerClient(val facade: CompilerCallbackServicesFacade, eventManager: EventManager, val profiler: Profiler = DummyProfiler()) : LookupTracker { private val isDoNothing = profiler.withMeasure(this) { facade.lookupTracker_isDoNothing() } - private val lookups = hashSetOf() + private val lookups = THashSet() private val interner = StringInterner() override val requiresPosition: Boolean = profiler.withMeasure(this) { facade.lookupTracker_requiresPosition() } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt index 9b026787e00..b6f29ad24e2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.resolve.lazy +import gnu.trove.THashSet import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.descriptors.* @@ -248,7 +249,7 @@ class FileScopeFactory( parentScope: ImportingScope ): ImportingScope { val scope = packageView.memberScope - val names by lazy(LazyThreadSafetyMode.PUBLICATION) { scope.computeAllNames() } + val names by lazy(LazyThreadSafetyMode.PUBLICATION) { scope.computeAllNames()?.let(::THashSet) } val packageName = packageView.fqName val excludedNames = aliasImportNames.mapNotNull { if (it.parent() == packageName) it.shortName() else null } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt index a930567ee5c..02a26889034 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.resolve.lazy import com.google.common.collect.HashMultimap import com.google.common.collect.ImmutableListMultimap import com.google.common.collect.ListMultimap +import gnu.trove.THashSet import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.descriptors.* @@ -135,7 +136,7 @@ open class LazyImportResolver( } val allNames: Set? by lazy(LazyThreadSafetyMode.PUBLICATION) { - indexedImports.imports.flatMapToNullable(hashSetOf()) { getImportScope(it).computeImportedNames() } + indexedImports.imports.flatMapToNullable(THashSet()) { getImportScope(it).computeImportedNames() } } fun definitelyDoesNotContainName(name: Name) = allNames?.let { name !in it } == true diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt index 07386974c74..b2709d959b5 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt @@ -71,7 +71,7 @@ class LazyJavaClassMemberScope( override fun computeMemberIndex() = ClassDeclaredMemberIndex(jClass, { !it.isStatic }) override fun computeFunctionNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?) = - ownerDescriptor.typeConstructor.supertypes.flatMapTo(HashSet()) { + ownerDescriptor.typeConstructor.supertypes.flatMapTo(hashSetOf()) { it.memberScope.getFunctionNames() }.apply { addAll(declaredMemberIndex().getMethodNames())