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)
|
val actualClass = createClassHeaderCopyByText(expectedClass)
|
||||||
actualClass.declarations.forEach {
|
|
||||||
when (it) {
|
|
||||||
is KtClassOrObject -> it.delete()
|
|
||||||
is KtCallableDeclaration -> it.delete()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
actualClass.primaryConstructor?.delete()
|
|
||||||
|
|
||||||
val context = expectedClass.analyzeWithContent()
|
val context = expectedClass.analyzeWithContent()
|
||||||
actualClass.superTypeListEntries.zip(expectedClass.superTypeListEntries).forEach { (actualEntry, expectedEntry) ->
|
actualClass.superTypeListEntries.zip(expectedClass.superTypeListEntries).forEach { (actualEntry, expectedEntry) ->
|
||||||
|
|||||||
@@ -186,15 +186,7 @@ private fun KtPsiFactory.generateClassOrObjectByActualClass(
|
|||||||
actualClass: KtClassOrObject,
|
actualClass: KtClassOrObject,
|
||||||
outerExpectedClasses: List<KtClassOrObject>
|
outerExpectedClasses: List<KtClassOrObject>
|
||||||
): KtClassOrObject {
|
): KtClassOrObject {
|
||||||
val expectedClass = createClassCopyByText(actualClass)
|
val expectedClass = createClassHeaderCopyByText(actualClass)
|
||||||
expectedClass.declarations.forEach {
|
|
||||||
when (it) {
|
|
||||||
is KtClassOrObject -> it.delete()
|
|
||||||
is KtCallableDeclaration -> it.delete()
|
|
||||||
is KtAnonymousInitializer -> it.delete()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expectedClass.primaryConstructor?.delete()
|
|
||||||
|
|
||||||
val context = actualClass.analyzeWithContent()
|
val context = actualClass.analyzeWithContent()
|
||||||
expectedClass.superTypeListEntries.zip(actualClass.superTypeListEntries).forEach { (expectedEntry, actualEntry) ->
|
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
|
val text = originalClass.text
|
||||||
return when (originalClass) {
|
return when (originalClass) {
|
||||||
is KtObjectDeclaration -> if (originalClass.isCompanion()) {
|
is KtObjectDeclaration -> if (originalClass.isCompanion()) {
|
||||||
@@ -57,6 +57,9 @@ fun KtPsiFactory.createClassCopyByText(originalClass: KtClassOrObject): KtClassO
|
|||||||
}
|
}
|
||||||
is KtEnumEntry -> createEnumEntry(text)
|
is KtEnumEntry -> createEnumEntry(text)
|
||||||
else -> createClass(text)
|
else -> createClass(text)
|
||||||
|
}.apply {
|
||||||
|
declarations.forEach(KtDeclaration::delete)
|
||||||
|
primaryConstructor?.delete()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user