diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt index 5bfecfcf36c..7c01105cca8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt @@ -235,6 +235,15 @@ private fun KtPsiFactory.generateClassOrObject( } actualClass.addDeclaration(actualDeclaration) } + + actualClass.primaryConstructor?.let { + it.addModifier(KtTokens.ACTUAL_KEYWORD) + for (parameter in it.valueParameters) { + if (parameter.hasValOrVar()) { + parameter.addModifier(KtTokens.ACTUAL_KEYWORD) + } + } + } } return actualClass.apply { diff --git a/idea/testData/multiModuleQuickFix/annotation/jvm/Ann.kt.after b/idea/testData/multiModuleQuickFix/annotation/jvm/Ann.kt.after index 7aa51ef77f2..244c3a6e694 100644 --- a/idea/testData/multiModuleQuickFix/annotation/jvm/Ann.kt.after +++ b/idea/testData/multiModuleQuickFix/annotation/jvm/Ann.kt.after @@ -1,2 +1,2 @@ // Ann: to be implemented -actual annotation class Ann(val x: Int, val y: String) \ No newline at end of file +actual annotation class Ann actual constructor(actual val x: Int, actual val y: String) \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/primaryConstructor/header/header.kt b/idea/testData/multiModuleQuickFix/primaryConstructor/header/header.kt new file mode 100644 index 00000000000..77499938845 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/primaryConstructor/header/header.kt @@ -0,0 +1,3 @@ +// "Create actual class for platform JVM" "true" + +expect class WithPrimaryConstructor(x: Int, s: String) \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/primaryConstructor/header/header.kt.after b/idea/testData/multiModuleQuickFix/primaryConstructor/header/header.kt.after new file mode 100644 index 00000000000..e1ab1916f91 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/primaryConstructor/header/header.kt.after @@ -0,0 +1,3 @@ +// "Create actual class for platform JVM" "true" + +expect class WithPrimaryConstructor(x: Int, s: String) \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/primaryConstructor/jvm/WithPrimaryConstructor.kt b/idea/testData/multiModuleQuickFix/primaryConstructor/jvm/WithPrimaryConstructor.kt new file mode 100644 index 00000000000..720a7c755a0 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/primaryConstructor/jvm/WithPrimaryConstructor.kt @@ -0,0 +1 @@ +// WithPrimaryConstructor: to be implemented \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/primaryConstructor/jvm/WithPrimaryConstructor.kt.after b/idea/testData/multiModuleQuickFix/primaryConstructor/jvm/WithPrimaryConstructor.kt.after new file mode 100644 index 00000000000..354c6e62d13 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/primaryConstructor/jvm/WithPrimaryConstructor.kt.after @@ -0,0 +1,2 @@ +// WithPrimaryConstructor: to be implemented +actual class WithPrimaryConstructor actual constructor(x: Int, s: String) \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/sealed/js/Sealed.kt.after b/idea/testData/multiModuleQuickFix/sealed/js/Sealed.kt.after index 76001575162..2d8a67e4aa2 100644 --- a/idea/testData/multiModuleQuickFix/sealed/js/Sealed.kt.after +++ b/idea/testData/multiModuleQuickFix/sealed/js/Sealed.kt.after @@ -1,6 +1,6 @@ // Sealed: to be implemented actual sealed class Sealed { actual object Obj : Sealed - actual class Klass(x: Int) : Sealed + actual class Klass actual constructor(x: Int) : Sealed } \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTest.kt b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTest.kt index faeffaf1b56..0dcec7a11a0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTest.kt @@ -129,6 +129,11 @@ class QuickFixMultiModuleTest : AbstractQuickFixMultiModuleTest() { doMultiPlatformTest() } + @Test + fun testPrimaryConstructor() { + doMultiPlatformTest() + } + @Test fun testProperty() { doMultiPlatformTest()