refactor ConvertFunctionToPropertyIntention and fix 'Convert function to property shouldn't insert explicit type if it was inferred previously' (#1011)
Fixes #KT-14820
This commit is contained in:
committed by
Dmitry Jemerov
parent
927cd04405
commit
4cbdbaa057
@@ -612,7 +612,7 @@ class KtPsiFactory @JvmOverloads constructor(private val project: Project, val m
|
||||
private fun placeKeyword() {
|
||||
assert(state == State.MODIFIERS)
|
||||
|
||||
if (sb.isNotEmpty()) {
|
||||
if (!sb.endsWith(" ")) {
|
||||
sb.append(" ")
|
||||
}
|
||||
val keyword = when (target) {
|
||||
@@ -625,9 +625,9 @@ class KtPsiFactory @JvmOverloads constructor(private val project: Project, val m
|
||||
state = State.RECEIVER
|
||||
}
|
||||
|
||||
private fun bodyPrefix() = when (target) {
|
||||
private fun bodyPrefix(breakLine: Boolean = true) = when (target) {
|
||||
Target.FUNCTION, Target.CONSTRUCTOR -> ""
|
||||
Target.READ_ONLY_PROPERTY -> "\nget()"
|
||||
Target.READ_ONLY_PROPERTY -> (if (breakLine) "\n" else " ") + "get()"
|
||||
}
|
||||
|
||||
fun modifier(modifier: String): CallableBuilder {
|
||||
@@ -733,6 +733,16 @@ class KtPsiFactory @JvmOverloads constructor(private val project: Project, val m
|
||||
return this
|
||||
}
|
||||
|
||||
fun getterExpression(expression: String, breakLine: Boolean = true): CallableBuilder {
|
||||
assert(target == Target.READ_ONLY_PROPERTY)
|
||||
assert(state == State.BODY || state == State.TYPE_CONSTRAINTS)
|
||||
|
||||
sb.append(bodyPrefix(breakLine)).append(" = ").append(expression)
|
||||
state = State.DONE
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
fun initializer(body: String): CallableBuilder {
|
||||
assert(target == Target.READ_ONLY_PROPERTY && (state == State.BODY || state == State.TYPE_CONSTRAINTS))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user