From 4ee41d502a3a95b3ffdf11892a8749c091a2cf70 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Mon, 14 May 2018 14:50:23 +0300 Subject: [PATCH] Scratch: report errors at the correct line ^KT-24364 Fixed --- .../kotlin/idea/scratch/compile/KtCompilingExecutor.kt | 5 ++--- idea/testData/scratch/unresolvedMultiline.comp.after | 4 ++++ idea/testData/scratch/unresolvedMultiline.kts | 4 ++++ idea/testData/scratch/unresolvedMultiline.repl.after | 4 ++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/compile/KtCompilingExecutor.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/compile/KtCompilingExecutor.kt index d13f311fcfc..d868f4cf539 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/compile/KtCompilingExecutor.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/compile/KtCompilingExecutor.kt @@ -207,9 +207,8 @@ class KtCompilingExecutor(file: ScratchFile) : ScratchExecutor(file) { } private fun ScratchFile.findExpression(psiElement: PsiElement): ScratchExpression? { - val lineStart = psiElement.getLineNumber(true) - val lineEnd = psiElement.getLineNumber(false) - return getExpressions().firstOrNull { it.lineStart == lineStart || it.lineEnd == lineEnd } + val elementLine = psiElement.getLineNumber() + return getExpressions().firstOrNull { elementLine in it.lineStart..it.lineEnd } } private fun ScratchFile.findExpression(lineStart: Int, lineEnd: Int): ScratchExpression? { diff --git a/idea/testData/scratch/unresolvedMultiline.comp.after b/idea/testData/scratch/unresolvedMultiline.comp.after index 5cef0489a83..0e8ad49ce20 100644 --- a/idea/testData/scratch/unresolvedMultiline.comp.after +++ b/idea/testData/scratch/unresolvedMultiline.comp.after @@ -1,3 +1,7 @@ foo.forEach { // ERROR: Unresolved reference: foo; Cannot choose among the following candidates wi... 1 + 1 +} + +fun goo(a: String) { // ERROR: Unresolved reference: goo + super.goo(a) } \ No newline at end of file diff --git a/idea/testData/scratch/unresolvedMultiline.kts b/idea/testData/scratch/unresolvedMultiline.kts index b3da33ca920..a9de95ee983 100644 --- a/idea/testData/scratch/unresolvedMultiline.kts +++ b/idea/testData/scratch/unresolvedMultiline.kts @@ -1,3 +1,7 @@ foo.forEach { 1 + 1 +} + +fun goo(a: String) { + super.goo(a) } \ No newline at end of file diff --git a/idea/testData/scratch/unresolvedMultiline.repl.after b/idea/testData/scratch/unresolvedMultiline.repl.after index ef7666a5543..e1c465e67a8 100644 --- a/idea/testData/scratch/unresolvedMultiline.repl.after +++ b/idea/testData/scratch/unresolvedMultiline.repl.after @@ -1,3 +1,7 @@ foo.forEach { // ERROR: error: unresolved reference: foo 1 + 1 } + +fun goo(a: String) { // ERROR: error: unresolved reference: goo + super.goo(a) +} \ No newline at end of file