Extract Function: Utilize pseudo-value usage for return type inference

This commit is contained in:
Alexey Sedunov
2014-05-30 13:06:06 +04:00
parent 164338d6f5
commit 1a7e6eab61
35 changed files with 494 additions and 145 deletions
@@ -0,0 +1,17 @@
fun bar(a: Int): Int {
println(a)
return a + 10
}
// SIBLING:
fun foo(a: Int) {
val b: Int = 1
<selection>if(a > 0) {
bar(a)
}
else {
b
}
</selection>
}
@@ -0,0 +1,20 @@
fun bar(a: Int): Int {
println(a)
return a + 10
}
// SIBLING:
fun foo(a: Int) {
val b: Int = 1
unit(a, b)
}
fun unit(a: Int, b: Int) {
if (a > 0) {
bar(a)
} else {
b
}
}
@@ -0,0 +1,11 @@
fun bar(a: Int): Int {
println(a)
return a + 10
}
// SIBLING:
fun foo(a: Int) {
val b: Int = 1
<selection>if(a > 0) bar(a) else b</selection>
}
@@ -0,0 +1,15 @@
fun bar(a: Int): Int {
println(a)
return a + 10
}
// SIBLING:
fun foo(a: Int) {
val b: Int = 1
unit(a, b)
}
fun unit(a: Int, b: Int) {
if (a > 0) bar(a) else b
}
@@ -0,0 +1,19 @@
fun bar(a: Int): Int {
println(a)
return a + 10
}
// SIBLING:
fun foo(a: Int) {
val b: Int = 1
<selection>when {
a > 0 -> {
bar(a)
}
else -> {
b
}
}
</selection>
}
@@ -0,0 +1,23 @@
fun bar(a: Int): Int {
println(a)
return a + 10
}
// SIBLING:
fun foo(a: Int) {
val b: Int = 1
unit(a, b)
}
fun unit(a: Int, b: Int) {
when {
a > 0 -> {
bar(a)
}
else -> {
b
}
}
}
@@ -0,0 +1,15 @@
fun bar(a: Int): Int {
println(a)
return a + 10
}
// SIBLING:
fun foo(a: Int) {
val b: Int = 1
<selection>when {
a > 0 -> bar(a)
else -> b
}
</selection>
}
@@ -0,0 +1,19 @@
fun bar(a: Int): Int {
println(a)
return a + 10
}
// SIBLING:
fun foo(a: Int) {
val b: Int = 1
unit(a, b)
}
fun unit(a: Int, b: Int) {
when {
a > 0 -> bar(a)
else -> b
}
}