1
1
package org.javacs.kt.index
2
2
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
4
11
import org.jetbrains.exposed.sql.transactions.transaction
12
+ import org.jetbrains.exposed.sql.SchemaUtils
5
13
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
6
14
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
7
15
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
@@ -55,13 +63,11 @@ class SymbolIndex {
55
63
56
64
progressFactory.create(" Indexing" ).thenApply { progress ->
57
65
try {
58
- val descriptors = allDescriptors(module)
59
-
60
66
// TODO: Incremental updates
61
67
transaction(db) {
62
68
Symbols .deleteAll()
63
69
64
- for (descriptor in descriptors ) {
70
+ for (descriptor in allDescriptors(module) ) {
65
71
val descriptorFqn = descriptor.fqNameSafe
66
72
val extensionReceiverFqn = descriptor.accept(ExtractSymbolExtensionReceiverType , Unit )?.takeIf { ! it.isRoot }
67
73
@@ -115,7 +121,7 @@ class SymbolIndex {
115
121
) }
116
122
}
117
123
118
- private fun allDescriptors (module : ModuleDescriptor ): Collection <DeclarationDescriptor > = allPackages(module)
124
+ private fun allDescriptors (module : ModuleDescriptor ): Sequence <DeclarationDescriptor > = allPackages(module)
119
125
.map(module::getPackage)
120
126
.flatMap {
121
127
try {
@@ -126,7 +132,8 @@ class SymbolIndex {
126
132
}
127
133
}
128
134
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
130
136
.getSubPackagesOf(pkgName) { it.toString() != " META-INF" }
131
- .flatMap { setOf (it) + allPackages(module, it) }
137
+ .asSequence()
138
+ .flatMap { sequenceOf(it) + allPackages(module, it) }
132
139
}
0 commit comments