diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertLambdaToReferenceIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertLambdaToReferenceIntention.kt index d20ef968036..b39723cf36f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertLambdaToReferenceIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertLambdaToReferenceIntention.kt @@ -78,7 +78,7 @@ open class ConvertLambdaToReferenceIntention(text: String) : dispatchReceiverParameter != null || extensionReceiverParameter != null } - if (!descriptorHasReceiver && explicitReceiver != null) return false + if (!descriptorHasReceiver && explicitReceiver != null && calleeDescriptor !is ClassConstructorDescriptor) return false val noBoundReferences = !callableExpression.languageVersionSettings.supportsFeature(LanguageFeature.BoundCallableReferences) if (noBoundReferences && descriptorHasReceiver && explicitReceiver == null) return false diff --git a/idea/testData/intentions/convertLambdaToReference/constructor2.kt b/idea/testData/intentions/convertLambdaToReference/constructor2.kt new file mode 100644 index 00000000000..19ce535e4b8 --- /dev/null +++ b/idea/testData/intentions/convertLambdaToReference/constructor2.kt @@ -0,0 +1,9 @@ +class A { + class B {} +} + +fun foo(x: () -> A.B) {} + +fun main() { + foo { A.B() } +} \ No newline at end of file diff --git a/idea/testData/intentions/convertLambdaToReference/constructor2.kt.after b/idea/testData/intentions/convertLambdaToReference/constructor2.kt.after new file mode 100644 index 00000000000..d760fc9ca73 --- /dev/null +++ b/idea/testData/intentions/convertLambdaToReference/constructor2.kt.after @@ -0,0 +1,9 @@ +class A { + class B {} +} + +fun foo(x: () -> A.B) {} + +fun main() { + foo(A::B) +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 8cbbec717f1..19f6e74437e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -4744,6 +4744,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { runTest("idea/testData/intentions/convertLambdaToReference/constructor.kt"); } + @TestMetadata("constructor2.kt") + public void testConstructor2() throws Exception { + runTest("idea/testData/intentions/convertLambdaToReference/constructor2.kt"); + } + @TestMetadata("conversion.kt") public void testConversion() throws Exception { runTest("idea/testData/intentions/convertLambdaToReference/conversion.kt");