Extract Function: Allow to extract local variables which are used outside of extracted fragment
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: val b: kotlin.Int defined in foo
|
||||
// SIBLING:
|
||||
fun foo(a: Int): Int {
|
||||
val b: Int = 1
|
||||
for (n in 1..a) {
|
||||
<selection>if (a + b > 0) break
|
||||
val c: Int
|
||||
println(a - b)
|
||||
if (a - b > 0) break
|
||||
println(a + b)</selection>
|
||||
c = 1
|
||||
println(c)
|
||||
}
|
||||
return 1
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: val b: kotlin.Int defined in foo
|
||||
// SIBLING:
|
||||
fun foo(a: Int): Int {
|
||||
val b: Int = 1
|
||||
for (n in 1..a) {
|
||||
val c: Int
|
||||
if (b(a, b)) break
|
||||
c = 1
|
||||
println(c)
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
fun b(a: Int, b: Int): Boolean {
|
||||
if (a + b > 0) return true
|
||||
val c: Int
|
||||
println(a - b)
|
||||
if (a - b > 0) return true
|
||||
println(a + b)
|
||||
return false
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// PARAM_TYPES: kotlin.Int, Comparable<Int>
|
||||
// PARAM_TYPES: kotlin.Int, Number, Comparable<Int>, Any
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: val b: kotlin.Int defined in foo
|
||||
// SIBLING:
|
||||
fun foo(a: Int) {
|
||||
val b: Int = 1
|
||||
|
||||
<selection>if(a > 0) {
|
||||
println(a)
|
||||
}
|
||||
val c: Int
|
||||
println(b)</selection>
|
||||
|
||||
c = 1
|
||||
println(c)
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// PARAM_TYPES: kotlin.Int, Comparable<Int>
|
||||
// PARAM_TYPES: kotlin.Int, Number, Comparable<Int>, Any
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: val b: kotlin.Int defined in foo
|
||||
// SIBLING:
|
||||
fun foo(a: Int) {
|
||||
val b: Int = 1
|
||||
|
||||
val c: Int
|
||||
unit(a, b)
|
||||
|
||||
c = 1
|
||||
println(c)
|
||||
}
|
||||
|
||||
fun unit(a: Int, b: Int) {
|
||||
if (a > 0) {
|
||||
println(a)
|
||||
}
|
||||
val c: Int
|
||||
println(b)
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
<selection>val a = 10</selection>
|
||||
println(a)
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a = i()
|
||||
println(a)
|
||||
}
|
||||
|
||||
fun i(): Int {
|
||||
val a = 10
|
||||
return a
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
<selection>val a: Int
|
||||
val b = 10
|
||||
val c: Int
|
||||
</selection>
|
||||
a = 1
|
||||
c = 2
|
||||
println(a + b + c)
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: Int
|
||||
val b = i()
|
||||
val c: Int
|
||||
|
||||
a = 1
|
||||
c = 2
|
||||
println(a + b + c)
|
||||
}
|
||||
|
||||
fun i(): Int {
|
||||
val a: Int
|
||||
val b = 10
|
||||
val c: Int
|
||||
return b
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
<selection>val a: Int
|
||||
val b = 10
|
||||
val c: Int = 1
|
||||
</selection>
|
||||
a = 2
|
||||
println(a + b)
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: Int
|
||||
val b = i()
|
||||
|
||||
a = 2
|
||||
println(a + b)
|
||||
}
|
||||
|
||||
fun i(): Int {
|
||||
val a: Int
|
||||
val b = 10
|
||||
val c: Int = 1
|
||||
return b
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
<selection>val a: Int
|
||||
a = 10</selection>
|
||||
println(a)
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: Int = i()
|
||||
println(a)
|
||||
}
|
||||
|
||||
fun i(): Int {
|
||||
val a: Int
|
||||
a = 10
|
||||
return a
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// SIBLING:
|
||||
fun main(args: Array<String>) {
|
||||
val a = i()
|
||||
val t = object: T {
|
||||
override fun foo(n: Int) = n + a
|
||||
}
|
||||
}
|
||||
|
||||
fun i(): Int {
|
||||
val a = 1
|
||||
return a
|
||||
}
|
||||
|
||||
trait T {
|
||||
fun foo(n: Int): Int
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// SIBLING:
|
||||
fun main(args: Array<String>) {
|
||||
val a = i()
|
||||
lambda {
|
||||
a
|
||||
}
|
||||
}
|
||||
|
||||
fun i(): Int {
|
||||
val a = 1
|
||||
return a
|
||||
}
|
||||
|
||||
fun lambda(f: () -> Unit) {}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// SIBLING:
|
||||
fun main(args: Array<String>) {
|
||||
val a = i()
|
||||
fun foo() = a
|
||||
}
|
||||
|
||||
fun i(): Int {
|
||||
val a = 1
|
||||
return a
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
<selection>val a = 1
|
||||
val b = 2</selection>
|
||||
println(a + b)
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
Selected code fragment has multiple output values: a b
|
||||
-1
@@ -1 +0,0 @@
|
||||
Following variables are used outside of selected code fragment: a
|
||||
-1
@@ -1 +0,0 @@
|
||||
Following variables are used outside of selected code fragment: a
|
||||
-1
@@ -1 +0,0 @@
|
||||
Following variables are used outside of selected code fragment: a
|
||||
Reference in New Issue
Block a user