Skip to content

Commit a4fbe47

Browse files
committed
Cache desugared classes
1 parent af7e57e commit a4fbe47

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/main/kotlin/platform/mixin/handlers/desugar/DesugarUtil.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package com.demonwav.mcdev.platform.mixin.handlers.desugar
2222

23+
import com.demonwav.mcdev.util.cached
2324
import com.intellij.openapi.project.Project
2425
import com.intellij.openapi.util.Key
2526
import com.intellij.psi.JavaRecursiveElementWalkingVisitor
@@ -44,13 +45,15 @@ object DesugarUtil {
4445
}
4546

4647
fun desugar(project: Project, clazz: PsiClass): PsiClass {
47-
val desugaredFile = clazz.containingFile.copy() as PsiFile
48-
val desugaredClass = PsiTreeUtil.findSameElementInCopy(clazz, desugaredFile)
49-
setOriginalRecursive(desugaredClass, clazz)
50-
for (desugarer in DESUGARERS) {
51-
desugarer.desugar(project, desugaredClass)
48+
return clazz.cached {
49+
val desugaredFile = clazz.containingFile.copy() as PsiFile
50+
val desugaredClass = PsiTreeUtil.findSameElementInCopy(clazz, desugaredFile)
51+
setOriginalRecursive(desugaredClass, clazz)
52+
for (desugarer in DESUGARERS) {
53+
desugarer.desugar(project, desugaredClass)
54+
}
55+
desugaredClass
5256
}
53-
return desugaredClass
5457
}
5558

5659
private fun setOriginalRecursive(desugared: PsiElement, original: PsiElement) {

0 commit comments

Comments
 (0)