diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt index f2051e5ebfa..df58f2bae73 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinRecursiveCallLineMarkerProvider.kt @@ -80,7 +80,8 @@ public class KotlinRecursiveCallLineMarkerProvider() : LineMarkerProvider { val receiverOwner = when (receiver) { is ExpressionReceiver -> { - val thisRef = (receiver.getExpression() as? JetThisExpression)?.getInstanceReference() ?: return true + val thisRef = (JetPsiUtil.deparenthesize(receiver.getExpression()) as? + JetThisExpression)?.getInstanceReference() ?: return true bindingContext[BindingContext.REFERENCE_TARGET, thisRef] ?: return true } diff --git a/idea/testData/codeInsight/lineMarker/recursiveCall/thisQualifier.kt b/idea/testData/codeInsight/lineMarker/recursiveCall/thisQualifier.kt index d4a36ec801c..db5f9f489a8 100644 --- a/idea/testData/codeInsight/lineMarker/recursiveCall/thisQualifier.kt +++ b/idea/testData/codeInsight/lineMarker/recursiveCall/thisQualifier.kt @@ -7,6 +7,7 @@ class Outer { if (a > 0) { this.f(a - 1) this@F.f(a - 1) + ((this@F)).f(a - 1) this@Outer.f(a - 1) }