Debugger: check that file isn't shorter than breakpoint line (ex. after deleting some lines in file during debug)

This commit is contained in:
Natalia Ukhorskaya
2015-07-14 12:48:39 +03:00
parent 03de31f1b6
commit 98da75c768
@@ -30,6 +30,7 @@ import com.intellij.openapi.progress.ProcessCanceledException
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.CharsetToolkit
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFileFactory
import com.intellij.psi.impl.PsiFileFactoryImpl
@@ -101,6 +102,13 @@ object KotlinEvaluationBuilder: EvaluatorBuilder {
throw EvaluateExceptionUtil.createEvaluateException("Couldn't evaluate kotlin expression at $position")
}
val document = PsiDocumentManager.getInstance(file.getProject()).getDocument(file)
if (document == null || document.getLineCount() < position.getLine()) {
throw EvaluateExceptionUtil.createEvaluateException(
"Couldn't evaluate kotlin expression: breakpoint is placed outside the file. " +
"It may happen when you've changed source file after starting a debug process.")
}
if (codeFragment.getContext() !is JetElement) {
val attachments = arrayOf(attachmentByPsiFile(position.getFile()),
attachmentByPsiFile(codeFragment),