Extraction Engine: Support lazy properties and properties with initializer
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
// WITH_RUNTIME
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
class A {
|
||||
fun foo(): Int {
|
||||
<selection>val a = 1 + 2
|
||||
val b = a*2</selection>
|
||||
val c = b - 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
// WITH_RUNTIME
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
class A {
|
||||
fun foo(): Int {
|
||||
val b = i
|
||||
val c = b - 1
|
||||
}
|
||||
|
||||
private val i: Int by Delegates.lazy {
|
||||
val a = 1 + 2
|
||||
val b = a * 2
|
||||
b
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
// WITH_RUNTIME
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return <selection>m + n + 1</selection>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
// WITH_RUNTIME
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return i
|
||||
}
|
||||
|
||||
private val i: Int by Delegates.lazy {
|
||||
m + n + 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// WITH_RUNTIME
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
|
||||
val n: Int = 1
|
||||
|
||||
fun foo(): Int {
|
||||
return <selection>n + 1</selection>
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// WITH_RUNTIME
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
val n: Int = 1
|
||||
|
||||
fun foo(): Int {
|
||||
return i
|
||||
}
|
||||
|
||||
private val i: Int by Delegates.lazy {
|
||||
n + 1
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// WITH_RUNTIME
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return if (n > 1) <selection>{
|
||||
println(n)
|
||||
m + n + 1
|
||||
}</selection> else 0
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
// WITH_RUNTIME
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return if (n > 1) {
|
||||
i
|
||||
} else 0
|
||||
}
|
||||
|
||||
private val i: Int by Delegates.lazy {
|
||||
println(n)
|
||||
m + n + 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// EXTRACTION_TARGET: lazy property
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
<selection>return m + n + 1</selection>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Can't generate lazy property: return m + n + 1
|
||||
@@ -1 +1 @@
|
||||
Can't generate property: n + 1
|
||||
Can't generate property with getter: n + 1
|
||||
@@ -1 +1 @@
|
||||
Can't generate property: 1 + 1
|
||||
Can't generate property with getter: 1 + 1
|
||||
@@ -0,0 +1,13 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return if (n > 1) <selection>{
|
||||
println(n)
|
||||
m + n + 1
|
||||
}</selection> else 0
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
Can't generate property with initializer: println(n) m + n + 1
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
val t = <selection>return m + n + 1</selection>
|
||||
return t
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
Can't generate property with initializer: return m + n + 1
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return if (n > 1) <selection>{
|
||||
m + n + 1
|
||||
}</selection> else 0
|
||||
}
|
||||
}
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return if (n > 1) {
|
||||
i
|
||||
} else 0
|
||||
}
|
||||
|
||||
private val i = m + n + 1
|
||||
}
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
class A {
|
||||
fun foo(): Int {
|
||||
<selection>val a = 1 + 2
|
||||
val b = a*2</selection>
|
||||
val c = b - 1
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
Can't generate property with initializer: val a = 1 + 2 val b = a*2
|
||||
@@ -0,0 +1,10 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return <selection>m + n + 1</selection>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
|
||||
class A(val n: Int = 1) {
|
||||
val m: Int = 2
|
||||
|
||||
fun foo(): Int {
|
||||
return i
|
||||
}
|
||||
|
||||
private val i = m + n + 1
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
|
||||
val n: Int = 1
|
||||
|
||||
fun foo(): Int {
|
||||
return <selection>n + 1</selection>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// EXTRACTION_TARGET: property with initializer
|
||||
|
||||
val n: Int = 1
|
||||
|
||||
fun foo(): Int {
|
||||
return i
|
||||
}
|
||||
|
||||
private val i = n + 1
|
||||
@@ -1 +1 @@
|
||||
Can't generate property: n + m + 1
|
||||
Can't generate property with getter: n + m + 1
|
||||
Reference in New Issue
Block a user