From 9e2ee6183cba2f7429de19b6b2f04fa92b32bae0 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 4 Mar 2019 12:32:48 +0300 Subject: [PATCH] Fix "make constructor parameter a property" for vararg case Same should work for annotated parameters #KT-29312 Fixed --- .../idea/quickfix/MakeConstructorParameterPropertyFix.kt | 2 +- .../quickfix/makeConstructorParameterProperty/vararg.kt | 7 +++++++ .../makeConstructorParameterProperty/vararg.kt.after | 7 +++++++ .../kotlin/idea/quickfix/QuickFixTestGenerated.java | 5 +++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt create mode 100644 idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/MakeConstructorParameterPropertyFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/MakeConstructorParameterPropertyFix.kt index 655f13c6184..5e844fd82b2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/MakeConstructorParameterPropertyFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/MakeConstructorParameterPropertyFix.kt @@ -46,7 +46,7 @@ class MakeConstructorParameterPropertyFix( override fun invoke(project: Project, editor: Editor?, file: KtFile) { val element = element ?: return - element.addBefore(kotlinValVar.createKeyword(KtPsiFactory(project))!!, element.firstChild) + element.addBefore(kotlinValVar.createKeyword(KtPsiFactory(project))!!, element.nameIdentifier) element.addModifier(KtTokens.PRIVATE_KEYWORD) element.visibilityModifier()?.let { private -> editor?.apply { diff --git a/idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt b/idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt new file mode 100644 index 00000000000..1aba6bf8590 --- /dev/null +++ b/idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt @@ -0,0 +1,7 @@ +// "Make constructor parameter a property" "true" + +class SomeClass(vararg dismissibleViewTypes: Int) { + fun someFun() { + dismissibleViewTypes + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt.after b/idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt.after new file mode 100644 index 00000000000..3caa949ff9e --- /dev/null +++ b/idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt.after @@ -0,0 +1,7 @@ +// "Make constructor parameter a property" "true" + +class SomeClass(private vararg val dismissibleViewTypes: Int) { + fun someFun() { + dismissibleViewTypes + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 0b922be316a..97c99c15837 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -7709,6 +7709,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { public void testVar() throws Exception { runTest("idea/testData/quickfix/makeConstructorParameterProperty/var.kt"); } + + @TestMetadata("vararg.kt") + public void testVararg() throws Exception { + runTest("idea/testData/quickfix/makeConstructorParameterProperty/vararg.kt"); + } } @TestMetadata("idea/testData/quickfix/makeTypeParameterReified")