Create expect / actual refactoring: remove all declarations at start
This commit is contained in:
@@ -198,14 +198,7 @@ internal fun KtPsiFactory.generateClassOrObjectByExpectedClass(
|
||||
}
|
||||
}
|
||||
|
||||
val actualClass = createClassCopyByText(expectedClass)
|
||||
actualClass.declarations.forEach {
|
||||
when (it) {
|
||||
is KtClassOrObject -> it.delete()
|
||||
is KtCallableDeclaration -> it.delete()
|
||||
}
|
||||
}
|
||||
actualClass.primaryConstructor?.delete()
|
||||
val actualClass = createClassHeaderCopyByText(expectedClass)
|
||||
|
||||
val context = expectedClass.analyzeWithContent()
|
||||
actualClass.superTypeListEntries.zip(expectedClass.superTypeListEntries).forEach { (actualEntry, expectedEntry) ->
|
||||
|
||||
@@ -186,15 +186,7 @@ private fun KtPsiFactory.generateClassOrObjectByActualClass(
|
||||
actualClass: KtClassOrObject,
|
||||
outerExpectedClasses: List<KtClassOrObject>
|
||||
): KtClassOrObject {
|
||||
val expectedClass = createClassCopyByText(actualClass)
|
||||
expectedClass.declarations.forEach {
|
||||
when (it) {
|
||||
is KtClassOrObject -> it.delete()
|
||||
is KtCallableDeclaration -> it.delete()
|
||||
is KtAnonymousInitializer -> it.delete()
|
||||
}
|
||||
}
|
||||
expectedClass.primaryConstructor?.delete()
|
||||
val expectedClass = createClassHeaderCopyByText(actualClass)
|
||||
|
||||
val context = actualClass.analyzeWithContent()
|
||||
expectedClass.superTypeListEntries.zip(actualClass.superTypeListEntries).forEach { (expectedEntry, actualEntry) ->
|
||||
|
||||
@@ -47,7 +47,7 @@ fun createFileForDeclaration(module: Module, declaration: KtNamedDeclaration): K
|
||||
}
|
||||
}
|
||||
|
||||
fun KtPsiFactory.createClassCopyByText(originalClass: KtClassOrObject): KtClassOrObject {
|
||||
fun KtPsiFactory.createClassHeaderCopyByText(originalClass: KtClassOrObject): KtClassOrObject {
|
||||
val text = originalClass.text
|
||||
return when (originalClass) {
|
||||
is KtObjectDeclaration -> if (originalClass.isCompanion()) {
|
||||
@@ -57,6 +57,9 @@ fun KtPsiFactory.createClassCopyByText(originalClass: KtClassOrObject): KtClassO
|
||||
}
|
||||
is KtEnumEntry -> createEnumEntry(text)
|
||||
else -> createClass(text)
|
||||
}.apply {
|
||||
declarations.forEach(KtDeclaration::delete)
|
||||
primaryConstructor?.delete()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user