diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index ccea1824973..623fb8dcb49 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -1385,11 +1385,6 @@
Kotlin
-
- org.jetbrains.kotlin.idea.intentions.ConvertLambdaToReferenceIntention
- Kotlin
-
-
org.jetbrains.kotlin.idea.intentions.ConvertReferenceToLambdaIntention
Kotlin
@@ -1953,8 +1948,8 @@
diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertLambdaToReferenceIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertLambdaToReferenceIntention.kt
index acbef8891b7..3420130175c 100644
--- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertLambdaToReferenceIntention.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertLambdaToReferenceIntention.kt
@@ -40,12 +40,7 @@ import org.jetbrains.kotlin.types.isError
import org.jetbrains.kotlin.types.typeUtil.isTypeParameter
import org.jetbrains.kotlin.types.typeUtil.isUnit
-class ConvertLambdaToReferenceInspection : IntentionBasedInspection(
- ConvertLambdaToReferenceIntention::class,
- { it -> ConvertLambdaToReferenceIntention.shouldSuggestToConvert(it) }
-) {
- override fun inspectionTarget(element: KtLambdaExpression) = element.bodyExpression?.statements?.singleOrNull()
-}
+class ConvertLambdaToReferenceInspection : IntentionBasedInspection(ConvertLambdaToReferenceIntention::class)
open class ConvertLambdaToReferenceIntention(text: String) :
SelfTargetingOffsetIndependentIntention(KtLambdaExpression::class.java, text) {
@@ -219,10 +214,6 @@ open class ConvertLambdaToReferenceIntention(text: String) :
}
companion object {
- internal fun shouldSuggestToConvert(element: KtLambdaExpression): Boolean {
- val referenceName = buildReferenceText(lambdaExpression = element, shortTypes = true) ?: return false
- return referenceName.length < element.text.length
- }
private fun buildReferenceText(lambdaExpression: KtLambdaExpression, shortTypes: Boolean): String? {
val singleStatement = lambdaExpression.singleStatementOrNull()
diff --git a/idea/testData/inspections/convertLambdaToReference/inspectionData/expected.xml b/idea/testData/inspections/convertLambdaToReference/inspectionData/expected.xml
index da0cde82bb0..2ee3e2bbbfb 100644
--- a/idea/testData/inspections/convertLambdaToReference/inspectionData/expected.xml
+++ b/idea/testData/inspections/convertLambdaToReference/inspectionData/expected.xml
@@ -9,7 +9,15 @@
test.kt
- 14
+ 9
+ light_idea_test_case
+
+ Can be replaced with function reference
+ Convert lambda to reference
+
+
+ test.kt
+ 13
light_idea_test_case
Can be replaced with function reference
diff --git a/idea/testData/inspections/convertLambdaToReference/test.kt b/idea/testData/inspections/convertLambdaToReference/test.kt
index abaa19071b9..8850de8c487 100644
--- a/idea/testData/inspections/convertLambdaToReference/test.kt
+++ b/idea/testData/inspections/convertLambdaToReference/test.kt
@@ -4,7 +4,7 @@
class TheirWrapper(val x: Int)
val x = { y: Int -> TheirWrapper(y) }
-// Should not suggest to convert (too long reference)
+// Should suggest to convert despite of too long reference
fun foo(arg: TheirWrapper, convert: (TheirWrapper) -> String) = convert(arg)
val y = foo(TheirWrapper(42)) { it.toString() }