Fix IntArrayList deprecation warning in JvmDependenciesIndexImpl

Copy relevant parts of deprecated IntelliJ's IntArrayList to a new util
class. Also fix some minor IDE inspections.
This commit is contained in:
Alexander Udalov
2021-01-12 14:25:15 +01:00
parent 8ae19f5cd7
commit ee7691f1ad
2 changed files with 42 additions and 4 deletions
@@ -20,10 +20,10 @@ import com.intellij.ide.highlighter.JavaClassFileType
import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.vfs.VfsUtilCore
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.containers.IntArrayList
import gnu.trove.THashMap
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.utils.IntArrayList
import java.util.*
// speeds up finding files/classes in classpath/java source roots
@@ -121,7 +121,7 @@ class JvmDependenciesIndexImpl(_roots: List<JavaRoot>) : JvmDependenciesIndex {
// NOTE: indices manipulation instead of using caches.reversed() is here for performance reasons
for (cacheIndex in caches.lastIndex downTo 0) {
val cacheRootIndices = caches[cacheIndex].rootIndices
for (i in 0..cacheRootIndices.size() - 1) {
for (i in 0 until cacheRootIndices.size()) {
val rootIndex = cacheRootIndices[i]
if (rootIndex <= processedRootsUpTo) continue // roots with those indices have been processed by now
@@ -137,7 +137,7 @@ class JvmDependenciesIndexImpl(_roots: List<JavaRoot>) : JvmDependenciesIndex {
}
}
}
processedRootsUpTo = if (cacheRootIndices.isEmpty) processedRootsUpTo else cacheRootIndices.get(cacheRootIndices.size() - 1)
processedRootsUpTo = if (cacheRootIndices.isEmpty) processedRootsUpTo else cacheRootIndices[cacheRootIndices.size() - 1]
}
if (request is FindClassRequest) {
@@ -156,7 +156,7 @@ class JvmDependenciesIndexImpl(_roots: List<JavaRoot>) : JvmDependenciesIndex {
cachesPath: List<Cache>
): VirtualFile? {
if (rootIndex >= maxIndex) {
for (i in (fillCachesAfter + 1)..(cachesPath.size - 1)) {
for (i in (fillCachesAfter + 1) until cachesPath.size) {
// we all know roots that contain this package by now
cachesPath[i].rootIndices.add(maxIndex)
cachesPath[i].rootIndices.trimToSize()
@@ -0,0 +1,38 @@
/*
* Copyright 2010-2021 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.utils
// Based on com.intellij.util.containers.IntArrayList.
class IntArrayList(initialCapacity: Int) {
private var data = IntArray(initialCapacity)
private var size = 0
fun trimToSize() {
if (size < data.size) {
data = data.copyOf(size)
}
}
private fun ensureCapacity(minCapacity: Int) {
if (minCapacity > data.size) {
data = data.copyOf(maxOf(data.size * 3 / 2 + 1, minCapacity))
}
}
fun size(): Int = size
val isEmpty: Boolean get() = size == 0
operator fun get(index: Int): Int = data[index]
fun add(o: Int) {
ensureCapacity(size + 1)
data[size++] = o
}
override fun toString(): String =
(0 until size).joinToString(", ", "[", "]") { this[it].toString() }
}