Skip to content

Commit ff4c0c4

Browse files
committed
Use Sequence during indexing and make SQL imports explicit
1 parent fdaf9f2 commit ff4c0c4

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

server/src/main/kotlin/org/javacs/kt/index/SymbolIndex.kt

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
package org.javacs.kt.index
22

3-
import org.jetbrains.exposed.sql.*
3+
import org.jetbrains.exposed.sql.and
4+
import org.jetbrains.exposed.sql.count
5+
import org.jetbrains.exposed.sql.deleteAll
6+
import org.jetbrains.exposed.sql.innerJoin
7+
import org.jetbrains.exposed.sql.replace
8+
import org.jetbrains.exposed.sql.select
9+
import org.jetbrains.exposed.sql.selectAll
10+
import org.jetbrains.exposed.sql.Table
411
import org.jetbrains.exposed.sql.transactions.transaction
12+
import org.jetbrains.exposed.sql.SchemaUtils
513
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
614
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
715
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
@@ -55,13 +63,11 @@ class SymbolIndex {
5563

5664
progressFactory.create("Indexing").thenApply { progress ->
5765
try {
58-
val descriptors = allDescriptors(module)
59-
6066
// TODO: Incremental updates
6167
transaction(db) {
6268
Symbols.deleteAll()
6369

64-
for (descriptor in descriptors) {
70+
for (descriptor in allDescriptors(module)) {
6571
val descriptorFqn = descriptor.fqNameSafe
6672
val extensionReceiverFqn = descriptor.accept(ExtractSymbolExtensionReceiverType, Unit)?.takeIf { !it.isRoot }
6773

@@ -115,7 +121,7 @@ class SymbolIndex {
115121
) }
116122
}
117123

118-
private fun allDescriptors(module: ModuleDescriptor): Collection<DeclarationDescriptor> = allPackages(module)
124+
private fun allDescriptors(module: ModuleDescriptor): Sequence<DeclarationDescriptor> = allPackages(module)
119125
.map(module::getPackage)
120126
.flatMap {
121127
try {
@@ -126,7 +132,8 @@ class SymbolIndex {
126132
}
127133
}
128134

129-
private fun allPackages(module: ModuleDescriptor, pkgName: FqName = FqName.ROOT): Collection<FqName> = module
135+
private fun allPackages(module: ModuleDescriptor, pkgName: FqName = FqName.ROOT): Sequence<FqName> = module
130136
.getSubPackagesOf(pkgName) { it.toString() != "META-INF" }
131-
.flatMap { setOf(it) + allPackages(module, it) }
137+
.asSequence()
138+
.flatMap { sequenceOf(it) + allPackages(module, it) }
132139
}

0 commit comments

Comments
 (0)