Extract method refactoring should order parameters by first usage
Fixes #KT-16198
This commit is contained in:
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
||||
// OPTIONS: true, false, false, false, true, false
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter n: kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
fun foo(n: Int): Int {
|
||||
fun Int.bar(m: Int) = this * m * n
|
||||
|
||||
|
||||
Vendored
+4
-4
@@ -1,12 +1,12 @@
|
||||
// OPTIONS: true, false, false, false, true, false
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter n: kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
fun foo(n: Int): Int {
|
||||
fun Int.bar(m: Int) = this * m * n
|
||||
|
||||
return i(Int::bar, n)
|
||||
return i(n, Int::bar)
|
||||
}
|
||||
|
||||
private fun i(bar: Int.(m: Int) -> Int, n: Int) = n.bar(n + 1)
|
||||
private fun i(n: Int, bar: Int.(m: Int) -> Int) = n.bar(n + 1)
|
||||
+4
-3
@@ -1,10 +1,11 @@
|
||||
// OPTIONS: true, false, false, false, true, false
|
||||
// PARAM_DESCRIPTOR: value-parameter n: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar1(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar2(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter n: kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
|
||||
fun foo(n: Int): Int {
|
||||
fun Int.bar1(m: Int) = this + m + n
|
||||
fun Int.bar2(m: Int) = this * m * n
|
||||
|
||||
+6
-5
@@ -1,15 +1,16 @@
|
||||
// OPTIONS: true, false, false, false, true, false
|
||||
// PARAM_DESCRIPTOR: value-parameter n: kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar1(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar2(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter n: kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
|
||||
fun foo(n: Int): Int {
|
||||
fun Int.bar1(m: Int) = this + m + n
|
||||
fun Int.bar2(m: Int) = this * m * n
|
||||
|
||||
return i(Int::bar1, Int::bar2, n)
|
||||
return i(n, Int::bar1, Int::bar2)
|
||||
}
|
||||
|
||||
private fun i(bar1: Int.(m: Int) -> Int, bar2: Int.(m: Int) -> Int, n: Int) = n.bar1(n + 1).bar2(n + 2)
|
||||
private fun i(n: Int, bar1: Int.(m: Int) -> Int, bar2: Int.(m: Int) -> Int) = n.bar1(n + 1).bar2(n + 2)
|
||||
idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
||||
// OPTIONS: true, false, false, false, true, false
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter n: kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
fun foo(n: Int): Int {
|
||||
fun Int.bar(m: Int) = this * m * n
|
||||
|
||||
|
||||
+4
-4
@@ -1,12 +1,12 @@
|
||||
// OPTIONS: true, false, false, false, true, false
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_DESCRIPTOR: value-parameter n: kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
// PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): kotlin.Int defined in foo
|
||||
// PARAM_TYPES: kotlin.Int
|
||||
// PARAM_TYPES: kotlin.Int.(m: kotlin.Int) -> kotlin.Int
|
||||
fun foo(n: Int): Int {
|
||||
fun Int.bar(m: Int) = this * m * n
|
||||
|
||||
return i(Int::bar, n)
|
||||
return i(n, Int::bar)
|
||||
}
|
||||
|
||||
private fun i(bar: Int.(m: Int) -> Int, n: Int) = n bar (n + 1)
|
||||
private fun i(n: Int, bar: Int.(m: Int) -> Int) = n bar (n + 1)
|
||||
Reference in New Issue
Block a user