KT-7256 False "Receiver parameter not used" for property with delegation

#KT-7256 fixed
This commit is contained in:
Evgeny Gerashchenko
2015-05-27 14:55:29 +03:00
parent 6e444baedb
commit 2a23bc79f3
2 changed files with 7 additions and 0 deletions
@@ -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
@@ -0,0 +1,5 @@
class MyProperty {
fun get(thisRef: Any?, desc: PropertyMetadata) = ":)"
}
val Any.ext by MyProperty()