Skip to content

Commit b9072a3

Browse files
committed
Kotlin: Share a Psi2Ir instance
1 parent 780f5ab commit b9072a3

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import org.jetbrains.kotlin.psi.psiUtil.startOffset
1616
class CommentExtractor(private val fileExtractor: KotlinFileExtractor, private val file: IrFile, private val fileLabel: Label<out DbFile>) {
1717
private val tw = fileExtractor.tw
1818
private val logger = fileExtractor.logger
19-
private val ktFile = Psi2Ir().getKtFile(file)
19+
private val psi2Ir = Psi2Ir()
20+
private val ktFile = psi2Ir.getKtFile(file)
2021

2122
fun extract() {
2223
if (ktFile == null) {
@@ -85,7 +86,7 @@ class CommentExtractor(private val fileExtractor: KotlinFileExtractor, private v
8586
val ownerPsi = getKDocOwner(comment) ?: return
8687

8788
val owners = mutableListOf<IrElement>()
88-
file.accept(IrVisitorLookup(ownerPsi, file), owners)
89+
file.accept(IrVisitorLookup(psi2Ir, ownerPsi, file), owners)
8990

9091
for (ownerIr in owners) {
9192
val ownerLabel =

java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import org.jetbrains.kotlin.ir.declarations.IrFile
88
import org.jetbrains.kotlin.ir.util.isFakeOverride
99
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
1010

11-
class IrVisitorLookup(private val psi: PsiElement, private val file: IrFile) :
11+
class IrVisitorLookup(private val psi2Ir: Psi2Ir, private val psi: PsiElement, private val file: IrFile) :
1212
IrElementVisitor<Unit, MutableCollection<IrElement>> {
1313
private val location = psi.getLocation()
1414

@@ -27,12 +27,12 @@ class IrVisitorLookup(private val psi: PsiElement, private val file: IrFile) :
2727
}
2828

2929
if (location.contains(elementLocation)) {
30-
val psiElement = Psi2Ir().findPsiElement(element, file)
30+
val psiElement = psi2Ir.findPsiElement(element, file)
3131
if (psiElement == psi) {
3232
// There can be multiple IrElements that match the same PSI element.
3333
data.add(element)
3434
}
3535
}
3636
element.acceptChildren(this, data)
3737
}
38-
}
38+
}

0 commit comments

Comments
 (0)