diff --git a/plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt b/plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt index 3044c1d6f42a..969628a0a801 100644 --- a/plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt +++ b/plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt @@ -307,11 +307,7 @@ class KotlinUFunctionCallExpression( callableDeclaration.containingClass } ?: return null - val containingUClass = getContainingUClass() - if (implicitReceiver is PsiClass && implicitReceiver == containingUClass?.javaPsi) { - // Implicit `this` - return KotlinUImplicitThis(implicitReceiver, receiverType, this) - } + // Lambda receiver var enclosingLambda = this.getParentOfType() while (enclosingLambda != null) { @@ -334,6 +330,12 @@ class KotlinUFunctionCallExpression( enclosingLambda = enclosingLambda.getParentOfType() } + val containingUClass = getContainingUClass() + if (implicitReceiver is PsiClass && implicitReceiver == containingUClass?.javaPsi) { + // Implicit `this` + return KotlinUImplicitThis(implicitReceiver, receiverType, this) + } + return null }