Add missed calcHashCode for ModuleSourceScope subclasses

This commit is contained in:
Vladimir Dolzhenko
2020-02-23 23:24:16 +01:00
parent 035cc57cf4
commit 1f47c6d54f
2 changed files with 14 additions and 9 deletions
@@ -250,6 +250,7 @@ private abstract class ModuleSourceScope(val module: Module) : GlobalSearchScope
override fun isSearchInLibraries() = false
}
@Suppress("EqualsOrHashCode") // DelegatingGlobalSearchScope requires to provide calcHashCode()
private class ModuleProductionSourceScope(module: Module) : ModuleSourceScope(module) {
val moduleFileIndex = ModuleRootManager.getInstance(module).fileIndex
@@ -258,8 +259,7 @@ private class ModuleProductionSourceScope(module: Module) : ModuleSourceScope(mo
return (other is ModuleProductionSourceScope && module == other.module)
}
// KT-6206
override fun hashCode(): Int = 31 * module.hashCode()
override fun calcHashCode(): Int = 31 * module.hashCode()
override fun contains(file: VirtualFile) =
moduleFileIndex.isInSourceContentWithoutInjected(file) && !moduleFileIndex.isInTestSourceContentKotlinAware(file)
@@ -267,6 +267,7 @@ private class ModuleProductionSourceScope(module: Module) : ModuleSourceScope(mo
override fun toString() = "ModuleProductionSourceScope($module)"
}
@Suppress("EqualsOrHashCode") // DelegatingGlobalSearchScope requires to provide calcHashCode()
private class ModuleTestSourceScope(module: Module) : ModuleSourceScope(module) {
val moduleFileIndex = ModuleRootManager.getInstance(module).fileIndex
@@ -275,8 +276,7 @@ private class ModuleTestSourceScope(module: Module) : ModuleSourceScope(module)
return (other is ModuleTestSourceScope && module == other.module)
}
// KT-6206
override fun hashCode(): Int = 37 * module.hashCode()
override fun calcHashCode(): Int = 37 * module.hashCode()
override fun contains(file: VirtualFile) = moduleFileIndex.isInTestSourceContentKotlinAware(file)
@@ -325,6 +325,7 @@ open class LibraryInfo(val project: Project, val library: Library) : IdeaModuleI
}
override fun hashCode(): Int = 43 * library.hashCode()
}
data class LibrarySourceInfo(val project: Project, val library: Library, override val binariesModuleInfo: BinaryModuleInfo) :
@@ -388,6 +389,7 @@ object NotUnderContentRootModuleInfo : IdeaModuleInfo {
get() = platform.single().findAnalyzerServices()
}
@Suppress("EqualsOrHashCode") // DelegatingGlobalSearchScope requires to provide calcHashCode()
private class LibraryWithoutSourceScope(project: Project, private val library: Library) :
LibraryScopeBase(project, library.getFiles(OrderRootType.CLASSES), arrayOf<VirtualFile>()) {
@@ -395,11 +397,12 @@ private class LibraryWithoutSourceScope(project: Project, private val library: L
override fun equals(other: Any?) = other is LibraryWithoutSourceScope && library == other.library
override fun hashCode() = library.hashCode()
override fun calcHashCode(): Int = library.hashCode()
override fun toString() = "LibraryWithoutSourceScope($library)"
}
@Suppress("EqualsOrHashCode") // DelegatingGlobalSearchScope requires to provide calcHashCode()
private class LibrarySourceScope(project: Project, private val library: Library) :
LibraryScopeBase(project, arrayOf<VirtualFile>(), library.getFiles(OrderRootType.SOURCES)) {
@@ -407,18 +410,19 @@ private class LibrarySourceScope(project: Project, private val library: Library)
override fun equals(other: Any?) = other is LibrarySourceScope && library == other.library
override fun hashCode() = library.hashCode()
override fun calcHashCode(): Int = library.hashCode()
override fun toString() = "LibrarySourceScope($library)"
}
//TODO: (module refactoring) android sdk has modified scope
@Suppress("EqualsOrHashCode") // DelegatingGlobalSearchScope requires to provide calcHashCode()
private class SdkScope(project: Project, val sdk: Sdk) :
LibraryScopeBase(project, sdk.rootProvider.getFiles(OrderRootType.CLASSES), arrayOf<VirtualFile>()) {
override fun equals(other: Any?) = other is SdkScope && sdk == other.sdk
override fun hashCode() = sdk.hashCode()
override fun calcHashCode(): Int = sdk.hashCode()
override fun toString() = "SdkScope($sdk)"
}
@@ -23,6 +23,7 @@ import com.intellij.psi.search.DelegatingGlobalSearchScope
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
@Suppress("EqualsOrHashCode") // DelegatingGlobalSearchScope requires to provide calcHashCode()
class KotlinSourceFilterScope private constructor(
delegate: GlobalSearchScope,
private val includeProjectSourceFiles: Boolean,
@@ -73,8 +74,8 @@ class KotlinSourceFilterScope private constructor(
return true
}
override fun hashCode(): Int {
var result = super.hashCode()
override fun calcHashCode(): Int {
var result = super.calcHashCode()
result = 31 * result + includeProjectSourceFiles.hashCode()
result = 31 * result + includeLibrarySourceFiles.hashCode()
result = 31 * result + includeClassFiles.hashCode()