diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt index c8480076dbf..48e49a5c7f2 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt @@ -114,7 +114,7 @@ fun KtLambdaExpression.moveFunctionLiteralOutsideParenthesesIfPossible() { private fun shouldLambdaParameterBeNamed(args: List, callExpr: KtCallExpression): Boolean { if (args.any { it.isNamed() }) return true - val callee = (callExpr.calleeExpression?.mainReference?.resolve() as? KtFunction) ?: return true + val callee = (callExpr.calleeExpression?.mainReference?.resolve() as? KtFunction) ?: return false return if (callee.valueParameters.any { it.isVarArg }) true else callee.valueParameters.size - 1 > args.size } diff --git a/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.1.java b/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.1.java new file mode 100644 index 00000000000..43b450b0262 --- /dev/null +++ b/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.1.java @@ -0,0 +1,7 @@ +public class Test { + void foo(Sam s) {} +} + +interface Sam { + void foo(int x); +} \ No newline at end of file diff --git a/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.1.java.after b/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.1.java.after new file mode 100644 index 00000000000..43b450b0262 --- /dev/null +++ b/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.1.java.after @@ -0,0 +1,7 @@ +public class Test { + void foo(Sam s) {} +} + +interface Sam { + void foo(int x); +} \ No newline at end of file diff --git a/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.kt b/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.kt new file mode 100644 index 00000000000..1413a000d47 --- /dev/null +++ b/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.kt @@ -0,0 +1,3 @@ +fun main() { + Test().foo {} +} \ No newline at end of file diff --git a/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.kt.after b/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.kt.after new file mode 100644 index 00000000000..700ba6055bc --- /dev/null +++ b/idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.kt.after @@ -0,0 +1,5 @@ +fun main() { + Test().foo(fun(it: Int) { + + }) +} \ No newline at end of file diff --git a/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.1.java b/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.1.java new file mode 100644 index 00000000000..43b450b0262 --- /dev/null +++ b/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.1.java @@ -0,0 +1,7 @@ +public class Test { + void foo(Sam s) {} +} + +interface Sam { + void foo(int x); +} \ No newline at end of file diff --git a/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.1.java.after b/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.1.java.after new file mode 100644 index 00000000000..43b450b0262 --- /dev/null +++ b/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.1.java.after @@ -0,0 +1,7 @@ +public class Test { + void foo(Sam s) {} +} + +interface Sam { + void foo(int x); +} \ No newline at end of file diff --git a/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.kt b/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.kt new file mode 100644 index 00000000000..c4c8ad91b33 --- /dev/null +++ b/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.kt @@ -0,0 +1,3 @@ +fun main() { + Test().foo {} +} \ No newline at end of file diff --git a/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.kt.after b/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.kt.after new file mode 100644 index 00000000000..9e066a70163 --- /dev/null +++ b/idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.kt.after @@ -0,0 +1,3 @@ +fun main() { + Test().foo({}) +} \ 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 f95d1c7dcf9..dc754164a06 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -11105,6 +11105,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { runTest("idea/testData/intentions/lambdaToAnonymousFunction/incorrectOffset.kt"); } + @TestMetadata("javaMethod.kt") + public void testJavaMethod() throws Exception { + runTest("idea/testData/intentions/lambdaToAnonymousFunction/javaMethod.kt"); + } + @TestMetadata("namedArgument.kt") public void testNamedArgument() throws Exception { runTest("idea/testData/intentions/lambdaToAnonymousFunction/namedArgument.kt"); @@ -12627,6 +12632,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { runTest("idea/testData/intentions/moveLambdaInsideParentheses/inapplicable2.kt"); } + @TestMetadata("javaMethod.kt") + public void testJavaMethod() throws Exception { + runTest("idea/testData/intentions/moveLambdaInsideParentheses/javaMethod.kt"); + } + @TestMetadata("moveLabeledLambda1.kt") public void testMoveLabeledLambda1() throws Exception { runTest("idea/testData/intentions/moveLambdaInsideParentheses/moveLabeledLambda1.kt");