diff --git a/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/after.kt.template b/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/after.kt.template new file mode 100644 index 00000000000..3995ce82206 --- /dev/null +++ b/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/after.kt.template @@ -0,0 +1 @@ +fun foo(vararg a: String): Int = a.size \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/before.kt.template b/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/before.kt.template new file mode 100644 index 00000000000..1fe324bc2a2 --- /dev/null +++ b/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/before.kt.template @@ -0,0 +1 @@ +fun foo(a: Array): Int = a.size diff --git a/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/description.html b/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/description.html new file mode 100644 index 00000000000..bc56ce42539 --- /dev/null +++ b/idea/resources/intentionDescriptions/ConvertArrayParameterToVarargIntention/description.html @@ -0,0 +1,5 @@ + + +This intention converts an array parameter to a vararg parameter. + + \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/after.kt.template b/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/after.kt.template new file mode 100644 index 00000000000..1fe324bc2a2 --- /dev/null +++ b/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/after.kt.template @@ -0,0 +1 @@ +fun foo(a: Array): Int = a.size diff --git a/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/before.kt.template b/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/before.kt.template new file mode 100644 index 00000000000..3995ce82206 --- /dev/null +++ b/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/before.kt.template @@ -0,0 +1 @@ +fun foo(vararg a: String): Int = a.size \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/description.html b/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/description.html new file mode 100644 index 00000000000..84d93a987be --- /dev/null +++ b/idea/resources/intentionDescriptions/ConvertVarargParameterToArrayIntention/description.html @@ -0,0 +1,5 @@ + + +This intention converts a vararg parameter to an array parameter. + + \ No newline at end of file diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 59b8eeb5dd4..584c2a26cf3 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -1601,6 +1601,16 @@ Kotlin + + org.jetbrains.kotlin.idea.intentions.ConvertVarargParameterToArrayIntention + Kotlin + + + + org.jetbrains.kotlin.idea.intentions.ConvertArrayParameterToVarargIntention + Kotlin + + Kotlin + + org.jetbrains.kotlin.idea.intentions.ConvertVarargParameterToArrayIntention + Kotlin + + + + org.jetbrains.kotlin.idea.intentions.ConvertArrayParameterToVarargIntention + Kotlin + + Kotlin + + org.jetbrains.kotlin.idea.intentions.ConvertVarargParameterToArrayIntention + Kotlin + + + + org.jetbrains.kotlin.idea.intentions.ConvertArrayParameterToVarargIntention + Kotlin + + Kotlin + + org.jetbrains.kotlin.idea.intentions.ConvertVarargParameterToArrayIntention + Kotlin + + + + org.jetbrains.kotlin.idea.intentions.ConvertArrayParameterToVarargIntention + Kotlin + + Kotlin + + org.jetbrains.kotlin.idea.intentions.ConvertVarargParameterToArrayIntention + Kotlin + + + + org.jetbrains.kotlin.idea.intentions.ConvertArrayParameterToVarargIntention + Kotlin + + Kotlin + + org.jetbrains.kotlin.idea.intentions.ConvertVarargParameterToArrayIntention + Kotlin + + + + org.jetbrains.kotlin.idea.intentions.ConvertArrayParameterToVarargIntention + Kotlin + + ( + KtParameter::class.java, "Convert to vararg parameter" +) { + + override fun isApplicableTo(element: KtParameter, caretOffset: Int): Boolean { + val typeReference = element.getChildOfType() ?: return false + if (element.parent.parent is KtFunctionLiteral) return false + if (element.isVarArg) return false + + val type = element.descriptor?.type ?: return false + return when { + KotlinBuiltIns.isPrimitiveArray(type) -> { + text = "Convert to vararg parameter" + true + } + KotlinBuiltIns.isArray(type) -> { + val typeArgument = typeReference.typeElement?.typeArgumentsAsTypes?.firstOrNull() + val typeProjection = typeArgument?.parent as? KtTypeProjection + if (typeProjection?.hasModifier(KtTokens.IN_KEYWORD) == false) { + text = if (!typeProjection.hasModifier(KtTokens.OUT_KEYWORD) + && !KotlinBuiltIns.isPrimitiveType(element.builtIns.getArrayElementType(type)) + ) { + "Convert to vararg parameter (may break code)" + } else { + "Convert to vararg parameter" + } + true + } else { + false + } + } + else -> + false + } + } + + override fun applyTo(element: KtParameter, editor: Editor?) { + val typeReference = element.getChildOfType() ?: return + val type = element.descriptor?.type ?: return + val newType = KotlinBuiltIns.getPrimitiveArrayElementType(type)?.typeName?.asString() + ?: typeReference.typeElement?.typeArgumentsAsTypes?.firstOrNull()?.text + ?: return + typeReference.replace(KtPsiFactory(element).createType(newType)) + element.addModifier(KtTokens.VARARG_KEYWORD) + } + +} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertVarargParameterToArrayIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertVarargParameterToArrayIntention.kt new file mode 100644 index 00000000000..5bc20a74464 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertVarargParameterToArrayIntention.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.intentions + +import com.intellij.openapi.editor.Editor +import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.idea.search.usagesSearch.descriptor +import org.jetbrains.kotlin.lexer.KtTokens +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.psi.KtPsiFactory +import org.jetbrains.kotlin.psi.KtTypeReference +import org.jetbrains.kotlin.psi.psiUtil.getChildOfType + +class ConvertVarargParameterToArrayIntention : SelfTargetingIntention( + KtParameter::class.java, "Convert to array parameter" +) { + + override fun isApplicableTo(element: KtParameter, caretOffset: Int): Boolean { + if (element.getChildOfType() == null) return false + return element.isVarArg + } + + override fun applyTo(element: KtParameter, editor: Editor?) { + val typeReference = element.getChildOfType() ?: return + val type = element.descriptor?.type ?: return + val newType = if (KotlinBuiltIns.isPrimitiveArray(type)) type.toString() else "Array<${typeReference.text}>" + + typeReference.replace(KtPsiFactory(element).createType(newType)) + element.removeModifier(KtTokens.VARARG_KEYWORD) + } + +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/.intention b/idea/testData/intentions/convertArrayParameterToVararg/.intention new file mode 100644 index 00000000000..bc410a90dc5 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/.intention @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.intentions.ConvertArrayParameterToVarargIntention diff --git a/idea/testData/intentions/convertArrayParameterToVararg/arrayGenericType.kt b/idea/testData/intentions/convertArrayParameterToVararg/arrayGenericType.kt new file mode 100644 index 00000000000..c9e7c50b189 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/arrayGenericType.kt @@ -0,0 +1 @@ +fun test(a: Array) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/arrayGenericType.kt.after b/idea/testData/intentions/convertArrayParameterToVararg/arrayGenericType.kt.after new file mode 100644 index 00000000000..b7dbb885c2c --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/arrayGenericType.kt.after @@ -0,0 +1 @@ +fun test(vararg a: T) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/arrayInt.kt b/idea/testData/intentions/convertArrayParameterToVararg/arrayInt.kt new file mode 100644 index 00000000000..05e3f32c6a5 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/arrayInt.kt @@ -0,0 +1,4 @@ +// INTENTION_TEXT: Convert to vararg parameter +fun test(a: Array) { + a[0] = 1 +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/arrayInt.kt.after b/idea/testData/intentions/convertArrayParameterToVararg/arrayInt.kt.after new file mode 100644 index 00000000000..b3e2eec1dfa --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/arrayInt.kt.after @@ -0,0 +1,4 @@ +// INTENTION_TEXT: Convert to vararg parameter +fun test(vararg a: Int) { + a[0] = 1 +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/arrayString.kt b/idea/testData/intentions/convertArrayParameterToVararg/arrayString.kt new file mode 100644 index 00000000000..18f35182565 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/arrayString.kt @@ -0,0 +1,5 @@ +// INTENTION_TEXT: Convert to vararg parameter (may break code) +// DISABLE-ERRORS +fun test(a: Array) { + a[0] = "" +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/arrayString.kt.after b/idea/testData/intentions/convertArrayParameterToVararg/arrayString.kt.after new file mode 100644 index 00000000000..9b389f37590 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/arrayString.kt.after @@ -0,0 +1,5 @@ +// INTENTION_TEXT: Convert to vararg parameter (may break code) +// DISABLE-ERRORS +fun test(vararg a: String) { + a[0] = "" +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/inConstructor.kt b/idea/testData/intentions/convertArrayParameterToVararg/inConstructor.kt new file mode 100644 index 00000000000..4ea0116683a --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/inConstructor.kt @@ -0,0 +1,3 @@ +class Test(private val a: Array) { + val size = a.size +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/inConstructor.kt.after b/idea/testData/intentions/convertArrayParameterToVararg/inConstructor.kt.after new file mode 100644 index 00000000000..1ac064b96f0 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/inConstructor.kt.after @@ -0,0 +1,3 @@ +class Test(private vararg val a: String) { + val size = a.size +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/inLambda.kt b/idea/testData/intentions/convertArrayParameterToVararg/inLambda.kt new file mode 100644 index 00000000000..5075ecea6fb --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/inLambda.kt @@ -0,0 +1,7 @@ +// IS_APPLICABLE: false +// WITH_RUNTIME +fun test() { + listOf(arrayOf(1)).map { i: Array -> + i + 1 + } +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/intArray.kt b/idea/testData/intentions/convertArrayParameterToVararg/intArray.kt new file mode 100644 index 00000000000..f47be02c0a2 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/intArray.kt @@ -0,0 +1,4 @@ +// INTENTION_TEXT: Convert to vararg parameter +fun test(a: IntArray) { + a[0] = 1 +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/intArray.kt.after b/idea/testData/intentions/convertArrayParameterToVararg/intArray.kt.after new file mode 100644 index 00000000000..b3e2eec1dfa --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/intArray.kt.after @@ -0,0 +1,4 @@ +// INTENTION_TEXT: Convert to vararg parameter +fun test(vararg a: Int) { + a[0] = 1 +} \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/longArray.kt b/idea/testData/intentions/convertArrayParameterToVararg/longArray.kt new file mode 100644 index 00000000000..5fb579ec044 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/longArray.kt @@ -0,0 +1 @@ +fun test(a: LongArray) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/longArray.kt.after b/idea/testData/intentions/convertArrayParameterToVararg/longArray.kt.after new file mode 100644 index 00000000000..60215c2594e --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/longArray.kt.after @@ -0,0 +1 @@ +fun test(vararg a: Long) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/starProjection.kt b/idea/testData/intentions/convertArrayParameterToVararg/starProjection.kt new file mode 100644 index 00000000000..9284d49d0fe --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/starProjection.kt @@ -0,0 +1,2 @@ +// IS_APPLICABLE: false +fun test(a: Array<*>) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/vararg.kt b/idea/testData/intentions/convertArrayParameterToVararg/vararg.kt new file mode 100644 index 00000000000..ac31759b337 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/vararg.kt @@ -0,0 +1,2 @@ +// IS_APPLICABLE: false +fun test(vararg a: String) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/withContravariant.kt b/idea/testData/intentions/convertArrayParameterToVararg/withContravariant.kt new file mode 100644 index 00000000000..071282772fe --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/withContravariant.kt @@ -0,0 +1,2 @@ +// IS_APPLICABLE: false +fun test(a: Array) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/withCovariance.kt b/idea/testData/intentions/convertArrayParameterToVararg/withCovariance.kt new file mode 100644 index 00000000000..fedfe72944b --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/withCovariance.kt @@ -0,0 +1,2 @@ +// INTENTION_TEXT: Convert to vararg parameter +fun test(a: Array) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/withCovariance.kt.after b/idea/testData/intentions/convertArrayParameterToVararg/withCovariance.kt.after new file mode 100644 index 00000000000..cf41b620617 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/withCovariance.kt.after @@ -0,0 +1,2 @@ +// INTENTION_TEXT: Convert to vararg parameter +fun test(vararg a: T) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/withDefaultValue.kt b/idea/testData/intentions/convertArrayParameterToVararg/withDefaultValue.kt new file mode 100644 index 00000000000..f001eea9d6a --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/withDefaultValue.kt @@ -0,0 +1 @@ +fun test(a: Array = emptyArray()) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertArrayParameterToVararg/withDefaultValue.kt.after b/idea/testData/intentions/convertArrayParameterToVararg/withDefaultValue.kt.after new file mode 100644 index 00000000000..7e2603d3541 --- /dev/null +++ b/idea/testData/intentions/convertArrayParameterToVararg/withDefaultValue.kt.after @@ -0,0 +1 @@ +fun test(vararg a: String = emptyArray()) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/.intention b/idea/testData/intentions/convertVarargParameterToArray/.intention new file mode 100644 index 00000000000..7431c9453c6 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/.intention @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.intentions.ConvertVarargParameterToArrayIntention \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/genericType.kt b/idea/testData/intentions/convertVarargParameterToArray/genericType.kt new file mode 100644 index 00000000000..a92ecbbda6c --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/genericType.kt @@ -0,0 +1 @@ +fun test(vararg a: T) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/genericType.kt.after b/idea/testData/intentions/convertVarargParameterToArray/genericType.kt.after new file mode 100644 index 00000000000..73310716d67 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/genericType.kt.after @@ -0,0 +1 @@ +fun test(a: Array) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/inConstructor.kt b/idea/testData/intentions/convertVarargParameterToArray/inConstructor.kt new file mode 100644 index 00000000000..f42aa83d92d --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/inConstructor.kt @@ -0,0 +1,3 @@ +class Test(private vararg val a: String) { + val size = a.size +} \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/inConstructor.kt.after b/idea/testData/intentions/convertVarargParameterToArray/inConstructor.kt.after new file mode 100644 index 00000000000..1bf1afea1c2 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/inConstructor.kt.after @@ -0,0 +1,3 @@ +class Test(private val a: Array) { + val size = a.size +} \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/int.kt b/idea/testData/intentions/convertVarargParameterToArray/int.kt new file mode 100644 index 00000000000..09bc2703b96 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/int.kt @@ -0,0 +1 @@ +fun test(vararg a: Int) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/int.kt.after b/idea/testData/intentions/convertVarargParameterToArray/int.kt.after new file mode 100644 index 00000000000..9c31bc61766 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/int.kt.after @@ -0,0 +1 @@ +fun test(a: IntArray) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/long.kt b/idea/testData/intentions/convertVarargParameterToArray/long.kt new file mode 100644 index 00000000000..b236f2c2057 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/long.kt @@ -0,0 +1 @@ +fun test(vararg a: Long) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/long.kt.after b/idea/testData/intentions/convertVarargParameterToArray/long.kt.after new file mode 100644 index 00000000000..48f86fc68fc --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/long.kt.after @@ -0,0 +1 @@ +fun test(a: LongArray) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/noVararg.kt b/idea/testData/intentions/convertVarargParameterToArray/noVararg.kt new file mode 100644 index 00000000000..66d6f4112d8 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/noVararg.kt @@ -0,0 +1,2 @@ +// IS_APPLICABLE: false +fun test(a: String) {} \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/string.kt b/idea/testData/intentions/convertVarargParameterToArray/string.kt new file mode 100644 index 00000000000..0ab86909329 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/string.kt @@ -0,0 +1 @@ +fun test(vararg a: String) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/string.kt.after b/idea/testData/intentions/convertVarargParameterToArray/string.kt.after new file mode 100644 index 00000000000..5fb96d8dd14 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/string.kt.after @@ -0,0 +1 @@ +fun test(a: Array) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/withDefaultValue.kt b/idea/testData/intentions/convertVarargParameterToArray/withDefaultValue.kt new file mode 100644 index 00000000000..1d9a9df8da2 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/withDefaultValue.kt @@ -0,0 +1 @@ +fun test(vararg a: String = emptyArray()) = a.size \ No newline at end of file diff --git a/idea/testData/intentions/convertVarargParameterToArray/withDefaultValue.kt.after b/idea/testData/intentions/convertVarargParameterToArray/withDefaultValue.kt.after new file mode 100644 index 00000000000..b121719b050 --- /dev/null +++ b/idea/testData/intentions/convertVarargParameterToArray/withDefaultValue.kt.after @@ -0,0 +1 @@ +fun test(a: Array = emptyArray()) = a.size \ 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 a47fc027f21..946d0fa9fd6 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -3994,6 +3994,87 @@ public class IntentionTestGenerated extends AbstractIntentionTest { } } + @TestMetadata("idea/testData/intentions/convertArrayParameterToVararg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ConvertArrayParameterToVararg extends AbstractIntentionTest { + public void testAllFilesPresentInConvertArrayParameterToVararg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/convertArrayParameterToVararg"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true); + } + + @TestMetadata("arrayGenericType.kt") + public void testArrayGenericType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/arrayGenericType.kt"); + doTest(fileName); + } + + @TestMetadata("arrayInt.kt") + public void testArrayInt() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/arrayInt.kt"); + doTest(fileName); + } + + @TestMetadata("arrayString.kt") + public void testArrayString() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/arrayString.kt"); + doTest(fileName); + } + + @TestMetadata("inConstructor.kt") + public void testInConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/inConstructor.kt"); + doTest(fileName); + } + + @TestMetadata("inLambda.kt") + public void testInLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/inLambda.kt"); + doTest(fileName); + } + + @TestMetadata("intArray.kt") + public void testIntArray() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/intArray.kt"); + doTest(fileName); + } + + @TestMetadata("longArray.kt") + public void testLongArray() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/longArray.kt"); + doTest(fileName); + } + + @TestMetadata("starProjection.kt") + public void testStarProjection() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/starProjection.kt"); + doTest(fileName); + } + + @TestMetadata("vararg.kt") + public void testVararg() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/vararg.kt"); + doTest(fileName); + } + + @TestMetadata("withContravariant.kt") + public void testWithContravariant() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/withContravariant.kt"); + doTest(fileName); + } + + @TestMetadata("withCovariance.kt") + public void testWithCovariance() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/withCovariance.kt"); + doTest(fileName); + } + + @TestMetadata("withDefaultValue.kt") + public void testWithDefaultValue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertArrayParameterToVararg/withDefaultValue.kt"); + doTest(fileName); + } + } + @TestMetadata("idea/testData/intentions/convertAssertToIf") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -7375,6 +7456,57 @@ public class IntentionTestGenerated extends AbstractIntentionTest { } } + @TestMetadata("idea/testData/intentions/convertVarargParameterToArray") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ConvertVarargParameterToArray extends AbstractIntentionTest { + public void testAllFilesPresentInConvertVarargParameterToArray() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/convertVarargParameterToArray"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true); + } + + @TestMetadata("genericType.kt") + public void testGenericType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertVarargParameterToArray/genericType.kt"); + doTest(fileName); + } + + @TestMetadata("inConstructor.kt") + public void testInConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertVarargParameterToArray/inConstructor.kt"); + doTest(fileName); + } + + @TestMetadata("int.kt") + public void testInt() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertVarargParameterToArray/int.kt"); + doTest(fileName); + } + + @TestMetadata("long.kt") + public void testLong() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertVarargParameterToArray/long.kt"); + doTest(fileName); + } + + @TestMetadata("noVararg.kt") + public void testNoVararg() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertVarargParameterToArray/noVararg.kt"); + doTest(fileName); + } + + @TestMetadata("string.kt") + public void testString() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertVarargParameterToArray/string.kt"); + doTest(fileName); + } + + @TestMetadata("withDefaultValue.kt") + public void testWithDefaultValue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertVarargParameterToArray/withDefaultValue.kt"); + doTest(fileName); + } + } + @TestMetadata("idea/testData/intentions/copyConcatenatedStringToClipboard") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)