From 9dd6efeb46ee7a004716f5c89501d11bda9861bb Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 19 Oct 2018 20:48:42 +0300 Subject: [PATCH] Fix sporadic false-positive "Receiver parameter is never used" for local functions (KT-26481) --- .../UnusedReceiverParameterInspection.kt | 2 +- .../unusedReceiverParameter/kt26481.kt | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 idea/testData/inspections/unusedReceiverParameter/kt26481.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt index 184e9d16d30..0024951fd32 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt @@ -76,7 +76,7 @@ class UnusedReceiverParameterInspection : AbstractKotlinInspection() { val receiverTypeDeclaration = receiverType.constructor.declarationDescriptor if (DescriptorUtils.isCompanionObject(receiverTypeDeclaration)) return - val callable = callableDeclaration.descriptor ?: return + val callable = context[BindingContext.DECLARATION_TO_DESCRIPTOR, callableDeclaration] ?: return if (callableDeclaration.isMainFunction(callable)) return diff --git a/idea/testData/inspections/unusedReceiverParameter/kt26481.kt b/idea/testData/inspections/unusedReceiverParameter/kt26481.kt new file mode 100644 index 00000000000..d85ca779d92 --- /dev/null +++ b/idea/testData/inspections/unusedReceiverParameter/kt26481.kt @@ -0,0 +1,20 @@ +class My(val x: Int) +class Your(val x: Int) + +fun Your.foo(): Int { + println(x) + fun My.bar(): Int { + return x + } + return My(0).bar() + x +} + +fun bar() { + fun String.foo() = this.length + "".foo() +} + +fun baz() { + fun String.foo() = length + "".foo() +} \ No newline at end of file