Line Markers: Show recursion line markers for extension function calls with different receivers

#KT-11495 Fixed
This commit is contained in:
Alexey Sedunov
2016-04-13 15:15:34 +03:00
parent c93e13e28d
commit 3c79eab2fd
4 changed files with 4 additions and 3 deletions
+1
View File
@@ -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-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-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 #### Debugger
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.parents import org.jetbrains.kotlin.psi.psiUtil.parents
import org.jetbrains.kotlin.resolve.BindingContext 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.inline.InlineUtil
import org.jetbrains.kotlin.resolve.scopes.receivers.Receiver import org.jetbrains.kotlin.resolve.scopes.receivers.Receiver
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue 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 if (isDifferentReceiver(resolvedCall.dispatchReceiver)) return false
return true return true
} }
@@ -1,6 +1,6 @@
fun Any.foo() { fun Any.foo() {
with("different extension receiver") { with("different extension receiver") {
foo() <lineMarker>foo</lineMarker>()
} }
} }
@@ -1,5 +1,5 @@
fun Any.f(a: Int) { fun Any.f(a: Int) {
"".f(1) "".<lineMarker>f</lineMarker>(1)
this.<lineMarker>f</lineMarker>(2) this.<lineMarker>f</lineMarker>(2)
<lineMarker>f</lineMarker>(3) <lineMarker>f</lineMarker>(3)
} }