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 e3ec90f7a97..c20f9ec27bd 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt @@ -201,7 +201,6 @@ private fun KtPsiFactory.generateClassOrObject( if (expectedClass !is KtClass || !expectedClass.isInterface()) { actualClass.declarations.forEach { if (it !is KtEnumEntry && - it !is KtClassOrObject && !it.hasModifier(KtTokens.ABSTRACT_KEYWORD)) { it.delete() } @@ -211,6 +210,13 @@ private fun KtPsiFactory.generateClassOrObject( if (expectedDeclaration.hasModifier(KtTokens.ABSTRACT_KEYWORD)) continue val descriptor = expectedDeclaration.toDescriptor() ?: continue val actualDeclaration: KtDeclaration = when (expectedDeclaration) { + is KtClassOrObject -> + if (expectedDeclaration !is KtEnumEntry) { + generateClassOrObject(project, expectedDeclaration, actualNeeded = true) + } + else { + continue@declLoop + } is KtFunction -> generateFunction(project, expectedDeclaration, descriptor as FunctionDescriptor, actualNeeded = true) is KtProperty -> generateProperty(project, expectedDeclaration, descriptor as PropertyDescriptor, actualNeeded = true) else -> continue@declLoop diff --git a/idea/testData/multiModuleQuickFix/nested/jvm/WithNested.kt.after b/idea/testData/multiModuleQuickFix/nested/jvm/WithNested.kt.after index 3d86bfc6cb4..772ecd10448 100644 --- a/idea/testData/multiModuleQuickFix/nested/jvm/WithNested.kt.after +++ b/idea/testData/multiModuleQuickFix/nested/jvm/WithNested.kt.after @@ -1,15 +1,15 @@ // WithNested: to be implemented actual class WithNested { - - class Nested { - fun bar() - } - - inner class Inner { - fun baz() - } - actual fun foo(): Int { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } + + actual class Nested { + actual fun bar() {} + } + + actual inner class Inner { + actual fun baz() {} + } + } \ 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 5d037912751..76001575162 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 { - object Obj : Sealed + actual object Obj : Sealed + actual class Klass(x: Int) : Sealed - class Klass(x: Int) : Sealed } \ No newline at end of file