User: joe Date: 07 May 25 15:09 Revision: a4fbe479305ed1d6e532fc32eee87b1e6529a872 Summary: Cache desugared classes TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9977&personal=false Index: src/main/kotlin/platform/mixin/handlers/desugar/DesugarUtil.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/desugar/DesugarUtil.kt (revision af7e57e5cacfb12afce5059ff777281162865205) +++ src/main/kotlin/platform/mixin/handlers/desugar/DesugarUtil.kt (revision a4fbe479305ed1d6e532fc32eee87b1e6529a872) @@ -20,6 +20,7 @@ package com.demonwav.mcdev.platform.mixin.handlers.desugar +import com.demonwav.mcdev.util.cached import com.intellij.openapi.project.Project import com.intellij.openapi.util.Key import com.intellij.psi.JavaRecursiveElementWalkingVisitor @@ -44,14 +45,16 @@ } fun desugar(project: Project, clazz: PsiClass): PsiClass { + return clazz.cached { - val desugaredFile = clazz.containingFile.copy() as PsiFile - val desugaredClass = PsiTreeUtil.findSameElementInCopy(clazz, desugaredFile) - setOriginalRecursive(desugaredClass, clazz) - for (desugarer in DESUGARERS) { - desugarer.desugar(project, desugaredClass) - } + val desugaredFile = clazz.containingFile.copy() as PsiFile + val desugaredClass = PsiTreeUtil.findSameElementInCopy(clazz, desugaredFile) + setOriginalRecursive(desugaredClass, clazz) + for (desugarer in DESUGARERS) { + desugarer.desugar(project, desugaredClass) + } - return desugaredClass + desugaredClass - } + } + } private fun setOriginalRecursive(desugared: PsiElement, original: PsiElement) { val desugaredElements = mutableListOf()