Intentions: Forbid conversion of vararg parameter to receiver
This commit is contained in:
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully
|
||||
|
||||
public class ConvertParameterToReceiverIntention: JetSelfTargetingIntention<JetParameter>("convert.parameter.to.receiver.intention", javaClass()) {
|
||||
override fun isApplicableTo(element: JetParameter): Boolean {
|
||||
if (element.isVarArg()) return false
|
||||
val function = element.getStrictParentOfType<JetNamedFunction>() ?: return false
|
||||
return function.getValueParameterList() == element.getParent() && function.getReceiverTypeReference() == null
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// IS_APPLICABLE: false
|
||||
fun foo(<caret>vararg s: String): Boolean = true
|
||||
|
||||
fun test() {
|
||||
foo()
|
||||
foo("1")
|
||||
foo("1", "2")
|
||||
}
|
||||
@@ -2973,6 +2973,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("vararg.kt")
|
||||
public void testVararg() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/convertParameterToReceiver/vararg.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("withExtensionReceiver.kt")
|
||||
public void testWithExtensionReceiver() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/intentions/convertParameterToReceiver/withExtensionReceiver.kt");
|
||||
|
||||
Reference in New Issue
Block a user