Move "else" extractor to JetWhenExpression

This commit is contained in:
Alexey Sedunov
2013-04-30 16:08:30 +04:00
parent d30e8d88fb
commit 4ee59e351b
3 changed files with 12 additions and 11 deletions
@@ -703,15 +703,6 @@ public class JetPsiUtil {
return (elseCount == 1); return (elseCount == 1);
} }
public static JetExpression getWhenElseBranch(@NotNull JetWhenExpression whenExpression) {
for (JetWhenEntry entry : whenExpression.getEntries()) {
if (entry.isElse()) {
return entry.getExpression();
}
}
return null;
}
public static PsiElement skipTrailingWhitespacesAndComments(PsiElement element) { public static PsiElement skipTrailingWhitespacesAndComments(PsiElement element) {
return PsiTreeUtil.skipSiblingsForward(element, PsiWhiteSpace.class, PsiComment.class); return PsiTreeUtil.skipSiblingsForward(element, PsiWhiteSpace.class, PsiComment.class);
} }
@@ -60,4 +60,14 @@ public class JetWhenExpression extends JetExpressionImpl {
ASTNode openBraceNode = getNode().findChildByType(JetTokens.RBRACE); ASTNode openBraceNode = getNode().findChildByType(JetTokens.RBRACE);
return openBraceNode != null ? openBraceNode.getPsi() : null; return openBraceNode != null ? openBraceNode.getPsi() : null;
} }
@Nullable
public JetExpression getElseExpression() {
for (JetWhenEntry entry : getEntries()) {
if (entry.isElse()) {
return entry.getExpression();
}
}
return null;
}
} }
@@ -69,7 +69,7 @@ public class WhenUtils {
if (!JetPsiUtil.checkWhenExpressionHasSingleElse(whenExpression)) return false; if (!JetPsiUtil.checkWhenExpressionHasSingleElse(whenExpression)) return false;
JetExpression elseBranch = JetPsiUtil.getWhenElseBranch(whenExpression); JetExpression elseBranch = whenExpression.getElseExpression();
if (!(elseBranch instanceof JetWhenExpression)) return false; if (!(elseBranch instanceof JetWhenExpression)) return false;
JetWhenExpression nestedWhenExpression = (JetWhenExpression) elseBranch; JetWhenExpression nestedWhenExpression = (JetWhenExpression) elseBranch;
@@ -89,7 +89,7 @@ public class WhenUtils {
public static void flattenWhen(@NotNull JetWhenExpression whenExpression) { public static void flattenWhen(@NotNull JetWhenExpression whenExpression) {
JetExpression subjectExpression = whenExpression.getSubjectExpression(); JetExpression subjectExpression = whenExpression.getSubjectExpression();
JetExpression elseBranch = JetPsiUtil.getWhenElseBranch(whenExpression); JetExpression elseBranch = whenExpression.getElseExpression();
assert elseBranch instanceof JetWhenExpression : TRANSFORM_WITHOUT_CHECK; assert elseBranch instanceof JetWhenExpression : TRANSFORM_WITHOUT_CHECK;
JetWhenExpression nestedWhenExpression = (JetWhenExpression) elseBranch; JetWhenExpression nestedWhenExpression = (JetWhenExpression) elseBranch;