Push Down: Initial Support
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
class <caret>A {
|
||||
// INFO: {"checked": "true"}
|
||||
val x = 1
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Cannot perform refactoring.
|
||||
Class <b><code>A</code></b> is final
|
||||
@@ -0,0 +1,12 @@
|
||||
class X {
|
||||
open class <caret>A {
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(): Int = bar() + A.bar() + X.A.bar()
|
||||
|
||||
companion object {
|
||||
fun bar() = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class B : X.A
|
||||
@@ -0,0 +1,13 @@
|
||||
class X {
|
||||
open class A {
|
||||
|
||||
companion object {
|
||||
fun bar() = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class B : X.A {
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(): Int = X.A.bar() + X.A.bar() + X.A.bar()
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
open class <caret>A {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
private fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class B : A {
|
||||
fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
open class A {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
protected abstract fun foo()
|
||||
}
|
||||
|
||||
class B : A {
|
||||
override fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
class A {
|
||||
val x: Int = 1
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Cannot perform refactoring.
|
||||
Caret should be positioned inside a class to push members from
|
||||
@@ -0,0 +1,8 @@
|
||||
object <caret>O {
|
||||
// INFO: {"checked": "true"}
|
||||
val x = 1
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Cannot perform refactoring.
|
||||
Object <b><code>O</code></b> is final
|
||||
@@ -0,0 +1,3 @@
|
||||
fun <caret>test() {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Cannot perform refactoring.
|
||||
Caret should be positioned inside a class to push members from
|
||||
@@ -0,0 +1,34 @@
|
||||
abstract class <caret>A {
|
||||
// INFO: {"checked": "true"}
|
||||
val x = 1
|
||||
// INFO: {"checked": "true"}
|
||||
val y: Int get() = 2
|
||||
// INFO: {"checked": "true"}
|
||||
val z: Int by lazy { 3 }
|
||||
// INFO: {"checked": "true"}
|
||||
abstract val t: Int
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
// INFO: {"checked": "true"}
|
||||
abstract fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
inner class X {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
|
||||
}
|
||||
|
||||
class C : A() {
|
||||
override val t = 1
|
||||
|
||||
override fun bar(s: String) = s.length()
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
abstract class A {
|
||||
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
// INFO: {"checked": "true"}
|
||||
val x = 1
|
||||
// INFO: {"checked": "true"}
|
||||
val y: Int get() = 2
|
||||
// INFO: {"checked": "true"}
|
||||
val z: Int by lazy { 3 }
|
||||
// INFO: {"checked": "true"}
|
||||
abstract val t: Int
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
abstract fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
inner class X {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class C : A() {
|
||||
val t = 1
|
||||
// INFO: {"checked": "true"}
|
||||
val x = 1
|
||||
// INFO: {"checked": "true"}
|
||||
val y: Int get() = 2
|
||||
// INFO: {"checked": "true"}
|
||||
val z: Int by lazy { 3 }
|
||||
|
||||
fun bar(s: String) = s.length()
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
inner class X {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
abstract class <caret>A {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
val x = 1
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
val y: Int get() = 2
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
val z: Int by lazy { 3 }
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract val t: Int
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
inner class X {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
|
||||
}
|
||||
|
||||
class C : A() {
|
||||
override val t = 1
|
||||
|
||||
override fun bar(s: String) = s.length()
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
abstract class A {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract val x: Int
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract val y: Int
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract val z: Int
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract fun foo(n: Int): Boolean
|
||||
|
||||
}
|
||||
|
||||
abstract class B : A() {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val x = 1
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val y: Int get() = 2
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val z: Int by lazy { 3 }
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract val t: Int
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
inner class X {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class C : A() {
|
||||
val t = 1
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val x = 1
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val y: Int get() = 2
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val z: Int by lazy { 3 }
|
||||
|
||||
fun bar(s: String) = s.length()
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
inner class X {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
interface Z<T>
|
||||
|
||||
open class <caret>A<T> {
|
||||
// INFO: {"checked": "true"}
|
||||
val t1: T
|
||||
// INFO: {"checked": "true"}
|
||||
val t2: Z<T>
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo<S>(t1: T, t2: Z<T>, s1: S, s2: Z<S>): Boolean = true
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
inner class X : Z<T> {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y<U> : Z<U> {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class B<S> : A<Z<S>>() {
|
||||
|
||||
}
|
||||
|
||||
class C<K> : A<B<K>>() {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
interface Z<T>
|
||||
|
||||
open class A<T> {
|
||||
|
||||
}
|
||||
|
||||
class B<S> : A<Z<S>>() {
|
||||
// INFO: {"checked": "true"}
|
||||
val t1: Z<S>
|
||||
// INFO: {"checked": "true"}
|
||||
val t2: Z<Z<S>>
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo<S>(t1: Z<S>, t2: Z<Z<S>>, s1: S, s2: Z<S>): Boolean = true
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
inner class X : Z<Z<S>> {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y<U> : Z<U> {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class C<K> : A<B<K>>() {
|
||||
// INFO: {"checked": "true"}
|
||||
val t1: B<K>
|
||||
// INFO: {"checked": "true"}
|
||||
val t2: Z<B<K>>
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo<S>(t1: B<K>, t2: Z<B<K>>, s1: S, s2: Z<S>): Boolean = true
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
inner class X : Z<B<K>> {
|
||||
|
||||
}
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y<U> : Z<U> {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
interface <caret>I {
|
||||
// INFO: {"checked": "true"}
|
||||
val x: Int get() = 2
|
||||
// INFO: {"checked": "true"}
|
||||
val y: Int
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
// INFO: {"checked": "true"}
|
||||
fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
abstract class A : I
|
||||
|
||||
class B : I {
|
||||
override val y = 1
|
||||
|
||||
override fun bar(s: String) = s.length()
|
||||
}
|
||||
|
||||
interface J : I
|
||||
|
||||
interface K : I {
|
||||
override val y: Int get() = 1
|
||||
|
||||
override fun bar(s: String) = s.length()
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
interface I {
|
||||
|
||||
}
|
||||
|
||||
abstract class A : I {
|
||||
// INFO: {"checked": "true"}
|
||||
val x: Int get() = 2
|
||||
// INFO: {"checked": "true"}
|
||||
abstract val y: Int
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
abstract fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class B : I {
|
||||
val y = 1
|
||||
// INFO: {"checked": "true"}
|
||||
val x: Int get() = 2
|
||||
|
||||
fun bar(s: String) = s.length()
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
interface J : I {
|
||||
// INFO: {"checked": "true"}
|
||||
val x: Int get() = 2
|
||||
// INFO: {"checked": "true"}
|
||||
val y: Int
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
interface K : I {
|
||||
val y: Int get() = 1
|
||||
// INFO: {"checked": "true"}
|
||||
val x: Int get() = 2
|
||||
|
||||
fun bar(s: String) = s.length()
|
||||
// INFO: {"checked": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
interface <caret>I {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
val x: Int get() = 2
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
val y: Int
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
fun foo(n: Int): Boolean = n > 0
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
abstract class A : I
|
||||
|
||||
class B : I {
|
||||
override val y = 1
|
||||
|
||||
override fun bar(s: String) = s.length()
|
||||
}
|
||||
|
||||
interface J : I
|
||||
|
||||
interface K : I {
|
||||
override val y: Int get() = 1
|
||||
|
||||
override fun bar(s: String) = s.length()
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
interface I {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
val x: Int
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
fun foo(n: Int): Boolean
|
||||
|
||||
}
|
||||
|
||||
abstract class A : I {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val x: Int get() = 2
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract val y: Int
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
abstract fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class B : I {
|
||||
val y = 1
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val x: Int get() = 2
|
||||
|
||||
fun bar(s: String) = s.length()
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
interface J : I {
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val x: Int get() = 2
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
val y: Int
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
fun bar(s: String)
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
interface K : I {
|
||||
val y: Int get() = 1
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override val x: Int get() = 2
|
||||
|
||||
fun bar(s: String) = s.length()
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
override fun foo(n: Int): Boolean = n > 0
|
||||
|
||||
// INFO: {"checked": "true", "toAbstract": "true"}
|
||||
class Y {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// INFO: {"checked": "true"}
|
||||
interface X
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface Y
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface Z
|
||||
|
||||
open class <caret>A : X, Y, Z
|
||||
|
||||
class B : A(), Z
|
||||
@@ -0,0 +1,12 @@
|
||||
// INFO: {"checked": "true"}
|
||||
interface X
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface Y
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface Z
|
||||
|
||||
open class A
|
||||
|
||||
class B : A(), Z, X, Y
|
||||
@@ -0,0 +1,14 @@
|
||||
interface I
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface X<T>
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface Y<T>
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface Z<T>
|
||||
|
||||
open class <caret>A<T, U> : X<T>, Y<X<I>>, Z<Y<U>>
|
||||
|
||||
class B<S> : A<X<S>, Y<S>>(), Z<I>
|
||||
@@ -0,0 +1,14 @@
|
||||
interface I
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface X<T>
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface Y<T>
|
||||
|
||||
// INFO: {"checked": "true"}
|
||||
interface Z<T>
|
||||
|
||||
open class A<T, U>
|
||||
|
||||
class B<S> : A<X<S>, Y<S>>(), Z<I>, X<X<S>>, Y<X<I>>
|
||||
Reference in New Issue
Block a user