From 085c7d30ed0a3533c93394e982dcafe28944cf7c Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 13 Feb 2018 12:11:09 +0300 Subject: [PATCH] Specify expl. lambda signature: derive from offset independent intention Related to KT-22492 --- .../intentions/SpecifyExplicitLambdaSignatureIntention.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyExplicitLambdaSignatureIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyExplicitLambdaSignatureIntention.kt index a8d84c9ec6d..f5315a3547e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyExplicitLambdaSignatureIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyExplicitLambdaSignatureIntention.kt @@ -29,10 +29,11 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.types.isError -class SpecifyExplicitLambdaSignatureIntention : - SelfTargetingIntention(KtLambdaExpression::class.java, "Specify explicit lambda signature"), LowPriorityAction { +class SpecifyExplicitLambdaSignatureIntention : SelfTargetingOffsetIndependentIntention( + KtLambdaExpression::class.java, "Specify explicit lambda signature" +), LowPriorityAction { - override fun isApplicableTo(element: KtLambdaExpression, caretOffset: Int): Boolean { + override fun isApplicableTo(element: KtLambdaExpression): Boolean { if (element.functionLiteral.arrow != null && element.valueParameters.all { it.typeReference != null }) return false val functionDescriptor = element.analyze(BodyResolveMode.PARTIAL)[BindingContext.FUNCTION, element.functionLiteral] ?: return false return functionDescriptor.valueParameters.none { it.type.isError }