From 3c79eab2fd71c1e0181f7cebca27ad0cb9881ce1 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 13 Apr 2016 15:15:34 +0300 Subject: [PATCH] Line Markers: Show recursion line markers for extension function calls with different receivers #KT-11495 Fixed --- ChangeLog.md | 1 + .../idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt | 2 +- .../lineMarker/recursiveCall/differentImplicitReceiver.kt | 2 +- idea/testData/codeInsight/lineMarker/recursiveCall/extension.kt | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index a520c1a62b2..78ad4f8a99b 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -15,6 +15,7 @@ Issues fixed: - [KT-11145](https://youtrack.jetbrains.com/issue/KT-11145) Use progress indicator when searching usages in Introduce Parameter - [KT-11155](https://youtrack.jetbrains.com/issue/KT-11155) Allow running multiple Kotlin classes as well as running mixtures of Kotlin and Java classes +- [KT-11495](https://youtrack.jetbrains.com/issue/KT-11495) Show recursion line markers for extension function calls with different receiver #### Debugger diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt index fd14519d3c0..2a255a7fa44 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.parents import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension import org.jetbrains.kotlin.resolve.inline.InlineUtil import org.jetbrains.kotlin.resolve.scopes.receivers.Receiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue @@ -104,7 +105,6 @@ class KotlinRecursiveCallLineMarkerProvider() : LineMarkerProvider { } } - if (isDifferentReceiver(resolvedCall.extensionReceiver)) return false if (isDifferentReceiver(resolvedCall.dispatchReceiver)) return false return true } diff --git a/idea/testData/codeInsight/lineMarker/recursiveCall/differentImplicitReceiver.kt b/idea/testData/codeInsight/lineMarker/recursiveCall/differentImplicitReceiver.kt index e4367b9422c..f6969208a28 100644 --- a/idea/testData/codeInsight/lineMarker/recursiveCall/differentImplicitReceiver.kt +++ b/idea/testData/codeInsight/lineMarker/recursiveCall/differentImplicitReceiver.kt @@ -1,6 +1,6 @@ fun Any.foo() { with("different extension receiver") { - foo() + foo() } } diff --git a/idea/testData/codeInsight/lineMarker/recursiveCall/extension.kt b/idea/testData/codeInsight/lineMarker/recursiveCall/extension.kt index 0aecdd4abe4..fe83970440b 100644 --- a/idea/testData/codeInsight/lineMarker/recursiveCall/extension.kt +++ b/idea/testData/codeInsight/lineMarker/recursiveCall/extension.kt @@ -1,5 +1,5 @@ fun Any.f(a: Int) { - "".f(1) + "".f(1) this.f(2) f(3) } \ No newline at end of file