Replace the trove4j collections usages with the fastutil ones
The trove4j library is licensed under LGPL, and that causes some troubles while working with it. The fastutil library provides the same functionality in the context of our needs, and is licensed under the Apache license. ^KTI-1135 In Progress
This commit is contained in:
committed by
Space Team
parent
dd5fffebf2
commit
21b438f55d
@@ -12,7 +12,7 @@ dependencies {
|
|||||||
api(project(":core:compiler.common.jvm"))
|
api(project(":core:compiler.common.jvm"))
|
||||||
implementation(project(":analysis:project-structure"))
|
implementation(project(":analysis:project-structure"))
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|||||||
+4
-4
@@ -19,7 +19,7 @@ import com.intellij.psi.util.MethodSignatureBackedByPsiMethod
|
|||||||
import com.intellij.psi.util.PsiUtil
|
import com.intellij.psi.util.PsiUtil
|
||||||
import com.intellij.util.ArrayUtil
|
import com.intellij.util.ArrayUtil
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
import gnu.trove.THashMap
|
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightParameter
|
import org.jetbrains.kotlin.asJava.elements.KtLightParameter
|
||||||
@@ -84,7 +84,7 @@ class KotlinClassInnerStuffCache(
|
|||||||
|
|
||||||
private val fieldByNameCache = cache {
|
private val fieldByNameCache = cache {
|
||||||
val fields = this.fields.takeIf { it.isNotEmpty() } ?: return@cache emptyMap()
|
val fields = this.fields.takeIf { it.isNotEmpty() } ?: return@cache emptyMap()
|
||||||
Collections.unmodifiableMap(THashMap<String, PsiField>(fields.size).apply {
|
Collections.unmodifiableMap(Object2ObjectOpenHashMap<String, PsiField>(fields.size).apply {
|
||||||
for (field in fields) {
|
for (field in fields) {
|
||||||
putIfAbsent(field.name, field)
|
putIfAbsent(field.name, field)
|
||||||
}
|
}
|
||||||
@@ -101,7 +101,7 @@ class KotlinClassInnerStuffCache(
|
|||||||
|
|
||||||
private val methodByNameCache = cache {
|
private val methodByNameCache = cache {
|
||||||
val methods = this.methods.takeIf { it.isNotEmpty() } ?: return@cache emptyMap()
|
val methods = this.methods.takeIf { it.isNotEmpty() } ?: return@cache emptyMap()
|
||||||
Collections.unmodifiableMap(THashMap<String, Array<PsiMethod>>().apply {
|
Collections.unmodifiableMap(Object2ObjectOpenHashMap<String, Array<PsiMethod>>().apply {
|
||||||
for ((key, list) in methods.groupByTo(HashMap()) { it.name }) {
|
for ((key, list) in methods.groupByTo(HashMap()) { it.name }) {
|
||||||
put(key, list.toTypedArray())
|
put(key, list.toTypedArray())
|
||||||
}
|
}
|
||||||
@@ -119,7 +119,7 @@ class KotlinClassInnerStuffCache(
|
|||||||
private val innerClassByNameCache = cache {
|
private val innerClassByNameCache = cache {
|
||||||
val classes = this.innerClasses.takeIf { it.isNotEmpty() } ?: return@cache emptyMap()
|
val classes = this.innerClasses.takeIf { it.isNotEmpty() } ?: return@cache emptyMap()
|
||||||
|
|
||||||
Collections.unmodifiableMap(THashMap<String, PsiClass>().apply {
|
Collections.unmodifiableMap(Object2ObjectOpenHashMap<String, PsiClass>().apply {
|
||||||
for (psiClass in classes) {
|
for (psiClass in classes) {
|
||||||
val name = psiClass.name
|
val name = psiClass.name
|
||||||
if (name == null) {
|
if (name == null) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ dependencies {
|
|||||||
|
|
||||||
compileOnly(toolsJarApi())
|
compileOnly(toolsJarApi())
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:asm-all"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps:asm-all"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.cli.jvm.compiler
|
|||||||
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import gnu.trove.THashSet
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||||
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
|
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
|
||||||
import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndex
|
import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndex
|
||||||
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder
|
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder
|
||||||
@@ -51,7 +51,7 @@ class CliVirtualFileFinder(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun findMetadataTopLevelClassesInPackage(packageFqName: FqName): Set<String> {
|
override fun findMetadataTopLevelClassesInPackage(packageFqName: FqName): Set<String> {
|
||||||
val result = THashSet<String>()
|
val result = ObjectOpenHashSet<String>()
|
||||||
index.traverseDirectoriesInPackage(packageFqName, continueSearch = { dir, _ ->
|
index.traverseDirectoriesInPackage(packageFqName, continueSearch = { dir, _ ->
|
||||||
for (child in dir.children) {
|
for (child in dir.children) {
|
||||||
if (child.extension == MetadataPackageFragment.METADATA_FILE_EXTENSION) {
|
if (child.extension == MetadataPackageFragment.METADATA_FILE_EXTENSION) {
|
||||||
|
|||||||
+5
-5
@@ -23,8 +23,8 @@ import com.intellij.openapi.vfs.VirtualFile
|
|||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.impl.file.PsiPackageImpl
|
import com.intellij.psi.impl.file.PsiPackageImpl
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import gnu.trove.THashMap
|
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
|
||||||
import gnu.trove.THashSet
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||||
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
|
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
|
||||||
import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndex
|
import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndex
|
||||||
import org.jetbrains.kotlin.cli.jvm.index.SingleJavaFileRootsIndex
|
import org.jetbrains.kotlin.cli.jvm.index.SingleJavaFileRootsIndex
|
||||||
@@ -50,7 +50,7 @@ class KotlinCliJavaFileManagerImpl(private val myPsiManager: PsiManager) : CoreJ
|
|||||||
private lateinit var index: JvmDependenciesIndex
|
private lateinit var index: JvmDependenciesIndex
|
||||||
private lateinit var singleJavaFileRootsIndex: SingleJavaFileRootsIndex
|
private lateinit var singleJavaFileRootsIndex: SingleJavaFileRootsIndex
|
||||||
private lateinit var packagePartProviders: List<JvmPackagePartProvider>
|
private lateinit var packagePartProviders: List<JvmPackagePartProvider>
|
||||||
private val topLevelClassesCache: MutableMap<FqName, VirtualFile?> = THashMap()
|
private val topLevelClassesCache: MutableMap<FqName, VirtualFile?> = Object2ObjectOpenHashMap()
|
||||||
private val allScope = GlobalSearchScope.allScope(myPsiManager.project)
|
private val allScope = GlobalSearchScope.allScope(myPsiManager.project)
|
||||||
private var usePsiClassFilesReading = false
|
private var usePsiClassFilesReading = false
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ class KotlinCliJavaFileManagerImpl(private val myPsiManager: PsiManager) : CoreJ
|
|||||||
}?.takeIf { it in searchScope }
|
}?.takeIf { it in searchScope }
|
||||||
}
|
}
|
||||||
|
|
||||||
private val binaryCache: MutableMap<ClassId, JavaClass?> = THashMap()
|
private val binaryCache: MutableMap<ClassId, JavaClass?> = Object2ObjectOpenHashMap()
|
||||||
private val signatureParsingComponent = BinaryClassSignatureParser()
|
private val signatureParsingComponent = BinaryClassSignatureParser()
|
||||||
|
|
||||||
fun findClass(classId: ClassId, searchScope: GlobalSearchScope) = findClass(JavaClassFinder.Request(classId), searchScope)
|
fun findClass(classId: ClassId, searchScope: GlobalSearchScope) = findClass(JavaClassFinder.Request(classId), searchScope)
|
||||||
@@ -263,7 +263,7 @@ class KotlinCliJavaFileManagerImpl(private val myPsiManager: PsiManager) : CoreJ
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun knownClassNamesInPackage(packageFqName: FqName): Set<String> {
|
override fun knownClassNamesInPackage(packageFqName: FqName): Set<String> {
|
||||||
val result = THashSet<String>()
|
val result = ObjectOpenHashSet<String>()
|
||||||
index.traverseDirectoriesInPackage(packageFqName, continueSearch = { dir, _ ->
|
index.traverseDirectoriesInPackage(packageFqName, continueSearch = { dir, _ ->
|
||||||
for (child in dir.children) {
|
for (child in dir.children) {
|
||||||
if (child.extension == "class" || child.extension == "java" || child.extension == "sig") {
|
if (child.extension == "class" || child.extension == "java" || child.extension == "sig") {
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import com.intellij.ide.highlighter.JavaClassFileType
|
|||||||
import com.intellij.ide.highlighter.JavaFileType
|
import com.intellij.ide.highlighter.JavaFileType
|
||||||
import com.intellij.openapi.vfs.VfsUtilCore
|
import com.intellij.openapi.vfs.VfsUtilCore
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import gnu.trove.THashMap
|
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -58,7 +58,7 @@ class JvmDependenciesIndexImpl(_roots: List<JavaRoot>) : JvmDependenciesIndex {
|
|||||||
override val indexedRoots by lazy { roots.asSequence() }
|
override val indexedRoots by lazy { roots.asSequence() }
|
||||||
|
|
||||||
private val packageCache: Array<out MutableMap<String, VirtualFile?>> by lazy {
|
private val packageCache: Array<out MutableMap<String, VirtualFile?>> by lazy {
|
||||||
Array(roots.size) { THashMap<String, VirtualFile?>() }
|
Array(roots.size) { Object2ObjectOpenHashMap<String, VirtualFile?>() }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun traverseDirectoriesInPackage(
|
override fun traverseDirectoriesInPackage(
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ dependencies {
|
|||||||
compileOnly(project(":compiler:cli"))
|
compileOnly(project(":compiler:cli"))
|
||||||
compileOnly(project(":compiler:incremental-compilation-impl"))
|
compileOnly(project(":compiler:incremental-compilation-impl"))
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
|
|
||||||
runtimeOnly(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false }
|
runtimeOnly(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false }
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.daemon
|
package org.jetbrains.kotlin.daemon
|
||||||
|
|
||||||
import gnu.trove.THashMap
|
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
|
||||||
import gnu.trove.THashSet
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||||
import org.jetbrains.kotlin.daemon.common.DummyProfiler
|
import org.jetbrains.kotlin.daemon.common.DummyProfiler
|
||||||
import org.jetbrains.kotlin.daemon.common.Profiler
|
import org.jetbrains.kotlin.daemon.common.Profiler
|
||||||
import org.jetbrains.kotlin.daemon.common.withMeasure
|
import org.jetbrains.kotlin.daemon.common.withMeasure
|
||||||
@@ -35,7 +35,7 @@ class RemoteLookupTrackerClient(
|
|||||||
private val isDoNothing = profiler.withMeasure(this) { facade.lookupTracker_isDoNothing() }
|
private val isDoNothing = profiler.withMeasure(this) { facade.lookupTracker_isDoNothing() }
|
||||||
|
|
||||||
// Map: FileName -> (ScopeFqName -> Set<Name[String] | LookupInfo>)
|
// Map: FileName -> (ScopeFqName -> Set<Name[String] | LookupInfo>)
|
||||||
private val lookups = THashMap<String, MutableMap<String, MutableSet<Any>>>()
|
private val lookups = Object2ObjectOpenHashMap<String, MutableMap<String, MutableSet<Any>>>()
|
||||||
private val interner = createStringInterner()
|
private val interner = createStringInterner()
|
||||||
|
|
||||||
override val requiresPosition: Boolean = profiler.withMeasure(this) { facade.lookupTracker_requiresPosition() }
|
override val requiresPosition: Boolean = profiler.withMeasure(this) { facade.lookupTracker_requiresPosition() }
|
||||||
@@ -51,8 +51,7 @@ class RemoteLookupTrackerClient(
|
|||||||
LookupInfo(filePath, position, scopeFqName, scopeKind, name)
|
LookupInfo(filePath, position, scopeFqName, scopeKind, name)
|
||||||
else
|
else
|
||||||
internedName
|
internedName
|
||||||
|
lookups.getOrPut(filePath, ::Object2ObjectOpenHashMap).getOrPut(internedSymbolFqName, ::ObjectOpenHashSet).add(objectToPut)
|
||||||
lookups.getOrPut(filePath, ::THashMap).getOrPut(internedSymbolFqName, ::THashSet).add(objectToPut)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun clear() {
|
override fun clear() {
|
||||||
@@ -64,7 +63,7 @@ class RemoteLookupTrackerClient(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun flush() {
|
private fun flush() {
|
||||||
if (isDoNothing || lookups.isEmpty) return
|
if (isDoNothing || lookups.isEmpty()) return
|
||||||
|
|
||||||
profiler.withMeasure(this) {
|
profiler.withMeasure(this) {
|
||||||
facade.lookupTracker_record(
|
facade.lookupTracker_record(
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ dependencies {
|
|||||||
api(project(":kotlin-script-runtime"))
|
api(project(":kotlin-script-runtime"))
|
||||||
api(commonDependency("io.javaslang","javaslang"))
|
api(commonDependency("io.javaslang","javaslang"))
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
compileOnly(libs.guava)
|
compileOnly(libs.guava)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.resolve.lazy
|
package org.jetbrains.kotlin.resolve.lazy
|
||||||
|
|
||||||
import gnu.trove.THashSet
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupLocation
|
import org.jetbrains.kotlin.incremental.components.LookupLocation
|
||||||
@@ -257,7 +257,7 @@ class FileScopeFactory(
|
|||||||
parentScope: ImportingScope
|
parentScope: ImportingScope
|
||||||
): ImportingScope {
|
): ImportingScope {
|
||||||
val scope = packageView.memberScope
|
val scope = packageView.memberScope
|
||||||
val names by lazy(LazyThreadSafetyMode.PUBLICATION) { scope.computeAllNames()?.let(::THashSet) }
|
val names by lazy(LazyThreadSafetyMode.PUBLICATION) { scope.computeAllNames()?.let(::ObjectOpenHashSet) }
|
||||||
val packageName = packageView.fqName
|
val packageName = packageView.fqName
|
||||||
val excludedNames = aliasImportNames.mapNotNull { if (it.parent() == packageName) it.shortName() else null }
|
val excludedNames = aliasImportNames.mapNotNull { if (it.parent() == packageName) it.shortName() else null }
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.resolve.lazy
|
|||||||
import com.google.common.collect.HashMultimap
|
import com.google.common.collect.HashMultimap
|
||||||
import com.google.common.collect.ImmutableListMultimap
|
import com.google.common.collect.ImmutableListMultimap
|
||||||
import com.google.common.collect.ListMultimap
|
import com.google.common.collect.ListMultimap
|
||||||
import gnu.trove.THashSet
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||||
import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMapper
|
import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMapper
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
@@ -130,7 +130,7 @@ open class LazyImportResolver<I : KtImportInfo>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val allNames: Set<Name>? by components.storageManager.createNullableLazyValue {
|
val allNames: Set<Name>? by components.storageManager.createNullableLazyValue {
|
||||||
indexedImports.imports.asIterable().flatMapToNullable(THashSet()) { getImportScope(it).computeImportedNames() }
|
indexedImports.imports.asIterable().flatMapToNullable(ObjectOpenHashSet()) { getImportScope(it).computeImportedNames() }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun definitelyDoesNotContainName(name: Name): Boolean {
|
fun definitelyDoesNotContainName(name: Name): Boolean {
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.types.expressions
|
package org.jetbrains.kotlin.types.expressions
|
||||||
|
|
||||||
import gnu.trove.THashSet
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor
|
import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor
|
||||||
import org.jetbrains.kotlin.psi.KtLoopExpression
|
import org.jetbrains.kotlin.psi.KtLoopExpression
|
||||||
@@ -37,7 +37,7 @@ class PreliminaryLoopVisitor private constructor() : AssignedVariablesSearcher()
|
|||||||
languageVersionSettings: LanguageVersionSettings
|
languageVersionSettings: LanguageVersionSettings
|
||||||
): DataFlowInfo {
|
): DataFlowInfo {
|
||||||
var resultFlowInfo = dataFlowInfo
|
var resultFlowInfo = dataFlowInfo
|
||||||
val nonTrivialValues = THashSet<DataFlowValue>().apply {
|
val nonTrivialValues = ObjectOpenHashSet<DataFlowValue>().apply {
|
||||||
addAll(dataFlowInfo.completeNullabilityInfo.iterator().map { it._1 })
|
addAll(dataFlowInfo.completeNullabilityInfo.iterator().map { it._1 })
|
||||||
addAll(dataFlowInfo.completeTypeInfo.iterator().map { it._1 })
|
addAll(dataFlowInfo.completeTypeInfo.iterator().map { it._1 })
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ dependencies {
|
|||||||
|
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(libs.guava)
|
compileOnly(libs.guava)
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
|
|
||||||
jflexPath(commonDependency("org.jetbrains.intellij.deps.jflex", "jflex"))
|
jflexPath(commonDependency("org.jetbrains.intellij.deps.jflex", "jflex"))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.psi
|
|||||||
|
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.psi.LiteralTextEscaper
|
import com.intellij.psi.LiteralTextEscaper
|
||||||
import gnu.trove.TIntArrayList
|
import it.unimi.dsi.fastutil.ints.IntArrayList
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getContentRange
|
import org.jetbrains.kotlin.psi.psiUtil.getContentRange
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.isSingleQuoted
|
import org.jetbrains.kotlin.psi.psiUtil.isSingleQuoted
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
@@ -27,7 +27,7 @@ class KotlinStringLiteralTextEscaper(host: KtStringTemplateExpression) : Literal
|
|||||||
private var sourceOffsets: IntArray? = null
|
private var sourceOffsets: IntArray? = null
|
||||||
|
|
||||||
override fun decode(rangeInsideHost: TextRange, outChars: StringBuilder): Boolean {
|
override fun decode(rangeInsideHost: TextRange, outChars: StringBuilder): Boolean {
|
||||||
val sourceOffsetsList = TIntArrayList()
|
val sourceOffsetsList = IntArrayList()
|
||||||
var sourceOffset = 0
|
var sourceOffset = 0
|
||||||
|
|
||||||
for (child in myHost.entries) {
|
for (child in myHost.entries) {
|
||||||
@@ -44,7 +44,7 @@ class KotlinStringLiteralTextEscaper(host: KtStringTemplateExpression) : Literal
|
|||||||
//don't allow injection if its range starts or ends inside escaped sequence
|
//don't allow injection if its range starts or ends inside escaped sequence
|
||||||
//but still process offsets for the already decoded part
|
//but still process offsets for the already decoded part
|
||||||
sourceOffsetsList.add(sourceOffset)
|
sourceOffsetsList.add(sourceOffset)
|
||||||
sourceOffsets = sourceOffsetsList.toNativeArray()
|
sourceOffsets = sourceOffsetsList.toIntArray()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
val unescaped = child.unescapedValue
|
val unescaped = child.unescapedValue
|
||||||
@@ -64,7 +64,7 @@ class KotlinStringLiteralTextEscaper(host: KtStringTemplateExpression) : Literal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
sourceOffsetsList.add(sourceOffset)
|
sourceOffsetsList.add(sourceOffset)
|
||||||
sourceOffsets = sourceOffsetsList.toNativeArray()
|
sourceOffsets = sourceOffsetsList.toIntArray()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ dependencies {
|
|||||||
implementation(commonDependency("io.javaslang","javaslang"))
|
implementation(commonDependency("io.javaslang","javaslang"))
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:asm-all"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps:asm-all"))
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
compileOnly(libs.guava)
|
compileOnly(libs.guava)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.load.java.structure.impl.classFiles
|
|||||||
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.psi.search.SearchScope
|
import com.intellij.psi.search.SearchScope
|
||||||
import gnu.trove.THashMap
|
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
|
||||||
import org.jetbrains.kotlin.builtins.PrimitiveType
|
import org.jetbrains.kotlin.builtins.PrimitiveType
|
||||||
import org.jetbrains.kotlin.load.java.structure.*
|
import org.jetbrains.kotlin.load.java.structure.*
|
||||||
import org.jetbrains.kotlin.load.java.structure.impl.VirtualFileBoundJavaClass
|
import org.jetbrains.kotlin.load.java.structure.impl.VirtualFileBoundJavaClass
|
||||||
@@ -64,7 +64,7 @@ class BinaryJavaClass(
|
|||||||
|
|
||||||
// Short name of a nested class of this class -> access flags as seen in the InnerClasses attribute value.
|
// Short name of a nested class of this class -> access flags as seen in the InnerClasses attribute value.
|
||||||
// Note that it doesn't include classes mentioned in other InnerClasses attribute values (those which are not nested in this class).
|
// Note that it doesn't include classes mentioned in other InnerClasses attribute values (those which are not nested in this class).
|
||||||
private val ownInnerClassNameToAccess: MutableMap<Name, Int> = THashMap()
|
private val ownInnerClassNameToAccess: MutableMap<Name, Int> = Object2ObjectOpenHashMap()
|
||||||
|
|
||||||
override val innerClassNames get() = ownInnerClassNameToAccess.keys
|
override val innerClassNames get() = ownInnerClassNameToAccess.keys
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ dependencies {
|
|||||||
api(project(":core:descriptors"))
|
api(project(":core:descriptors"))
|
||||||
api(project(":compiler:resolution.common"))
|
api(project(":compiler:resolution.common"))
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|||||||
+6
-9
@@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.resolve.calls.results
|
package org.jetbrains.kotlin.resolve.calls.results
|
||||||
|
|
||||||
import gnu.trove.THashSet
|
import it.unimi.dsi.fastutil.Hash
|
||||||
import gnu.trove.TObjectHashingStrategy
|
import it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.StandardNames
|
import org.jetbrains.kotlin.builtins.StandardNames
|
||||||
import org.jetbrains.kotlin.builtins.UnsignedTypes
|
import org.jetbrains.kotlin.builtins.UnsignedTypes
|
||||||
@@ -26,9 +26,7 @@ import org.jetbrains.kotlin.descriptors.synthetic.SyntheticMemberDescriptor
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorEquivalenceForOverrides
|
import org.jetbrains.kotlin.resolve.DescriptorEquivalenceForOverrides
|
||||||
import org.jetbrains.kotlin.resolve.OverridingUtil
|
import org.jetbrains.kotlin.resolve.OverridingUtil
|
||||||
import org.jetbrains.kotlin.resolve.calls.context.CheckArgumentTypesMode
|
import org.jetbrains.kotlin.resolve.calls.context.CheckArgumentTypesMode
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.getKotlinTypeRefiner
|
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.isTypeRefinementEnabled
|
import org.jetbrains.kotlin.resolve.descriptorUtil.isTypeRefinementEnabled
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.varargParameterPosition
|
import org.jetbrains.kotlin.resolve.descriptorUtil.varargParameterPosition
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.TypeUtils
|
import org.jetbrains.kotlin.types.TypeUtils
|
||||||
@@ -55,15 +53,14 @@ open class OverloadingConflictResolver<C : Any>(
|
|||||||
|
|
||||||
private val isTypeRefinementEnabled by lazy { module.isTypeRefinementEnabled() }
|
private val isTypeRefinementEnabled by lazy { module.isTypeRefinementEnabled() }
|
||||||
|
|
||||||
private val resolvedCallHashingStrategy = object : TObjectHashingStrategy<C> {
|
private val resolvedCallHashingStrategy = object : Hash.Strategy<C> {
|
||||||
override fun equals(call1: C?, call2: C?): Boolean =
|
override fun equals(call1: C?, call2: C?): Boolean =
|
||||||
if (call1 != null && call2 != null)
|
if (call1 != null && call2 != null)
|
||||||
call1.resultingDescriptor == call2.resultingDescriptor
|
call1.resultingDescriptor == call2.resultingDescriptor
|
||||||
else
|
else
|
||||||
call1 == call2
|
call1 == call2
|
||||||
|
|
||||||
override fun computeHashCode(call: C?): Int =
|
override fun hashCode(call: C?): Int = call?.resultingDescriptor?.hashCode() ?: 0
|
||||||
call?.resultingDescriptor?.hashCode() ?: 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val C.resultingDescriptor: CallableDescriptor get() = getResultingDescriptor(this)
|
private val C.resultingDescriptor: CallableDescriptor get() = getResultingDescriptor(this)
|
||||||
@@ -459,10 +456,10 @@ open class OverloadingConflictResolver<C : Any>(
|
|||||||
|
|
||||||
// Different smart casts may lead to the same candidate descriptor wrapped into different ResolvedCallImpl objects
|
// Different smart casts may lead to the same candidate descriptor wrapped into different ResolvedCallImpl objects
|
||||||
private fun uniquifyCandidatesSet(candidates: Collection<C>): Set<C> =
|
private fun uniquifyCandidatesSet(candidates: Collection<C>): Set<C> =
|
||||||
THashSet(candidates.size, resolvedCallHashingStrategy).apply { addAll(candidates) }
|
ObjectOpenCustomHashSet(candidates.size, resolvedCallHashingStrategy).apply { addAll(candidates) }
|
||||||
|
|
||||||
private fun newResolvedCallSet(expectedSize: Int): MutableSet<C> =
|
private fun newResolvedCallSet(expectedSize: Int): MutableSet<C> =
|
||||||
THashSet(expectedSize, resolvedCallHashingStrategy)
|
ObjectOpenCustomHashSet(expectedSize, resolvedCallHashingStrategy)
|
||||||
|
|
||||||
private fun FlatSignature<C>.candidateDescriptor() =
|
private fun FlatSignature<C>.candidateDescriptor() =
|
||||||
origin.resultingDescriptor.original
|
origin.resultingDescriptor.original
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ dependencies {
|
|||||||
testApi(intellijJavaRt()) // for FileComparisonFailure
|
testApi(intellijJavaRt()) // for FileComparisonFailure
|
||||||
|
|
||||||
testImplementation(libs.guava)
|
testImplementation(libs.guava)
|
||||||
testImplementation(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
|
||||||
testImplementation(commonDependency("org.jetbrains.intellij.deps:asm-all"))
|
testImplementation(commonDependency("org.jetbrains.intellij.deps:asm-all"))
|
||||||
testImplementation(commonDependency("org.jetbrains.intellij.deps:log4j"))
|
testImplementation(commonDependency("org.jetbrains.intellij.deps:log4j"))
|
||||||
testImplementation(commonDependency("org.jetbrains.intellij.deps:jdom"))
|
testImplementation(commonDependency("org.jetbrains.intellij.deps:jdom"))
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.test.testFramework
|
||||||
|
|
||||||
|
fun interface Equality<T> {
|
||||||
|
fun equals(o1: T, o2: T): Boolean
|
||||||
|
}
|
||||||
+9
-5
@@ -27,8 +27,7 @@ import com.intellij.util.containers.ContainerUtil;
|
|||||||
import com.intellij.util.containers.PeekableIterator;
|
import com.intellij.util.containers.PeekableIterator;
|
||||||
import com.intellij.util.containers.PeekableIteratorWrapper;
|
import com.intellij.util.containers.PeekableIteratorWrapper;
|
||||||
import com.intellij.util.lang.CompoundRuntimeException;
|
import com.intellij.util.lang.CompoundRuntimeException;
|
||||||
import gnu.trove.Equality;
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
|
||||||
import gnu.trove.THashSet;
|
|
||||||
import junit.framework.AssertionFailedError;
|
import junit.framework.AssertionFailedError;
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
@@ -385,8 +384,8 @@ public abstract class KtUsefulTestCase extends TestCase {
|
|||||||
|
|
||||||
final StringBuilder builder = new StringBuilder();
|
final StringBuilder builder = new StringBuilder();
|
||||||
for (final Object o : collection) {
|
for (final Object o : collection) {
|
||||||
if (o instanceof THashSet) {
|
if (o instanceof ObjectOpenHashSet) {
|
||||||
builder.append(new TreeSet<>((THashSet<?>)o));
|
builder.append(new TreeSet<>((ObjectOpenHashSet<?>)o));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
builder.append(o);
|
builder.append(o);
|
||||||
@@ -439,7 +438,12 @@ public abstract class KtUsefulTestCase extends TestCase {
|
|||||||
public static <T> void assertOrderedEquals(@NotNull String errorMsg,
|
public static <T> void assertOrderedEquals(@NotNull String errorMsg,
|
||||||
@NotNull Iterable<? extends T> actual,
|
@NotNull Iterable<? extends T> actual,
|
||||||
@NotNull Iterable<? extends T> expected) {
|
@NotNull Iterable<? extends T> expected) {
|
||||||
assertOrderedEquals(errorMsg, actual, expected, Equality.CANONICAL);
|
assertOrderedEquals(errorMsg, actual, expected, new Equality<T>() {
|
||||||
|
@Override
|
||||||
|
public boolean equals(T o1, T o2) {
|
||||||
|
return Objects.equals(o1, o2);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> void assertOrderedEquals(@NotNull String errorMsg,
|
public static <T> void assertOrderedEquals(@NotNull String errorMsg,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ plugins {
|
|||||||
dependencies {
|
dependencies {
|
||||||
api(project(":core:descriptors"))
|
api(project(":core:descriptors"))
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.backend;
|
package org.jetbrains.kotlin.js.backend;
|
||||||
|
|
||||||
import gnu.trove.THashSet;
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -142,7 +142,7 @@ public class JsReservedIdentifiers {
|
|||||||
"$stack", "$stackDepth", "$location",
|
"$stack", "$stackDepth", "$location",
|
||||||
};
|
};
|
||||||
|
|
||||||
reservedGlobalSymbols = new THashSet<String>(commonBuiltins.length);
|
reservedGlobalSymbols = new ObjectOpenHashSet<>(commonBuiltins.length);
|
||||||
Collections.addAll(reservedGlobalSymbols, commonBuiltins);
|
Collections.addAll(reservedGlobalSymbols, commonBuiltins);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.backend;
|
package org.jetbrains.kotlin.js.backend;
|
||||||
|
|
||||||
|
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
|
||||||
import kotlin.text.StringsKt;
|
import kotlin.text.StringsKt;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.js.backend.ast.*;
|
import org.jetbrains.kotlin.js.backend.ast.*;
|
||||||
@@ -12,7 +13,6 @@ import org.jetbrains.kotlin.js.backend.ast.JsIntLiteral;
|
|||||||
import org.jetbrains.kotlin.js.backend.ast.JsVars.JsVar;
|
import org.jetbrains.kotlin.js.backend.ast.JsVars.JsVar;
|
||||||
import org.jetbrains.kotlin.js.common.IdentifierPolicyKt;
|
import org.jetbrains.kotlin.js.common.IdentifierPolicyKt;
|
||||||
import org.jetbrains.kotlin.js.util.TextOutput;
|
import org.jetbrains.kotlin.js.util.TextOutput;
|
||||||
import gnu.trove.THashSet;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -190,7 +190,7 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
* because the statements designated by statementEnds and statementStarts are
|
* because the statements designated by statementEnds and statementStarts are
|
||||||
* those that appear directly within these global blocks.
|
* those that appear directly within these global blocks.
|
||||||
*/
|
*/
|
||||||
private Set<JsBlock> globalBlocks = new THashSet<JsBlock>();
|
private Set<JsBlock> globalBlocks = new ObjectOpenHashSet<>();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
protected final TextOutput p;
|
protected final TextOutput p;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ dependencies {
|
|||||||
compileOnly(project(":js:js.parser")) // TODO remove, required for JSON AST
|
compileOnly(project(":js:js.parser")) // TODO remove, required for JSON AST
|
||||||
compileOnly(project(":js:js.frontend")) // TODO remove
|
compileOnly(project(":js:js.frontend")) // TODO remove
|
||||||
compileOnly(intellijCore())
|
compileOnly(intellijCore())
|
||||||
compileOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
|
compileOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.jetbrains.kotlin.js.sourceMap
|
package org.jetbrains.kotlin.js.sourceMap
|
||||||
|
|
||||||
import gnu.trove.TObjectIntHashMap
|
import com.intellij.util.containers.ObjectIntHashMap
|
||||||
import org.jetbrains.kotlin.js.parser.sourcemaps.*
|
import org.jetbrains.kotlin.js.parser.sourcemaps.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@@ -17,13 +17,6 @@ class SourceMap3Builder(
|
|||||||
private val pathPrefix: String
|
private val pathPrefix: String
|
||||||
) : SourceMapBuilder {
|
) : SourceMapBuilder {
|
||||||
|
|
||||||
private class ObjectIntHashMap<T> : TObjectIntHashMap<T>() {
|
|
||||||
override fun get(key: T): Int {
|
|
||||||
val index = index(key)
|
|
||||||
return if (index < 0) -1 else _values[index]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private val out = StringBuilder(8192)
|
private val out = StringBuilder(8192)
|
||||||
|
|
||||||
private val sources = ObjectIntHashMap<SourceKey>()
|
private val sources = ObjectIntHashMap<SourceKey>()
|
||||||
@@ -98,7 +91,7 @@ class SourceMap3Builder(
|
|||||||
|
|
||||||
private fun getSourceIndex(source: String, fileIdentity: Any?, contentSupplier: Supplier<Reader?>): Int {
|
private fun getSourceIndex(source: String, fileIdentity: Any?, contentSupplier: Supplier<Reader?>): Int {
|
||||||
val key = SourceKey(source, fileIdentity)
|
val key = SourceKey(source, fileIdentity)
|
||||||
var sourceIndex = sources[key]
|
var sourceIndex = sources.get(key)
|
||||||
if (sourceIndex == -1) {
|
if (sourceIndex == -1) {
|
||||||
sourceIndex = orderedSources.size
|
sourceIndex = orderedSources.size
|
||||||
sources.put(key, sourceIndex)
|
sources.put(key, sourceIndex)
|
||||||
@@ -109,7 +102,7 @@ class SourceMap3Builder(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getNameIndex(name: String): Int {
|
private fun getNameIndex(name: String): Int {
|
||||||
var nameIndex = names[name]
|
var nameIndex = names.get(name)
|
||||||
if (nameIndex == -1) {
|
if (nameIndex == -1) {
|
||||||
nameIndex = orderedNames.size
|
nameIndex = orderedNames.size
|
||||||
names.put(name, nameIndex)
|
names.put(name, nameIndex)
|
||||||
|
|||||||
@@ -216,23 +216,6 @@ class CodeConformanceTest : TestCase() {
|
|||||||
message = "%d source files contain references to package gnu.trove.\n" +
|
message = "%d source files contain references to package gnu.trove.\n" +
|
||||||
"Please avoid using trove library in new use cases. " +
|
"Please avoid using trove library in new use cases. " +
|
||||||
"These files are affected:\n%s",
|
"These files are affected:\n%s",
|
||||||
allowedFiles = listOf(
|
|
||||||
"analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt",
|
|
||||||
"compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/CliVirtualFileFinder.kt",
|
|
||||||
"compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCliJavaFileManagerImpl.kt",
|
|
||||||
"compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/index/JvmDependenciesIndexImpl.kt",
|
|
||||||
"compiler/daemon/src/org/jetbrains/kotlin/daemon/RemoteLookupTrackerClient.kt",
|
|
||||||
"compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt",
|
|
||||||
"compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyImportScope.kt",
|
|
||||||
"compiler/frontend/src/org/jetbrains/kotlin/types/expressions/PreliminaryLoopVisitor.kt",
|
|
||||||
"compiler/psi/src/org/jetbrains/kotlin/psi/KotlinStringLiteralTextEscaper.kt",
|
|
||||||
"compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/classFiles/BinaryJavaClass.kt",
|
|
||||||
"compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/results/OverloadingConflictResolver.kt",
|
|
||||||
"compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java",
|
|
||||||
"js/js.ast/src/org/jetbrains/kotlin/js/backend/JsReservedIdentifiers.java",
|
|
||||||
"js/js.ast/src/org/jetbrains/kotlin/js/backend/JsToStringGenerationVisitor.java",
|
|
||||||
"js/js.sourcemap/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.kt",
|
|
||||||
)
|
|
||||||
) { _, source ->
|
) { _, source ->
|
||||||
"gnu.trove" in source
|
"gnu.trove" in source
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user