Pull Up: Minor: Extract local functions
This commit is contained in:
@@ -509,10 +509,7 @@ class KotlinPullUpHelper(
|
|||||||
addAfter(JetPsiFactory(this).createWhiteSpace(), getModifierList())
|
addAfter(JetPsiFactory(this).createWhiteSpace(), getModifierList())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun move(info: MemberInfoBase<PsiMember>, substitutor: PsiSubstitutor) {
|
private fun moveSuperInterface(member: JetClass) {
|
||||||
val member = info.getMember().namedUnwrappedElement as? JetNamedDeclaration ?: return
|
|
||||||
|
|
||||||
if (member is JetClass && info.getOverrides() != null) {
|
|
||||||
val psiFactory = JetPsiFactory(member)
|
val psiFactory = JetPsiFactory(member)
|
||||||
|
|
||||||
val classDescriptor = data.memberDescriptors[member] as? ClassDescriptor ?: return
|
val classDescriptor = data.memberDescriptors[member] as? ClassDescriptor ?: return
|
||||||
@@ -524,7 +521,6 @@ class KotlinPullUpHelper(
|
|||||||
val referencedType = data.sourceClassContext[BindingContext.TYPE, it.getTypeReference()]
|
val referencedType = data.sourceClassContext[BindingContext.TYPE, it.getTypeReference()]
|
||||||
referencedType?.getConstructor()?.getDeclarationDescriptor() == classDescriptor
|
referencedType?.getConstructor()?.getDeclarationDescriptor() == classDescriptor
|
||||||
} ?: return
|
} ?: return
|
||||||
|
|
||||||
data.sourceClass.removeDelegationSpecifier(currentSpecifier)
|
data.sourceClass.removeDelegationSpecifier(currentSpecifier)
|
||||||
|
|
||||||
if (!DescriptorUtils.isSubclass(data.targetClassDescriptor, classDescriptor)) {
|
if (!DescriptorUtils.isSubclass(data.targetClassDescriptor, classDescriptor)) {
|
||||||
@@ -536,18 +532,32 @@ class KotlinPullUpHelper(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun move(info: MemberInfoBase<PsiMember>, substitutor: PsiSubstitutor) {
|
||||||
|
val member = info.getMember().namedUnwrappedElement as? JetNamedDeclaration ?: return
|
||||||
|
|
||||||
|
if (member is JetClass && info.getOverrides() != null) {
|
||||||
|
moveSuperInterface(member)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
val markedElements = markElements(member)
|
val markedElements = markElements(member)
|
||||||
val memberCopy = member.copy() as JetNamedDeclaration
|
val memberCopy = member.copy() as JetNamedDeclaration
|
||||||
|
|
||||||
try {
|
fun moveClassMember(member: JetClassOrObject, memberCopy: JetClassOrObject): JetClassOrObject {
|
||||||
var movedMember: JetNamedDeclaration
|
if (data.targetClass.isInterface()) {
|
||||||
when (member) {
|
memberCopy.removeModifier(JetTokens.INNER_KEYWORD)
|
||||||
is JetCallableDeclaration -> {
|
}
|
||||||
val clashingSuper = fixOverrideAndGetClashingSuper(member, memberCopy as JetCallableDeclaration)
|
val movedMember = addMemberToTarget(memberCopy) as JetClassOrObject
|
||||||
|
member.delete()
|
||||||
|
return movedMember
|
||||||
|
}
|
||||||
|
|
||||||
|
fun moveCallableMember(member: JetCallableDeclaration, memberCopy: JetCallableDeclaration): JetCallableDeclaration {
|
||||||
|
val movedMember: JetCallableDeclaration
|
||||||
|
val clashingSuper = fixOverrideAndGetClashingSuper(member, memberCopy)
|
||||||
|
|
||||||
val originalIsAbstract = member.hasModifier(JetTokens.ABSTRACT_KEYWORD)
|
val originalIsAbstract = member.hasModifier(JetTokens.ABSTRACT_KEYWORD)
|
||||||
val toAbstract = when {
|
val toAbstract = when {
|
||||||
@@ -586,21 +596,17 @@ class KotlinPullUpHelper(
|
|||||||
&& (movedMember.hasModifier(JetTokens.ABSTRACT_KEYWORD))) {
|
&& (movedMember.hasModifier(JetTokens.ABSTRACT_KEYWORD))) {
|
||||||
data.targetClass.addModifierWithSpace(JetTokens.ABSTRACT_KEYWORD)
|
data.targetClass.addModifierWithSpace(JetTokens.ABSTRACT_KEYWORD)
|
||||||
}
|
}
|
||||||
|
return movedMember
|
||||||
}
|
}
|
||||||
|
|
||||||
is JetClassOrObject -> {
|
try {
|
||||||
if (data.targetClass.isInterface()) {
|
val movedMember = when (member) {
|
||||||
memberCopy.removeModifier(JetTokens.INNER_KEYWORD)
|
is JetCallableDeclaration -> moveCallableMember(member, memberCopy as JetCallableDeclaration)
|
||||||
}
|
is JetClassOrObject -> moveClassMember(member, memberCopy as JetClassOrObject)
|
||||||
movedMember = addMemberToTarget(memberCopy) as JetClassOrObject
|
|
||||||
member.delete()
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> return
|
else -> return
|
||||||
}
|
}
|
||||||
|
|
||||||
processMarkedElements(movedMember)
|
processMarkedElements(movedMember)
|
||||||
|
|
||||||
addMovedMember(movedMember)
|
addMovedMember(movedMember)
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user