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,21 +242,27 @@ 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") {
val newText = javaExpression.j2kText() try {
val newImports = importList?.j2kText() val newText = javaExpression.j2kText()
if (newText != null) { val newImports = importList?.j2kText()
convertedFragment = KtExpressionCodeFragment( if (newText != null) {
project, convertedFragment = KtExpressionCodeFragment(
kotlinCodeFragment.name, project,
newText, kotlinCodeFragment.name,
newImports, newText,
kotlinCodeFragment.context newImports,
) kotlinCodeFragment.context
)
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