Extract Function: Allow to choose between function and property extraction

This commit is contained in:
Alexey Sedunov
2014-08-11 12:45:52 +04:00
parent 87de6cff23
commit 96dae07276
19 changed files with 314 additions and 100 deletions
@@ -0,0 +1,10 @@
// EXTRACT_AS_PROPERTY
class A(val n: Int = 1) {
val m: Int = 2
// SIBLING:
fun foo(): Int {
return <selection>m + n + 1</selection>
}
}
@@ -0,0 +1,15 @@
// EXTRACT_AS_PROPERTY
class A(val n: Int = 1) {
val m: Int = 2
// SIBLING:
fun foo(): Int {
return i
}
private val i: Int
get() {
return m + n + 1
}
}
@@ -0,0 +1,8 @@
// EXTRACT_AS_PROPERTY
val n: Int = 1
// SIBLING:
fun foo(): Int {
return <selection>n + 1</selection>
}
@@ -0,0 +1,13 @@
// EXTRACT_AS_PROPERTY
val n: Int = 1
// SIBLING:
fun foo(): Int {
return i
}
private val i: Int
get() {
return n + 1
}
@@ -0,0 +1,6 @@
// EXTRACT_AS_PROPERTY
fun foo(n: Int): Int {
// SIBLING:
return {<selection>n + 1</selection>}()
}
@@ -0,0 +1 @@
Can't generate property: n + 1
@@ -0,0 +1,11 @@
// PARAM_TYPES: kotlin.Int
// PARAM_DESCRIPTOR: val m: kotlin.Int defined in foo
// EXTRACT_AS_PROPERTY
val n: Int = 1
// SIBLING:
fun foo(): Int {
val m = 1
return <selection>n + m + 1</selection>
}
@@ -0,0 +1 @@
Can't generate property: n + m + 1