Pull up refactoring update

This commit is contained in:
Michael Bogdanov
2015-10-06 18:34:02 +03:00
parent 264d7da450
commit a2455aab7a
6 changed files with 32 additions and 24 deletions
@@ -26,11 +26,13 @@ import com.intellij.refactoring.memberPullUp.PullUpHelper
import com.intellij.refactoring.util.DocCommentPolicy
import com.intellij.refactoring.util.RefactoringUtil
import com.intellij.refactoring.util.classMembers.MemberInfo
import com.intellij.util.VisibilityUtil
import org.jetbrains.kotlin.asJava.unwrapped
import org.jetbrains.kotlin.idea.codeInsight.shorten.addToShorteningWaitSet
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
import org.jetbrains.kotlin.idea.core.refactoring.j2k
import org.jetbrains.kotlin.idea.core.refactoring.j2kText
import org.jetbrains.kotlin.idea.core.setVisibility
import org.jetbrains.kotlin.idea.refactoring.safeDelete.removeOverrideModifier
import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.load.java.JvmAbi
@@ -142,6 +144,12 @@ public class JavaToKotlinPreconversionPullUpHelper(
val targetClass = data.targetClass.unwrapped as? JetClass ?: return
val convertedDeclaration = member.j2k() ?: return
if (member is PsiField || member is PsiMethod) {
val visibilityModifier = VisibilityUtil.getVisibilityModifier(member.modifierList)
if (visibilityModifier == PsiModifier.PROTECTED || visibilityModifier == PsiModifier.PACKAGE_LOCAL) {
convertedDeclaration.setVisibility(JetTokens.PUBLIC_KEYWORD)
}
}
val newDeclaration = membersToDummyDeclarations[originalMember]?.replace(convertedDeclaration) as JetNamedDeclaration
if (targetClass.isInterface()) {
newDeclaration.removeModifier(JetTokens.ABSTRACT_KEYWORD)
@@ -1,6 +1,6 @@
abstract class A {
// INFO: {"checked": "true"}
internal var x = 2 * 3
var x = 2 * 3
// INFO: {"checked": "true"}
internal inner class X
@@ -9,19 +9,19 @@ abstract class A {
internal class Y
// INFO: {"checked": "true"}
internal fun foo(n: Int): Boolean {
fun foo(n: Int): Boolean {
return n > 0
}
// INFO: {"checked": "true"}
internal abstract fun bar(s: String): Int
abstract fun bar(s: String): Int
companion object {
// INFO: {"checked": "true"}
internal var X = "1" + "2"
var X = "1" + "2"
// INFO: {"checked": "true"}
JvmStatic internal fun foo2(n: Int): String {
JvmStatic fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -1,6 +1,6 @@
abstract class A {
// INFO: {"checked": "true", "toAbstract": "true"}
internal var x = 2 * 3
var x = 2 * 3
// INFO: {"checked": "true", "toAbstract": "true"}
internal inner class X
@@ -9,17 +9,17 @@ abstract class A {
internal class Y
// INFO: {"checked": "true", "toAbstract": "true"}
internal abstract fun foo(n: Int): Boolean
abstract fun foo(n: Int): Boolean
// INFO: {"checked": "true", "toAbstract": "true"}
internal abstract fun bar(s: String): Int
abstract fun bar(s: String): Int
companion object {
// INFO: {"checked": "true", "toAbstract": "true"}
internal var X = "1" + "2"
var X = "1" + "2"
// INFO: {"checked": "true", "toAbstract": "true"}
JvmStatic internal fun foo2(n: Int): String {
JvmStatic fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -4,19 +4,19 @@ interface Z<T>
open class A<T : I, U : I, V> {
// INFO: {"checked": "true"}
internal var foo1: T
var foo1: T
// INFO: {"checked": "true"}
internal var foo2: Z<T>
var foo2: Z<T>
// INFO: {"checked": "true"}
internal var foo3: Any
var foo3: Any
// INFO: {"checked": "true"}
internal var foo4: Z<Any>
var foo4: Z<Any>
// INFO: {"checked": "true"}
internal inner class Foo<S> : A<T, I, Z<Any>>(), Z<I>
// INFO: {"checked": "true"}
internal fun <S : T> foo(x1: T, x2: Z<T>, y1: Any, y2: Z<Any>, w1: I, w2: Z<I>, s1: S, s2: Z<S>) {
fun <S : T> foo(x1: T, x2: Z<T>, y1: Any, y2: Z<Any>, w1: I, w2: Z<I>, s1: S, s2: Z<S>) {
}
}
@@ -3,19 +3,19 @@ interface A {
internal class Y
// INFO: {"checked": "true"}
internal fun foo(n: Int): Boolean {
fun foo(n: Int): Boolean {
return n > 0
}
// INFO: {"checked": "true"}
internal fun bar(s: String): Int
fun bar(s: String): Int
companion object {
// INFO: {"checked": "true"}
internal var X = "1" + "2"
var X = "1" + "2"
// INFO: {"checked": "true"}
JvmStatic internal fun foo2(n: Int): String {
JvmStatic fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -2,7 +2,7 @@ class T {
class U {
abstract class A {
// INFO: {"checked": "true"}
internal var x = 2 * 3
var x = 2 * 3
// INFO: {"checked": "true"}
internal inner class X
@@ -11,19 +11,19 @@ class T {
internal class Y
// INFO: {"checked": "true"}
internal fun foo(n: Int): Boolean {
fun foo(n: Int): Boolean {
return n > 0
}
// INFO: {"checked": "true"}
internal abstract fun bar(s: String): Int
abstract fun bar(s: String): Int
companion object {
// INFO: {"checked": "true"}
internal var X = "1" + "2"
var X = "1" + "2"
// INFO: {"checked": "true"}
JvmStatic internal fun foo2(n: Int): String {
JvmStatic fun foo2(n: Int): String {
return "_" + n + "_"
}
}