User: joe Date: 04 Oct 25 11:33 Revision: 4e906fe0b19ece950f5dc8420cc362446eda8cc2 Summary: Prevent recursion in translation dataflow TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=10148&personal=false Index: src/main/kotlin/translations/identification/TranslationIdentifier.kt =================================================================== --- src/main/kotlin/translations/identification/TranslationIdentifier.kt (revision a7ca328baac4cc7a697133d668971e5b076354e4) +++ src/main/kotlin/translations/identification/TranslationIdentifier.kt (revision 4e906fe0b19ece950f5dc8420cc362446eda8cc2) @@ -37,6 +37,7 @@ import com.intellij.codeInsight.completion.CompletionUtilCore import com.intellij.codeInspection.dataFlow.CommonDataflow import com.intellij.openapi.project.Project +import com.intellij.openapi.util.RecursionManager import com.intellij.psi.CommonClassNames import com.intellij.psi.JavaPsiFacade import com.intellij.psi.PsiElement @@ -86,7 +87,11 @@ )?.constantValue as? Boolean ?: false val translationKey = when (val javaPsi = element.javaPsi) { - is PsiExpression -> CommonDataflow.computeValue(javaPsi) as? String + is PsiExpression -> { + RecursionManager.doPreventingRecursion(javaPsi, false) { + CommonDataflow.computeValue(javaPsi) as? String + } + } else -> element.evaluateString() }?.replace(CompletionUtilCore.DUMMY_IDENTIFIER_TRIMMED, "") ?: return null