Inlined JetPsiFactory.createReturn

This commit is contained in:
Valentin Kipyatkov
2015-05-11 15:36:50 +03:00
parent ceb9b3d663
commit 224e73e4f0
6 changed files with 8 additions and 14 deletions
@@ -342,10 +342,6 @@ public class JetPsiFactory(private val project: Project) {
return JetBlockCodeFragment(project, "fragment.kt", text, null, context) return JetBlockCodeFragment(project, "fragment.kt", text, null, context)
} }
public fun createReturn(expression: JetExpression): JetReturnExpression {
return createExpressionByPattern("return $0", expression) as JetReturnExpression
}
public fun createIf(condition: JetExpression, thenExpr: JetExpression, elseExpr: JetExpression?): JetIfExpression { public fun createIf(condition: JetExpression, thenExpr: JetExpression, elseExpr: JetExpression?): JetIfExpression {
return (if (elseExpr != null) return (if (elseExpr != null)
createExpressionByPattern("if ($0) $1 else $2", condition, thenExpr, elseExpr) as JetIfExpression createExpressionByPattern("if ($0) $1 else $2", condition, thenExpr, elseExpr) as JetIfExpression
@@ -153,8 +153,8 @@ public class BranchedUnfoldingUtils {
assertNotNull(elseExpr); assertNotNull(elseExpr);
JetPsiFactory psiFactory = JetPsiFactory(returnExpression); JetPsiFactory psiFactory = JetPsiFactory(returnExpression);
thenExpr.replace(psiFactory.createReturn(thenExpr)); thenExpr.replace(createExpressionByPattern(psiFactory, "return $0", thenExpr));
elseExpr.replace(psiFactory.createReturn(elseExpr)); elseExpr.replace(createExpressionByPattern(psiFactory, "return $0", elseExpr));
returnExpression.replace(newIfExpression); returnExpression.replace(newIfExpression);
} }
@@ -172,7 +172,7 @@ public class BranchedUnfoldingUtils {
assertNotNull(currExpr); assertNotNull(currExpr);
currExpr.replace(JetPsiFactory(returnExpression).createReturn(currExpr)); currExpr.replace(createExpressionByPattern(JetPsiFactory(returnExpression), "return $0", currExpr));
} }
returnExpression.replace(newWhenExpression); returnExpression.replace(newWhenExpression);
@@ -45,7 +45,7 @@ public class FoldIfToReturnAsymmetricallyIntention : JetSelfTargetingOffsetIndep
thenReturn.replace(thenReturn.getReturnedExpression()!!) thenReturn.replace(thenReturn.getReturnedExpression()!!)
elseReturn.replace(elseReturn.getReturnedExpression()!!) elseReturn.replace(elseReturn.getReturnedExpression()!!)
element.replace(psiFactory.createReturn(newIfExpression)) element.replace(psiFactory.createExpressionByPattern("return $0", newIfExpression))
elseBranch.delete() elseBranch.delete()
} }
} }
@@ -36,6 +36,6 @@ public class FoldIfToReturnIntention : JetSelfTargetingOffsetIndependentIntentio
thenReturn.replace(thenReturn.getReturnedExpression()!!) thenReturn.replace(thenReturn.getReturnedExpression()!!)
elseReturn.replace(elseReturn.getReturnedExpression()!!) elseReturn.replace(elseReturn.getReturnedExpression()!!)
element.replace(JetPsiFactory(element).createReturn(element)) element.replace(JetPsiFactory(element).createExpressionByPattern("return $0", element))
} }
} }
@@ -19,9 +19,7 @@ package org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import org.jetbrains.kotlin.idea.intentions.JetSelfTargetingOffsetIndependentIntention import org.jetbrains.kotlin.idea.intentions.JetSelfTargetingOffsetIndependentIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.BranchedFoldingUtils import org.jetbrains.kotlin.idea.intentions.branchedTransformations.BranchedFoldingUtils
import org.jetbrains.kotlin.psi import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.JetPsiUtil
import org.jetbrains.kotlin.psi.JetWhenExpression
public class FoldWhenToReturnIntention : JetSelfTargetingOffsetIndependentIntention<JetWhenExpression>(javaClass(), "Replace 'when' expression with return") { public class FoldWhenToReturnIntention : JetSelfTargetingOffsetIndependentIntention<JetWhenExpression>(javaClass(), "Replace 'when' expression with return") {
override fun isApplicableTo(element: JetWhenExpression): Boolean { override fun isApplicableTo(element: JetWhenExpression): Boolean {
@@ -41,7 +39,7 @@ public class FoldWhenToReturnIntention : JetSelfTargetingOffsetIndependentIntent
override fun applyTo(element: JetWhenExpression, editor: Editor) { override fun applyTo(element: JetWhenExpression, editor: Editor) {
assert(!element.getEntries().isEmpty()) assert(!element.getEntries().isEmpty())
val newReturnExpression = psi.JetPsiFactory(element).createReturn(element) val newReturnExpression = JetPsiFactory(element).createExpressionByPattern("return $0", element) as JetReturnExpression
val newWhenExpression = newReturnExpression.getReturnedExpression() as JetWhenExpression val newWhenExpression = newReturnExpression.getReturnedExpression() as JetWhenExpression
for (entry in newWhenExpression.getEntries()) { for (entry in newWhenExpression.getEntries()) {
@@ -158,7 +158,7 @@ private class LambdaToFunctionExpression(
return return
} }
else { else {
replace(psiFactory.createReturn(this)) replace(psiFactory.createExpressionByPattern("return $0", this))
} }
} }