Safe delete: when invoking on actual, delete expect & actual neighbors
So #KT-15666 Fixed
This commit is contained in:
+25
-11
@@ -382,21 +382,35 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() {
|
||||
return result.toTypedArray()
|
||||
}
|
||||
|
||||
private fun KtDeclaration.removeOrClean() {
|
||||
when (this) {
|
||||
is KtParameter -> {
|
||||
(parent as? KtParameterList)?.removeParameter(this)
|
||||
}
|
||||
is KtCallableDeclaration, is KtClassOrObject, is KtTypeAlias -> {
|
||||
delete()
|
||||
}
|
||||
else -> {
|
||||
removeModifier(KtTokens.IMPL_KEYWORD)
|
||||
removeModifier(KtTokens.ACTUAL_KEYWORD)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun prepareForDeletion(element: PsiElement) {
|
||||
if (element is KtDeclaration) {
|
||||
element.actualsForExpected().forEach {
|
||||
when (it) {
|
||||
is KtParameter -> {
|
||||
(it.parent as? KtParameterList)?.removeParameter(it)
|
||||
}
|
||||
is KtCallableDeclaration, is KtClassOrObject, is KtTypeAlias -> {
|
||||
it.delete()
|
||||
}
|
||||
else -> {
|
||||
it.removeModifier(KtTokens.IMPL_KEYWORD)
|
||||
it.removeModifier(KtTokens.ACTUAL_KEYWORD)
|
||||
if (element.hasActualModifier()) {
|
||||
val expectElement = element.liftToExpected()
|
||||
expectElement?.actualsForExpected()?.forEach {
|
||||
if (it !== element) {
|
||||
it.removeOrClean()
|
||||
}
|
||||
}
|
||||
expectElement?.removeOrClean()
|
||||
} else {
|
||||
element.actualsForExpected().forEach {
|
||||
it.removeOrClean()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+25
-11
@@ -374,21 +374,35 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() {
|
||||
return result.toTypedArray()
|
||||
}
|
||||
|
||||
private fun KtDeclaration.removeOrClean() {
|
||||
when (this) {
|
||||
is KtParameter -> {
|
||||
(parent as? KtParameterList)?.removeParameter(this)
|
||||
}
|
||||
is KtCallableDeclaration, is KtClassOrObject, is KtTypeAlias -> {
|
||||
delete()
|
||||
}
|
||||
else -> {
|
||||
removeModifier(KtTokens.IMPL_KEYWORD)
|
||||
removeModifier(KtTokens.ACTUAL_KEYWORD)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun prepareForDeletion(element: PsiElement) {
|
||||
if (element is KtDeclaration) {
|
||||
element.actualsForExpected().forEach {
|
||||
when (it) {
|
||||
is KtParameter -> {
|
||||
(it.parent as? KtParameterList)?.removeParameter(it)
|
||||
}
|
||||
is KtCallableDeclaration, is KtClassOrObject, is KtTypeAlias -> {
|
||||
it.delete()
|
||||
}
|
||||
else -> {
|
||||
it.removeModifier(KtTokens.IMPL_KEYWORD)
|
||||
it.removeModifier(KtTokens.ACTUAL_KEYWORD)
|
||||
if (element.hasActualModifier()) {
|
||||
val expectElement = element.liftToExpected()
|
||||
expectElement?.actualsForExpected()?.forEach {
|
||||
if (it !== element) {
|
||||
it.removeOrClean()
|
||||
}
|
||||
}
|
||||
expectElement?.removeOrClean()
|
||||
} else {
|
||||
element.actualsForExpected().forEach {
|
||||
it.removeOrClean()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+25
-11
@@ -384,21 +384,35 @@ class KotlinSafeDeleteProcessor : JavaSafeDeleteProcessor() {
|
||||
return result.toTypedArray()
|
||||
}
|
||||
|
||||
private fun KtDeclaration.removeOrClean() {
|
||||
when (this) {
|
||||
is KtParameter -> {
|
||||
(parent as? KtParameterList)?.removeParameter(this)
|
||||
}
|
||||
is KtCallableDeclaration, is KtClassOrObject, is KtTypeAlias -> {
|
||||
delete()
|
||||
}
|
||||
else -> {
|
||||
removeModifier(KtTokens.IMPL_KEYWORD)
|
||||
removeModifier(KtTokens.ACTUAL_KEYWORD)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun prepareForDeletion(element: PsiElement) {
|
||||
if (element is KtDeclaration) {
|
||||
element.actualsForExpected().forEach {
|
||||
when (it) {
|
||||
is KtParameter -> {
|
||||
(it.parent as? KtParameterList)?.removeParameter(it)
|
||||
}
|
||||
is KtCallableDeclaration, is KtClassOrObject, is KtTypeAlias -> {
|
||||
it.delete()
|
||||
}
|
||||
else -> {
|
||||
it.removeModifier(KtTokens.IMPL_KEYWORD)
|
||||
it.removeModifier(KtTokens.ACTUAL_KEYWORD)
|
||||
if (element.hasActualModifier()) {
|
||||
val expectElement = element.liftToExpected()
|
||||
expectElement?.actualsForExpected()?.forEach {
|
||||
if (it !== element) {
|
||||
it.removeOrClean()
|
||||
}
|
||||
}
|
||||
expectElement?.removeOrClean()
|
||||
} else {
|
||||
element.actualsForExpected().forEach {
|
||||
it.removeOrClean()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user