From 1585461a680ef2fab94149298e3c5421db32e202 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 21 Nov 2018 14:51:10 +0300 Subject: [PATCH] Fix create expected for classes with anonymous initializers --- .../kotlin/idea/quickfix/expectactual/CreateExpectedFix.kt | 1 + .../expectClassWithInitializer/common/My.kt.after | 2 ++ .../expectClassWithInitializer/jvm/My.kt | 6 ++++++ .../expectClassWithInitializer/jvm/My.kt.after | 6 ++++++ .../idea/quickfix/QuickFixMultiModuleTestGenerated.java | 5 +++++ 5 files changed, 20 insertions(+) create mode 100644 idea/testData/multiModuleQuickFix/expectClassWithInitializer/common/My.kt.after create mode 100644 idea/testData/multiModuleQuickFix/expectClassWithInitializer/jvm/My.kt create mode 100644 idea/testData/multiModuleQuickFix/expectClassWithInitializer/jvm/My.kt.after 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 97abcac4f8f..f20c33f20b0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateExpectedFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateExpectedFix.kt @@ -191,6 +191,7 @@ private fun KtPsiFactory.generateClassOrObjectByActualClass( is KtEnumEntry -> return@forEach is KtClassOrObject -> it.delete() is KtCallableDeclaration -> it.delete() + is KtAnonymousInitializer -> it.delete() } } expectedClass.primaryConstructor?.delete() diff --git a/idea/testData/multiModuleQuickFix/expectClassWithInitializer/common/My.kt.after b/idea/testData/multiModuleQuickFix/expectClassWithInitializer/common/My.kt.after new file mode 100644 index 00000000000..7ad3e7e2438 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/expectClassWithInitializer/common/My.kt.after @@ -0,0 +1,2 @@ +expect class My { +} \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/expectClassWithInitializer/jvm/My.kt b/idea/testData/multiModuleQuickFix/expectClassWithInitializer/jvm/My.kt new file mode 100644 index 00000000000..a03c0e077c0 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/expectClassWithInitializer/jvm/My.kt @@ -0,0 +1,6 @@ +// "Create expected class in common module testModule_Common" "true" +// DISABLE-ERRORS + +actual class My { + init {} +} \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/expectClassWithInitializer/jvm/My.kt.after b/idea/testData/multiModuleQuickFix/expectClassWithInitializer/jvm/My.kt.after new file mode 100644 index 00000000000..8c2c52cb23b --- /dev/null +++ b/idea/testData/multiModuleQuickFix/expectClassWithInitializer/jvm/My.kt.after @@ -0,0 +1,6 @@ +// "Create expected class in common module testModule_Common" "true" +// DISABLE-ERRORS + +actual class My { + init {} +} \ 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 2654fae435e..15fd5ddb32b 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("expectClassWithInitializer") + public void testExpectClassWithInitializer() throws Exception { + runTest("idea/testData/multiModuleQuickFix/expectClassWithInitializer/"); + } + @TestMetadata("expectClassWithPlatformNested") public void testExpectClassWithPlatformNested() throws Exception { runTest("idea/testData/multiModuleQuickFix/expectClassWithPlatformNested/");