Extract Function: Allow to extract local variables which are used outside of extracted fragment

This commit is contained in:
Alexey Sedunov
2014-07-03 18:55:11 +04:00
parent 540e8b8b46
commit d95f6383b7
35 changed files with 439 additions and 93 deletions
@@ -0,0 +1,6 @@
// SIBLING:
fun foo() {
<selection>val a = 1
val b = 2</selection>
println(a + b)
}
@@ -0,0 +1 @@
Selected code fragment has multiple output values: a b
@@ -1,11 +0,0 @@
// SIBLING:
fun main(args: Array<String>) {
<selection>val a = 1</selection>
val t = object: T {
override fun foo(n: Int) = n + a
}
}
trait T {
fun foo(n: Int): Int
}
@@ -1 +0,0 @@
Following variables are used outside of selected code fragment: a
@@ -1,9 +0,0 @@
// SIBLING:
fun main(args: Array<String>) {
<selection>val a = 1</selection>
lambda {
a
}
}
fun lambda(f: () -> Unit) {}
@@ -1 +0,0 @@
Following variables are used outside of selected code fragment: a
@@ -1,5 +0,0 @@
// SIBLING:
fun main(args: Array<String>) {
<selection>val a = 1</selection>
fun foo() = a
}
@@ -1 +0,0 @@
Following variables are used outside of selected code fragment: a