Extract Function: Allow to combine throws with other exit points

This commit is contained in:
Alexey Sedunov
2014-04-24 18:22:02 +04:00
parent 2cfd7de8d9
commit 243ba62b65
13 changed files with 133 additions and 10 deletions
@@ -0,0 +1,9 @@
// NEXT_SIBLING:
fun foo(a: Int): Int {
val b: Int = 1
for (n in 1..b) {
<selection>if (a > 0) throw Exception("")
if (a + b > 0) break
println(a - b)</selection>
}
}
@@ -0,0 +1,14 @@
// NEXT_SIBLING:
fun b(a: Int, b: Int): Boolean {
if (a > 0) throw Exception("")
if (a + b > 0) return true
println(a - b)
return false
}
fun foo(a: Int): Int {
val b: Int = 1
for (n in 1..b) {
if (b(a, b)) break
}
}
@@ -0,0 +1,9 @@
// NEXT_SIBLING:
fun foo(a: Int): Int {
val b: Int = 1
for (n in 1..b) {
<selection>if (a > 0) throw Exception("")
if (a + b > 0) continue
println(a - b)</selection>
}
}
@@ -0,0 +1,14 @@
// NEXT_SIBLING:
fun b(a: Int, b: Int): Boolean {
if (a > 0) throw Exception("")
if (a + b > 0) return true
println(a - b)
return false
}
fun foo(a: Int): Int {
val b: Int = 1
for (n in 1..b) {
if (b(a, b)) continue
}
}
@@ -0,0 +1,11 @@
// NEXT_SIBLING:
fun i(a: Int, b: Int): Int {
return if (a > 0) throw Exception("") else a + b
}
fun foo(a: Int): Int {
val b: Int = 1
val t = i(a, b)
return t
}
@@ -0,0 +1,8 @@
// NEXT_SIBLING:
fun foo(a: Int) {
val b: Int = 1
<selection>if (a > 0) throw Exception("")
if (b + a > 0) return
println(a - b)</selection>
}
@@ -0,0 +1,13 @@
// NEXT_SIBLING:
fun b(a: Int, b: Int): Boolean {
if (a > 0) throw Exception("")
if (b + a > 0) return true
println(a - b)
return false
}
fun foo(a: Int) {
val b: Int = 1
if (b(a, b)) return
}
@@ -0,0 +1,7 @@
// NEXT_SIBLING:
fun foo(a: Int): Int {
val b: Int = 1
<selection>if (a > 0) throw Exception("") else return a + b
return a - b</selection>
}
@@ -0,0 +1,11 @@
// NEXT_SIBLING:
fun i(a: Int, b: Int): Int {
if (a > 0) throw Exception("") else return a + b
return a - b
}
fun foo(a: Int): Int {
val b: Int = 1
return i(a, b)
}
@@ -1 +0,0 @@
Selected code fragment has multiple exit points