Extract Function: Do not extract into lambda

This commit is contained in:
Alexey Sedunov
2014-07-04 18:21:13 +04:00
parent 0c49d48a48
commit 30192b4c40
32 changed files with 249 additions and 12 deletions
@@ -0,0 +1,3 @@
class A(val a: Int, val b: Int) {
val foo: Int get() = { <selection>a + b</selection> - 1 }.invoke()
}
@@ -0,0 +1,7 @@
class A(val a: Int, val b: Int) {
val foo: Int get() = { i() - 1 }.invoke()
fun i(): Int {
return a + b
}
}
@@ -0,0 +1,3 @@
val a = 1
val b = 1
val foo: Int get() = { <selection>a + b</selection> - 1 }.invoke()
@@ -0,0 +1,7 @@
val a = 1
val b = 1
val foo: Int get() = { i() - 1 }.invoke()
fun i(): Int {
return a + b
}
@@ -0,0 +1,6 @@
// PARAM_TYPES: kotlin.Int
class A(val a: Int, b: Int) {
{
println({ <selection>a + b</selection> - 1 }.invoke())
}
}
@@ -0,0 +1,10 @@
// PARAM_TYPES: kotlin.Int
class A(val a: Int, b: Int) {
{
println({ i(b) - 1 }.invoke())
}
fun i(b: Int): Int {
return a + b
}
}
@@ -0,0 +1,3 @@
// PARAM_TYPES: kotlin.Int
val n = 1
class A(val a: Int, val b: Int = { <selection>a + n</selection> }.invoke())
@@ -0,0 +1,7 @@
// PARAM_TYPES: kotlin.Int
val n = 1
class A(val a: Int, val b: Int = { i(a) }.invoke())
fun i(a: Int): Int {
return a + n
}
@@ -0,0 +1,4 @@
// PARAM_TYPES: kotlin.Int
fun bar(n: Int) {
fun foo(a: Int, b: Int = { <selection>a + n</selection> }.invoke()) = a + b - n - 1
}
@@ -0,0 +1 @@
Cannot extract method since following types are not denotable in the target scope: [ERROR : ]
@@ -0,0 +1,5 @@
// PARAM_TYPES: kotlin.Int
// PARAM_TYPES: kotlin.Int
fun bar(n: Int) {
fun foo(a: Int, b: Int) = { <selection>a + b - n</selection> - 1 }.invoke()
}
@@ -0,0 +1,9 @@
// PARAM_TYPES: kotlin.Int
// PARAM_TYPES: kotlin.Int
fun bar(n: Int) {
fun i(a: Int, b: Int): Int {
return a + b - n
}
fun foo(a: Int, b: Int) = { i(a, b) - 1 }.invoke()
}
@@ -0,0 +1,4 @@
// PARAM_TYPES: kotlin.Int
class A(val n: Int) {
fun foo(a: Int, b: Int = { <selection>a + n</selection> }.invoke()) = a + b - n - 1
}
@@ -0,0 +1,8 @@
// PARAM_TYPES: kotlin.Int
class A(val n: Int) {
fun foo(a: Int, b: Int = { i(a) }.invoke()) = a + b - n - 1
fun i(a: Int): Int {
return a + n
}
}
@@ -0,0 +1,5 @@
// PARAM_TYPES: kotlin.Int
// PARAM_TYPES: kotlin.Int
class A(val n: Int) {
fun foo(a: Int, b: Int) = { <selection>a + b - n</selection> - 1 }.invoke()
}
@@ -0,0 +1,9 @@
// PARAM_TYPES: kotlin.Int
// PARAM_TYPES: kotlin.Int
class A(val n: Int) {
fun foo(a: Int, b: Int) = { i(a, b) - 1 }.invoke()
fun i(a: Int, b: Int): Int {
return a + b - n
}
}
@@ -0,0 +1,3 @@
// PARAM_TYPES: kotlin.Int
val n = 1
fun foo(a: Int, b: Int = { <selection>a + n</selection> }) = a + b - 1
@@ -0,0 +1,7 @@
// PARAM_TYPES: kotlin.Int
val n = 1
fun foo(a: Int, b: Int = { i(a) }) = a + b - 1
fun i(a: Int): Int {
return a + n
}
@@ -0,0 +1,3 @@
// PARAM_TYPES: kotlin.Int
// PARAM_TYPES: kotlin.Int
fun foo(a: Int, b: Int) = { <selection>a + b</selection> - 1 }.invoke()
@@ -0,0 +1,7 @@
// PARAM_TYPES: kotlin.Int
// PARAM_TYPES: kotlin.Int
fun foo(a: Int, b: Int) = { i(a, b) - 1 }.invoke()
fun i(a: Int, b: Int): Int {
return a + b
}
@@ -0,0 +1,3 @@
fun bar(a: Int, b: Int) {
val foo = { <selection>a + b</selection> - 1 }.invoke()
}
@@ -0,0 +1,7 @@
fun bar(a: Int, b: Int) {
fun i(): Int {
return a + b
}
val foo = { i() - 1 }.invoke()
}
@@ -0,0 +1,4 @@
// PARAM_TYPES: kotlin.Int
class A(val a: Int, b: Int) {
val foo = { <selection>a + b</selection> - 1 }.invoke()
}
@@ -0,0 +1,8 @@
// PARAM_TYPES: kotlin.Int
class A(val a: Int, b: Int) {
val foo = { i(b) - 1 }.invoke()
fun i(b: Int): Int {
return a + b
}
}
@@ -0,0 +1,3 @@
val a = 1
val b = 1
val foo = { <selection>a + b</selection> - 1 }.invoke()
@@ -0,0 +1,7 @@
val a = 1
val b = 1
val foo = { i() - 1 }.invoke()
fun i(): Int {
return a + b
}