Skip to content

Commit 4e906fe

Browse files
committed
Prevent recursion in translation dataflow
1 parent a7ca328 commit 4e906fe

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/main/kotlin/translations/identification/TranslationIdentifier.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import com.intellij.codeInsight.AnnotationUtil
3737
import com.intellij.codeInsight.completion.CompletionUtilCore
3838
import com.intellij.codeInspection.dataFlow.CommonDataflow
3939
import com.intellij.openapi.project.Project
40+
import com.intellij.openapi.util.RecursionManager
4041
import com.intellij.psi.CommonClassNames
4142
import com.intellij.psi.JavaPsiFacade
4243
import com.intellij.psi.PsiElement
@@ -86,7 +87,11 @@ object TranslationIdentifier {
8687
)?.constantValue as? Boolean ?: false
8788

8889
val translationKey = when (val javaPsi = element.javaPsi) {
89-
is PsiExpression -> CommonDataflow.computeValue(javaPsi) as? String
90+
is PsiExpression -> {
91+
RecursionManager.doPreventingRecursion(javaPsi, false) {
92+
CommonDataflow.computeValue(javaPsi) as? String
93+
}
94+
}
9095
else -> element.evaluateString()
9196
}?.replace(CompletionUtilCore.DUMMY_IDENTIFIER_TRIMMED, "") ?: return null
9297

0 commit comments

Comments
 (0)