diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateExpectedFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateExpectedFix.kt index 29330c04816..97abcac4f8f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateExpectedFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateExpectedFix.kt @@ -213,6 +213,7 @@ private fun KtPsiFactory.generateClassOrObjectByActualClass( declLoop@ for (actualDeclaration in actualClass.declarations) { val descriptor = actualDeclaration.toDescriptor() ?: continue + if (!actualDeclaration.hasActualModifier()) continue@declLoop val expectedDeclaration: KtDeclaration = when (actualDeclaration) { is KtClassOrObject -> if (actualDeclaration !is KtEnumEntry) { @@ -221,7 +222,6 @@ private fun KtPsiFactory.generateClassOrObjectByActualClass( continue@declLoop } is KtCallableDeclaration -> { - if (!actualDeclaration.hasActualModifier()) continue@declLoop when (actualDeclaration) { is KtFunction -> generateFunction(project, actualDeclaration, descriptor as FunctionDescriptor, expectedClass, outerExpectedClasses) diff --git a/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/common/My.kt.after b/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/common/My.kt.after new file mode 100644 index 00000000000..7ad3e7e2438 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/common/My.kt.after @@ -0,0 +1,2 @@ +expect class My { +} \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/jvm/My.kt b/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/jvm/My.kt new file mode 100644 index 00000000000..81a7e13d01a --- /dev/null +++ b/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/jvm/My.kt @@ -0,0 +1,14 @@ +// "Create expected class in common module testModule_Common" "true" +// DISABLE-ERRORS + +actual class My { + inner class Nested(val s: String) { + fun hello() = s + + var ss = s + + class OtherNested(var d: Double) { + val dd = d + } + } +} \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/jvm/My.kt.after b/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/jvm/My.kt.after new file mode 100644 index 00000000000..598215cf55a --- /dev/null +++ b/idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/jvm/My.kt.after @@ -0,0 +1,14 @@ +// "Create expected class in common module testModule_Common" "true" +// DISABLE-ERRORS + +actual class My { + inner class Nested(val s: String) { + fun hello() = s + + var ss = s + + class OtherNested(var d: Double) { + val dd = d + } + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java index b682c4cd086..2654fae435e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java @@ -294,6 +294,11 @@ public class QuickFixMultiModuleTestGenerated extends AbstractQuickFixMultiModul runTest("idea/testData/multiModuleQuickFix/expectClassWithAliases/"); } + @TestMetadata("expectClassWithPlatformNested") + public void testExpectClassWithPlatformNested() throws Exception { + runTest("idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/"); + } + @TestMetadata("expectClassWithSupertype") public void testExpectClassWithSupertype() throws Exception { runTest("idea/testData/multiModuleQuickFix/expectClassWithSupertype/");