diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/AddActualFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/AddActualFix.kt index f8b4dfc9336..aec54fb5896 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/AddActualFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/AddActualFix.kt @@ -53,7 +53,7 @@ class AddActualFix( if (missedDeclarations.isEmpty()) return val factory = KtPsiFactory(element) val pureActualClass = factory.generateClassOrObjectByExpectedClass( - project, expectedClass, actualNeeded = true, + project, expectedClass, missedDeclarations = missedDeclarations ) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateActualFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateActualFix.kt index 731cac6c450..5d8ee988e3a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateActualFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/expectactual/CreateActualFix.kt @@ -136,7 +136,7 @@ class CreateActualClassFix( actualModule: Module, actualPlatform: MultiTargetPlatform.Specific ) : CreateActualFix(klass, actualModule, actualPlatform, { project, element -> - generateClassOrObjectByExpectedClass(project, element, actualNeeded = true) + generateClassOrObjectByExpectedClass(project, element) }) class CreateActualPropertyFix( @@ -157,19 +157,9 @@ class CreateActualFunctionFix( descriptor?.let { generateFunction(project, element, descriptor) } }) -private fun KtModifierListOwner.replaceExpectModifier(actualNeeded: Boolean) { - if (actualNeeded) { - addModifier(KtTokens.ACTUAL_KEYWORD) - } else { - removeModifier(KtTokens.HEADER_KEYWORD) - removeModifier(KtTokens.EXPECT_KEYWORD) - } -} - internal fun KtPsiFactory.generateClassOrObjectByExpectedClass( project: Project, expectedClass: KtClassOrObject, - actualNeeded: Boolean, // If null, all expect class declarations are missed (so none from them exists) missedDeclarations: List? = null ): KtClassOrObject { @@ -209,14 +199,14 @@ internal fun KtPsiFactory.generateClassOrObjectByExpectedClass( } } if (actualClass !is KtEnumEntry) { - actualClass.replaceExpectModifier(actualNeeded) + actualClass.addModifier(KtTokens.ACTUAL_KEYWORD) } declLoop@ for (expectedDeclaration in expectedClass.declarations.filter { !it.exists() }) { val descriptor = expectedDeclaration.toDescriptor() ?: continue val actualDeclaration: KtDeclaration = when (expectedDeclaration) { is KtClassOrObject -> { - generateClassOrObjectByExpectedClass(project, expectedDeclaration, actualNeeded = true) + generateClassOrObjectByExpectedClass(project, expectedDeclaration) } is KtCallableDeclaration -> { when (expectedDeclaration) {