Intention convert object literal to lambda should add parameters if there are more than one
This commit is contained in:
@@ -84,7 +84,7 @@ class ObjectLiteralToLambdaIntention : SelfTargetingRangeIntention<KtObjectLiter
|
||||
|
||||
val parameters = singleFunction.valueParameters
|
||||
|
||||
val needParameters = parameters.any { parameter -> ReferencesSearch.search(parameter, LocalSearchScope(body)).any() }
|
||||
val needParameters = parameters.count() > 1 || parameters.any { parameter -> ReferencesSearch.search(parameter, LocalSearchScope(body)).any() }
|
||||
if (needParameters) {
|
||||
parameters.forEachIndexed { index, parameter ->
|
||||
if (index > 0) {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
// WITH_RUNTIME
|
||||
import java.io.File
|
||||
import java.io.FilenameFilter
|
||||
import java.io.FileFilter
|
||||
|
||||
fun foo(filter: FilenameFilter) {}
|
||||
fun foo(filter: FileFilter) {}
|
||||
|
||||
fun bar() {
|
||||
foo(<caret>object: FilenameFilter {
|
||||
override fun accept(file: File, name: String) = true
|
||||
foo(<caret>object: FileFilter {
|
||||
override fun accept(file: File) = true
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// WITH_RUNTIME
|
||||
import java.io.File
|
||||
import java.io.FilenameFilter
|
||||
import java.io.FileFilter
|
||||
|
||||
fun foo(filter: FilenameFilter) {}
|
||||
fun foo(filter: FileFilter) {}
|
||||
|
||||
fun bar() {
|
||||
foo(FilenameFilter { true })
|
||||
foo(FileFilter { true })
|
||||
}
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// WITH_RUNTIME
|
||||
import java.io.File
|
||||
import java.io.FilenameFilter
|
||||
|
||||
fun foo(filter: FilenameFilter) {}
|
||||
|
||||
fun bar() {
|
||||
foo(<caret>object: FilenameFilter {
|
||||
override fun accept(file: File, name: String) = true
|
||||
})
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// WITH_RUNTIME
|
||||
import java.io.File
|
||||
import java.io.FilenameFilter
|
||||
|
||||
fun foo(filter: FilenameFilter) {}
|
||||
|
||||
fun bar() {
|
||||
foo(FilenameFilter { file, name -> true })
|
||||
}
|
||||
@@ -52,6 +52,14 @@
|
||||
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Convert object literal to lambda</problem_class>
|
||||
<description>Convert to lambda</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>ParametersNotUsedMoreThanOne.kt</file>
|
||||
<line>8</line>
|
||||
<module>light_idea_test_case</module>
|
||||
<entry_point TYPE="file" FQNAME="ParametersNotUsedMoreThanOne.kt" />
|
||||
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Convert object literal to lambda</problem_class>
|
||||
<description>Convert to lambda</description>
|
||||
</problem>
|
||||
|
||||
<problem>
|
||||
<file>NoSamAdapterNeeded.kt</file>
|
||||
|
||||
@@ -6183,6 +6183,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ParametersNotUsedMoreThanOne.kt")
|
||||
public void testParametersNotUsedMoreThanOne() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/objectLiteralToLambda/ParametersNotUsedMoreThanOne.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("QualifiedReturn.kt")
|
||||
public void testQualifiedReturn() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/objectLiteralToLambda/QualifiedReturn.kt");
|
||||
|
||||
Reference in New Issue
Block a user