Pull Up/Extract Super: Support properties declared in the primary constructor

This commit is contained in:
Alexey Sedunov
2016-09-20 15:12:13 +03:00
parent 3aedf0d79f
commit 982d4d4ead
38 changed files with 378 additions and 47 deletions
@@ -0,0 +1,9 @@
interface I
class <caret>B(
// INFO: {"checked": "true", "toAbstract": "true"}
val s: String,
// INFO: {"checked": "true", "toAbstract": "true"}
val b: Boolean,
val i: Int
) : I
@@ -0,0 +1,12 @@
interface I {
val s: String
val b: Boolean
}
class B(
// INFO: {"checked": "true", "toAbstract": "true"}
override val s: String,
// INFO: {"checked": "true", "toAbstract": "true"}
override val b: Boolean,
val i: Int
) : I
@@ -0,0 +1,11 @@
open class A(n: Int) {
}
class <caret>B(
// INFO: {"checked": "true"}
val s: String,
// INFO: {"checked": "true"}
val b: Boolean,
val i: Int
) : A(1)
@@ -0,0 +1,11 @@
open class A(n: Int, val s: String, val b: Boolean) {
}
class B(
// INFO: {"checked": "true"}
s: String,
// INFO: {"checked": "true"}
b: Boolean,
val i: Int
) : A(1, s, b)
@@ -0,0 +1,11 @@
open class A(n: Int) {
}
class <caret>B(
// INFO: {"checked": "true", "toAbstract": "true"}
val s: String,
// INFO: {"checked": "true", "toAbstract": "true"}
val b: Boolean,
val i: Int
) : A(1)
@@ -0,0 +1,13 @@
abstract class A(n: Int) {
abstract val s: String
abstract val b: Boolean
}
class B(
// INFO: {"checked": "true", "toAbstract": "true"}
override val s: String,
// INFO: {"checked": "true", "toAbstract": "true"}
override val b: Boolean,
val i: Int
) : A(1)
@@ -0,0 +1,8 @@
open class A(n: Int, s: String = "") {
}
class <caret>B(
// INFO: {"checked": "true"}
val i: Int
) : A(1, "2")
@@ -0,0 +1,8 @@
open class A(n: Int, val i: Int, s: String = "") {
}
class B(
// INFO: {"checked": "true"}
i: Int
) : A(1, i, "2")
@@ -0,0 +1,8 @@
open class A(n: Int, s: String = "") {
}
class <caret>B(
// INFO: {"checked": "true"}
val i: Int
) : A(1)
@@ -0,0 +1,8 @@
open class A(n: Int, val i: Int, s: String = "") {
}
class B(
// INFO: {"checked": "true"}
i: Int
) : A(1, i)
@@ -0,0 +1,8 @@
open class A(n: Int, s: String) {
}
class <caret>B(
// INFO: {"checked": "true"}
val i: Int
) : A(s = "2", n = 1)
@@ -0,0 +1,8 @@
open class A(n: Int, s: String, val i: Int) {
}
class B(
// INFO: {"checked": "true"}
i: Int
) : A(s = "2", i = i, n = 1)
@@ -0,0 +1,8 @@
open class A(n: Int, s: String = "") {
}
class <caret>B(
// INFO: {"checked": "true"}
val i: Int
) : A(s = "2", n = 1)
@@ -0,0 +1,8 @@
open class A(n: Int, val i: Int, s: String = "") {
}
class B(
// INFO: {"checked": "true"}
i: Int
) : A(s = "2", n = 1, i = i)
@@ -0,0 +1,8 @@
open class A(n: Int, vararg s: String) {
}
class <caret>B(
// INFO: {"checked": "true"}
val i: Int
) : A(1, "2", "3")
@@ -0,0 +1,8 @@
open class A(n: Int, val i: Int, vararg s: String) {
}
class B(
// INFO: {"checked": "true"}
i: Int
) : A(1, i, "2", "3")
@@ -0,0 +1,8 @@
open class A(x: Int) {
}
class <caret>B(
// INFO: {"checked": "true"}
val x: String
) : A(1)
@@ -0,0 +1 @@
Class A already contains property 'val x: String'