Debugger: do not fail if j2k couldn't convert expression creating codeFragment from text

This commit is contained in:
Natalia Selezneva
2017-12-27 14:55:23 +03:00
committed by Nikolay Krasko
parent c023831a00
commit 4d6c83b5b9
@@ -242,9 +242,10 @@ class KotlinCodeFragmentFactory: CodeFragmentFactory() {
null null
} }
if (javaExpression != null) { if (javaExpression != null && !PsiTreeUtil.hasErrorElements(javaExpression)) {
var convertedFragment: KtExpressionCodeFragment? = null var convertedFragment: KtExpressionCodeFragment? = null
project.executeWriteCommand("Convert java expression to kotlin in Evaluate Expression") { project.executeWriteCommand("Convert java expression to kotlin in Evaluate Expression") {
try {
val newText = javaExpression.j2kText() val newText = javaExpression.j2kText()
val newImports = importList?.j2kText() val newImports = importList?.j2kText()
if (newText != null) { if (newText != null) {
@@ -259,6 +260,11 @@ class KotlinCodeFragmentFactory: CodeFragmentFactory() {
AfterConversionPass(project, J2kPostProcessor(formatCode = false)).run(convertedFragment!!, range = null) AfterConversionPass(project, J2kPostProcessor(formatCode = false)).run(convertedFragment!!, range = null)
} }
} }
catch (e: Throwable) {
// ignored because text can be invalid
LOG.error("Couldn't convert expression:\n`${javaExpression.text}`", e)
}
}
return convertedFragment ?: kotlinCodeFragment return convertedFragment ?: kotlinCodeFragment
} }
} }