From 2a23bc79f32697e32f6ee1c06199c438f0479da2 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Wed, 27 May 2015 14:55:29 +0300 Subject: [PATCH] KT-7256 False "Receiver parameter not used" for property with delegation #KT-7256 fixed --- .../idea/inspections/UnusedReceiverParameterInspection.kt | 2 ++ .../inspections/unusedReceiverParameter/delegatedProperty.kt | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 idea/testData/inspections/unusedReceiverParameter/delegatedProperty.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt index 6bd71d147b2..ba7b12ca35a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.psi.psiUtil.isOverridable import org.jetbrains.kotlin.psi.typeRefHelpers.setReceiverTypeReference import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver +import kotlin.properties.Delegates public class UnusedReceiverParameterInspection : AbstractKotlinInspection() { override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor { @@ -37,6 +38,7 @@ public class UnusedReceiverParameterInspection : AbstractKotlinInspection() { val receiverTypeReference = callableDeclaration.getReceiverTypeReference() if (receiverTypeReference == null) return if (callableDeclaration.isOverridable() || callableDeclaration.hasModifier(JetTokens.OVERRIDE_KEYWORD)) return + if (callableDeclaration is JetProperty && callableDeclaration.hasDelegateExpression()) return val callable = callableDeclaration.descriptor diff --git a/idea/testData/inspections/unusedReceiverParameter/delegatedProperty.kt b/idea/testData/inspections/unusedReceiverParameter/delegatedProperty.kt new file mode 100644 index 00000000000..fef31003424 --- /dev/null +++ b/idea/testData/inspections/unusedReceiverParameter/delegatedProperty.kt @@ -0,0 +1,5 @@ +class MyProperty { + fun get(thisRef: Any?, desc: PropertyMetadata) = ":)" +} + +val Any.ext by MyProperty()