Extract Function: Implement duplicate search
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in test
|
||||
// PARAM_DESCRIPTOR: var b: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(a: Int): Int {
|
||||
var b: Int = 1
|
||||
val t = <selection>if (a > 0) {
|
||||
b++
|
||||
b + a
|
||||
}
|
||||
else {
|
||||
b--
|
||||
b - a
|
||||
}</selection>
|
||||
return t
|
||||
}
|
||||
|
||||
fun foo1() {
|
||||
val x = 1
|
||||
var y: Int = x
|
||||
println(
|
||||
if (x > 0) {
|
||||
y++
|
||||
y + x
|
||||
}
|
||||
else {
|
||||
y--
|
||||
y - x
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun foo2(x: Int) {
|
||||
var p: Int = 1
|
||||
var q: Int
|
||||
if (x > 0) {
|
||||
p++
|
||||
q = p + x
|
||||
}
|
||||
else {
|
||||
p--
|
||||
q = p - x
|
||||
}
|
||||
println(q)
|
||||
}
|
||||
|
||||
fun foo3(x: Int): Int {
|
||||
var p: Int = 1
|
||||
if (x > 0) {
|
||||
p++
|
||||
return p + x
|
||||
}
|
||||
else {
|
||||
p--
|
||||
return p - x
|
||||
}
|
||||
}
|
||||
|
||||
fun foo4() {
|
||||
val t: (Int) -> (Int) = {
|
||||
var n = it
|
||||
if (it > 0) {
|
||||
n++
|
||||
n + it
|
||||
}
|
||||
else {
|
||||
n--
|
||||
n - it
|
||||
}
|
||||
}
|
||||
println(t(1))
|
||||
}
|
||||
|
||||
fun foo5(x: Int): Int {
|
||||
var p: Int = 1
|
||||
if (x > 0) {
|
||||
p++
|
||||
val t = p + x
|
||||
}
|
||||
else {
|
||||
p--
|
||||
val u = p - x
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in test
|
||||
// PARAM_DESCRIPTOR: var b: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(a: Int): Int {
|
||||
var b: Int = 1
|
||||
val t = i(a, b)
|
||||
return t
|
||||
}
|
||||
|
||||
private fun i(a: Int, b: Int): Int {
|
||||
var b1 = b
|
||||
return if (a > 0) {
|
||||
b1++
|
||||
b1 + a
|
||||
} else {
|
||||
b1--
|
||||
b1 - a
|
||||
}
|
||||
}
|
||||
|
||||
fun foo1() {
|
||||
val x = 1
|
||||
var y: Int = x
|
||||
println(
|
||||
i(x, y)
|
||||
)
|
||||
}
|
||||
|
||||
fun foo2(x: Int) {
|
||||
var p: Int = 1
|
||||
var q: Int
|
||||
if (x > 0) {
|
||||
p++
|
||||
q = p + x
|
||||
}
|
||||
else {
|
||||
p--
|
||||
q = p - x
|
||||
}
|
||||
println(q)
|
||||
}
|
||||
|
||||
fun foo3(x: Int): Int {
|
||||
var p: Int = 1
|
||||
if (x > 0) {
|
||||
p++
|
||||
return p + x
|
||||
}
|
||||
else {
|
||||
p--
|
||||
return p - x
|
||||
}
|
||||
}
|
||||
|
||||
fun foo4() {
|
||||
val t: (Int) -> (Int) = {
|
||||
var n = it
|
||||
i(it, n)
|
||||
}
|
||||
println(t(1))
|
||||
}
|
||||
|
||||
fun foo5(x: Int): Int {
|
||||
var p: Int = 1
|
||||
i(x, p)
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in test
|
||||
// PARAM_DESCRIPTOR: var b: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(a: Int): Int {
|
||||
var b: Int = 1
|
||||
<selection>if (a > 0) {
|
||||
b = b + a
|
||||
}
|
||||
else {
|
||||
b = b - a
|
||||
}</selection>
|
||||
return b
|
||||
}
|
||||
|
||||
fun foo1() {
|
||||
val x = 1
|
||||
var y: Int = x
|
||||
println(
|
||||
if (x > 0) {
|
||||
y + x
|
||||
}
|
||||
else {
|
||||
y - x
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun foo2(x: Int) {
|
||||
var p: Int = 1
|
||||
if (x > 0) {
|
||||
p = p + x
|
||||
}
|
||||
else {
|
||||
p = p - x
|
||||
}
|
||||
println(p)
|
||||
}
|
||||
|
||||
fun foo3(x: Int): Int {
|
||||
var p: Int = 1
|
||||
if (x > 0) {
|
||||
return p + x
|
||||
}
|
||||
else {
|
||||
return p - x
|
||||
}
|
||||
}
|
||||
|
||||
fun foo4() {
|
||||
val t: (Int) -> (Int) = {
|
||||
var n = it
|
||||
if (it > 0) {
|
||||
n + it
|
||||
}
|
||||
else {
|
||||
n - it
|
||||
}
|
||||
}
|
||||
println(t(1))
|
||||
}
|
||||
|
||||
fun foo5(x: Int): Int {
|
||||
var p: Int = 1
|
||||
if (x > 0) {
|
||||
val t = p + x
|
||||
}
|
||||
else {
|
||||
val u = p - x
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in test
|
||||
// PARAM_DESCRIPTOR: var b: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(a: Int): Int {
|
||||
var b: Int = 1
|
||||
b = i(a, b)
|
||||
return b
|
||||
}
|
||||
|
||||
private fun i(a: Int, b: Int): Int {
|
||||
var b1 = b
|
||||
if (a > 0) {
|
||||
b1 = b1 + a
|
||||
} else {
|
||||
b1 = b1 - a
|
||||
}
|
||||
return b1
|
||||
}
|
||||
|
||||
fun foo1() {
|
||||
val x = 1
|
||||
var y: Int = x
|
||||
println(
|
||||
if (x > 0) {
|
||||
y + x
|
||||
}
|
||||
else {
|
||||
y - x
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun foo2(x: Int) {
|
||||
var p: Int = 1
|
||||
p = i(x, p)
|
||||
println(p)
|
||||
}
|
||||
|
||||
fun foo3(x: Int): Int {
|
||||
var p: Int = 1
|
||||
return i(x, p)
|
||||
}
|
||||
|
||||
fun foo4() {
|
||||
val t: (Int) -> (Int) = {
|
||||
var n = it
|
||||
if (it > 0) {
|
||||
n + it
|
||||
}
|
||||
else {
|
||||
n - it
|
||||
}
|
||||
}
|
||||
println(t(1))
|
||||
}
|
||||
|
||||
fun foo5(x: Int): Int {
|
||||
var p: Int = 1
|
||||
i(x, p)
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter val b: kotlin.Int defined in foo
|
||||
|
||||
// SIBLING:
|
||||
fun foo(a: Int, b: Int) {
|
||||
<selection>println("a = $a")
|
||||
println("b = $b")
|
||||
println(a + b*a)</selection>
|
||||
}
|
||||
|
||||
fun bar() {
|
||||
val x = 1
|
||||
val y = 2
|
||||
|
||||
println("a = $x")
|
||||
println("b = $y")
|
||||
println(x + y*x)
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter val b: kotlin.Int defined in foo
|
||||
|
||||
// SIBLING:
|
||||
fun foo(a: Int, b: Int) {
|
||||
unit(a, b)
|
||||
}
|
||||
|
||||
private fun unit(a: Int, b: Int) {
|
||||
println("a = $a")
|
||||
println("b = $b")
|
||||
println(a + b * a)
|
||||
}
|
||||
|
||||
fun bar() {
|
||||
val x = 1
|
||||
val y = 2
|
||||
|
||||
unit(x, y)
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(a: Int): Int {
|
||||
<selection>val b = a + 1
|
||||
val c = a - 1</selection>
|
||||
return b*c
|
||||
}
|
||||
|
||||
fun foo1(a: Int) {
|
||||
var x = a + 1
|
||||
var y = a - 1
|
||||
println(x + y)
|
||||
}
|
||||
|
||||
fun foo2(): Int {
|
||||
var p: Int = 1
|
||||
var q: Int
|
||||
p = p + 1
|
||||
q = p - 1
|
||||
return p + q
|
||||
}
|
||||
|
||||
fun foo4(a: Int) {
|
||||
var b = a
|
||||
b = b + 1
|
||||
return b - 1
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(a: Int): Int {
|
||||
val (b, c) = pair(a)
|
||||
return b*c
|
||||
}
|
||||
|
||||
private fun pair(a: Int): Pair<Int, Int> {
|
||||
val b = a + 1
|
||||
val c = a - 1
|
||||
return Pair(b, c)
|
||||
}
|
||||
|
||||
fun foo1(a: Int) {
|
||||
var (x, y) = pair(a)
|
||||
println(x + y)
|
||||
}
|
||||
|
||||
fun foo2(): Int {
|
||||
var p: Int = 1
|
||||
var q: Int
|
||||
val pair = pair(p)
|
||||
p = pair.first
|
||||
q = pair.second
|
||||
return p + q
|
||||
}
|
||||
|
||||
fun foo4(a: Int) {
|
||||
var b = a
|
||||
b = b + 1
|
||||
return b - 1
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: val z: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(): () -> Int {
|
||||
val z = 1
|
||||
return {
|
||||
<selection>println(z)
|
||||
z + 1</selection>
|
||||
}
|
||||
}
|
||||
|
||||
fun foo1(a: Int): Int {
|
||||
val t = println(a)
|
||||
return a + 1
|
||||
}
|
||||
|
||||
fun foo2(a: Int) {
|
||||
println(a)
|
||||
a + 1
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: val z: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(): () -> Int {
|
||||
val z = 1
|
||||
return {
|
||||
i(z)
|
||||
}
|
||||
}
|
||||
|
||||
private fun i(z: Int): Int {
|
||||
println(z)
|
||||
return z + 1
|
||||
}
|
||||
|
||||
fun foo1(a: Int): Int {
|
||||
val t = println(a)
|
||||
return a + 1
|
||||
}
|
||||
|
||||
fun foo2(a: Int) {
|
||||
i(a)
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(a: Int): Int {
|
||||
<selection>println(a)
|
||||
return a + 1</selection>
|
||||
}
|
||||
|
||||
fun foo1(): Int {
|
||||
val x = 1
|
||||
println(x)
|
||||
val y = x + 1
|
||||
return y
|
||||
}
|
||||
|
||||
fun foo2(): () -> Int {
|
||||
val z = 1
|
||||
return {
|
||||
println(z)
|
||||
z + 1
|
||||
}
|
||||
}
|
||||
|
||||
fun foo3() {
|
||||
var t = 1
|
||||
println(t)
|
||||
t = t + 1
|
||||
println(t)
|
||||
}
|
||||
|
||||
fun foo4(a: Int): Int {
|
||||
val t = println(a)
|
||||
return a + 1
|
||||
}
|
||||
|
||||
fun foo5(a: Int) {
|
||||
println(a)
|
||||
a + 1
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// WITH_RUNTIME
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in test
|
||||
|
||||
// SIBLING:
|
||||
fun test(a: Int): Int {
|
||||
return i(a)
|
||||
}
|
||||
|
||||
private fun i(a: Int): Int {
|
||||
println(a)
|
||||
return a + 1
|
||||
}
|
||||
|
||||
fun foo1(): Int {
|
||||
val x = 1
|
||||
val y = i(x)
|
||||
return y
|
||||
}
|
||||
|
||||
fun foo2(): () -> Int {
|
||||
val z = 1
|
||||
return {
|
||||
i(z)
|
||||
}
|
||||
}
|
||||
|
||||
fun foo3() {
|
||||
var t = 1
|
||||
t = i(t)
|
||||
println(t)
|
||||
}
|
||||
|
||||
fun foo4(a: Int): Int {
|
||||
val t = println(a)
|
||||
return a + 1
|
||||
}
|
||||
|
||||
fun foo5(a: Int) {
|
||||
i(a)
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter val b: kotlin.Int defined in foo
|
||||
|
||||
// SIBLING:
|
||||
fun foo(a: Int, b: Int): Int {
|
||||
return <selection>a + b*a</selection> + 1
|
||||
}
|
||||
|
||||
fun bar() {
|
||||
fun f() = 1
|
||||
|
||||
val a = 1
|
||||
val b = 2
|
||||
val c = 3
|
||||
|
||||
c + b*c
|
||||
b + a*b
|
||||
a plus a*a
|
||||
a + a*b
|
||||
a + c
|
||||
f() + a*f()
|
||||
f() + f().times(f())
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_DESCRIPTOR: value-parameter val a: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter val b: kotlin.Int defined in foo
|
||||
|
||||
// SIBLING:
|
||||
fun foo(a: Int, b: Int): Int {
|
||||
return i(a, b) + 1
|
||||
}
|
||||
|
||||
private fun i(a: Int, b: Int): Int {
|
||||
return a + b * a
|
||||
}
|
||||
|
||||
fun bar() {
|
||||
fun f() = 1
|
||||
|
||||
val a = 1
|
||||
val b = 2
|
||||
val c = 3
|
||||
|
||||
i(c, b)
|
||||
i(b, a)
|
||||
i(a, a)
|
||||
a + a*b
|
||||
a + c
|
||||
i(f(), a)
|
||||
i(f(), f())
|
||||
}
|
||||
Reference in New Issue
Block a user