diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInliner/UsageReplacementStrategy.kt b/idea/src/org/jetbrains/kotlin/idea/codeInliner/UsageReplacementStrategy.kt index b1be6653caf..bad7fc68451 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInliner/UsageReplacementStrategy.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInliner/UsageReplacementStrategy.kt @@ -142,6 +142,7 @@ private fun UsageReplacementStrategy.specialUsageProcessing( ): Boolean { when (val usageParent = usage.parent) { is KtCallableReferenceExpression -> { + if (usageParent.callableReference != usage) return false val grandParent = usageParent.parent ConvertReferenceToLambdaIntention().applyTo(usageParent, null) (grandParent as? KtElement)?.let { diff --git a/idea/testData/refactoring/inline/function/ReferenceReceiver.kt b/idea/testData/refactoring/inline/function/ReferenceReceiver.kt new file mode 100644 index 00000000000..bd0ec6395aa --- /dev/null +++ b/idea/testData/refactoring/inline/function/ReferenceReceiver.kt @@ -0,0 +1,6 @@ +fun main() { + val first = listOf("hello") + val second = listOf("hello", "world") + val result = second.any(first::contains) + println(result) +} \ No newline at end of file diff --git a/idea/testData/refactoring/inline/function/ReferenceReceiver.kt.after b/idea/testData/refactoring/inline/function/ReferenceReceiver.kt.after new file mode 100644 index 00000000000..fb3ace5713f --- /dev/null +++ b/idea/testData/refactoring/inline/function/ReferenceReceiver.kt.after @@ -0,0 +1,5 @@ +fun main() { + val second = listOf("hello", "world") + val result = second.any(listOf("hello")::contains) + println(result) +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/inline/InlineTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/inline/InlineTestGenerated.java index 632b52a8dd3..dc3cdbab607 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/inline/InlineTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/inline/InlineTestGenerated.java @@ -80,6 +80,11 @@ public class InlineTestGenerated extends AbstractInlineTest { runTest("idea/testData/refactoring/inline/function/Reference.kt"); } + @TestMetadata("ReferenceReceiver.kt") + public void testReferenceReceiver() throws Exception { + runTest("idea/testData/refactoring/inline/function/ReferenceReceiver.kt"); + } + @TestMetadata("ReturnNotInTheEnd.kt") public void testReturnNotInTheEnd() throws Exception { runTest("idea/testData/refactoring/inline/function/ReturnNotInTheEnd.kt");