Extract 'assertNotNull' method
This commit is contained in:
+43
-26
@@ -158,12 +158,16 @@ public class BranchedFoldingUtils {
|
|||||||
|
|
||||||
public static final String FOLD_WITHOUT_CHECK = "Expression must be checked before folding";
|
public static final String FOLD_WITHOUT_CHECK = "Expression must be checked before folding";
|
||||||
|
|
||||||
|
private static void assertNotNull(JetExpression expression) {
|
||||||
|
assert expression != null : FOLD_WITHOUT_CHECK;
|
||||||
|
}
|
||||||
|
|
||||||
public static void foldIfExpressionWithAssignments(JetIfExpression ifExpression) {
|
public static void foldIfExpressionWithAssignments(JetIfExpression ifExpression) {
|
||||||
Project project = ifExpression.getProject();
|
Project project = ifExpression.getProject();
|
||||||
|
|
||||||
JetBinaryExpression thenAssignment = getFoldableBranchedAssignment(ifExpression.getThen());
|
JetBinaryExpression thenAssignment = getFoldableBranchedAssignment(ifExpression.getThen());
|
||||||
|
|
||||||
assert thenAssignment != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(thenAssignment);
|
||||||
|
|
||||||
String op = thenAssignment.getOperationReference().getText();
|
String op = thenAssignment.getOperationReference().getText();
|
||||||
JetSimpleNameExpression lhs = (JetSimpleNameExpression) thenAssignment.getLeft();
|
JetSimpleNameExpression lhs = (JetSimpleNameExpression) thenAssignment.getLeft();
|
||||||
@@ -171,21 +175,24 @@ public class BranchedFoldingUtils {
|
|||||||
JetBinaryExpression assignment = JetPsiFactory.createBinaryExpression(project, lhs, op, ifExpression);
|
JetBinaryExpression assignment = JetPsiFactory.createBinaryExpression(project, lhs, op, ifExpression);
|
||||||
JetIfExpression newIfExpression = (JetIfExpression)assignment.getRight();
|
JetIfExpression newIfExpression = (JetIfExpression)assignment.getRight();
|
||||||
|
|
||||||
assert newIfExpression != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(newIfExpression);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
thenAssignment = getFoldableBranchedAssignment(newIfExpression.getThen());
|
thenAssignment = getFoldableBranchedAssignment(newIfExpression.getThen());
|
||||||
JetBinaryExpression elseAssignment = getFoldableBranchedAssignment(newIfExpression.getElse());
|
JetBinaryExpression elseAssignment = getFoldableBranchedAssignment(newIfExpression.getElse());
|
||||||
|
|
||||||
assert thenAssignment != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(thenAssignment);
|
||||||
assert elseAssignment != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(elseAssignment);
|
||||||
|
|
||||||
JetExpression thenRhs = thenAssignment.getRight();
|
JetExpression thenRhs = thenAssignment.getRight();
|
||||||
JetExpression elseRhs = elseAssignment.getRight();
|
JetExpression elseRhs = elseAssignment.getRight();
|
||||||
|
|
||||||
assert thenRhs != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(thenRhs);
|
||||||
assert elseRhs != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(elseRhs);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
thenAssignment.replace(thenRhs);
|
thenAssignment.replace(thenRhs);
|
||||||
|
//noinspection ConstantConditions
|
||||||
elseAssignment.replace(elseRhs);
|
elseAssignment.replace(elseRhs);
|
||||||
|
|
||||||
ifExpression.replace(assignment);
|
ifExpression.replace(assignment);
|
||||||
@@ -197,21 +204,24 @@ public class BranchedFoldingUtils {
|
|||||||
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, ifExpression);
|
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, ifExpression);
|
||||||
JetIfExpression newIfExpression = (JetIfExpression)newReturnExpression.getReturnedExpression();
|
JetIfExpression newIfExpression = (JetIfExpression)newReturnExpression.getReturnedExpression();
|
||||||
|
|
||||||
assert newIfExpression != null;
|
assertNotNull(newIfExpression);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
JetReturnExpression thenReturn = getFoldableBranchedReturn(newIfExpression.getThen());
|
JetReturnExpression thenReturn = getFoldableBranchedReturn(newIfExpression.getThen());
|
||||||
JetReturnExpression elseReturn = getFoldableBranchedReturn(newIfExpression.getElse());
|
JetReturnExpression elseReturn = getFoldableBranchedReturn(newIfExpression.getElse());
|
||||||
|
|
||||||
assert thenReturn != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(thenReturn);
|
||||||
assert elseReturn != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(elseReturn);
|
||||||
|
|
||||||
JetExpression thenExpr = thenReturn.getReturnedExpression();
|
JetExpression thenExpr = thenReturn.getReturnedExpression();
|
||||||
JetExpression elseExpr = elseReturn.getReturnedExpression();
|
JetExpression elseExpr = elseReturn.getReturnedExpression();
|
||||||
|
|
||||||
assert thenExpr != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(thenExpr);
|
||||||
assert elseExpr != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(elseExpr);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
thenReturn.replace(thenExpr);
|
thenReturn.replace(thenExpr);
|
||||||
|
//noinspection ConstantConditions
|
||||||
elseReturn.replace(elseExpr);
|
elseReturn.replace(elseExpr);
|
||||||
|
|
||||||
ifExpression.replace(newReturnExpression);
|
ifExpression.replace(newReturnExpression);
|
||||||
@@ -224,36 +234,41 @@ public class BranchedFoldingUtils {
|
|||||||
JetExpression thenRoot = ifExpression.getThen();
|
JetExpression thenRoot = ifExpression.getThen();
|
||||||
JetExpression elseRoot = (JetExpression)JetPsiUtil.skipTrailingWhitespacesAndComments(ifExpression);
|
JetExpression elseRoot = (JetExpression)JetPsiUtil.skipTrailingWhitespacesAndComments(ifExpression);
|
||||||
|
|
||||||
assert condition != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(condition);
|
||||||
assert thenRoot != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(thenRoot);
|
||||||
assert elseRoot != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(elseRoot);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
JetIfExpression newIfExpression = JetPsiFactory.createIf(project, condition, thenRoot, elseRoot);
|
JetIfExpression newIfExpression = JetPsiFactory.createIf(project, condition, thenRoot, elseRoot);
|
||||||
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, newIfExpression);
|
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, newIfExpression);
|
||||||
|
|
||||||
newIfExpression = (JetIfExpression)newReturnExpression.getReturnedExpression();
|
newIfExpression = (JetIfExpression)newReturnExpression.getReturnedExpression();
|
||||||
|
|
||||||
assert newIfExpression != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(newIfExpression);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
JetReturnExpression thenReturn = getFoldableBranchedReturn(newIfExpression.getThen());
|
JetReturnExpression thenReturn = getFoldableBranchedReturn(newIfExpression.getThen());
|
||||||
JetReturnExpression elseReturn = getFoldableBranchedReturn(newIfExpression.getElse());
|
JetReturnExpression elseReturn = getFoldableBranchedReturn(newIfExpression.getElse());
|
||||||
|
|
||||||
assert thenReturn != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(thenReturn);
|
||||||
assert elseReturn != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(elseReturn);
|
||||||
|
|
||||||
JetExpression thenExpr = thenReturn.getReturnedExpression();
|
JetExpression thenExpr = thenReturn.getReturnedExpression();
|
||||||
JetExpression elseExpr = elseReturn.getReturnedExpression();
|
JetExpression elseExpr = elseReturn.getReturnedExpression();
|
||||||
|
|
||||||
assert thenExpr != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(thenExpr);
|
||||||
assert elseExpr != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(elseExpr);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
thenReturn.replace(thenExpr);
|
thenReturn.replace(thenExpr);
|
||||||
|
//noinspection ConstantConditions
|
||||||
elseReturn.replace(elseExpr);
|
elseReturn.replace(elseExpr);
|
||||||
|
|
||||||
elseRoot.delete();
|
elseRoot.delete();
|
||||||
ifExpression.replace(newReturnExpression);
|
ifExpression.replace(newReturnExpression);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("ConstantConditions")
|
||||||
public static void foldWhenExpressionWithAssignments(JetWhenExpression whenExpression) {
|
public static void foldWhenExpressionWithAssignments(JetWhenExpression whenExpression) {
|
||||||
Project project = whenExpression.getProject();
|
Project project = whenExpression.getProject();
|
||||||
|
|
||||||
@@ -261,7 +276,7 @@ public class BranchedFoldingUtils {
|
|||||||
|
|
||||||
JetBinaryExpression firstAssignment = getFoldableBranchedAssignment(whenExpression.getEntries().get(0).getExpression());
|
JetBinaryExpression firstAssignment = getFoldableBranchedAssignment(whenExpression.getEntries().get(0).getExpression());
|
||||||
|
|
||||||
assert firstAssignment != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(firstAssignment);
|
||||||
|
|
||||||
String op = firstAssignment.getOperationReference().getText();
|
String op = firstAssignment.getOperationReference().getText();
|
||||||
JetSimpleNameExpression lhs = (JetSimpleNameExpression) firstAssignment.getLeft();
|
JetSimpleNameExpression lhs = (JetSimpleNameExpression) firstAssignment.getLeft();
|
||||||
@@ -269,16 +284,16 @@ public class BranchedFoldingUtils {
|
|||||||
JetBinaryExpression assignment = JetPsiFactory.createBinaryExpression(project, lhs, op, whenExpression);
|
JetBinaryExpression assignment = JetPsiFactory.createBinaryExpression(project, lhs, op, whenExpression);
|
||||||
JetWhenExpression newWhenExpression = (JetWhenExpression)assignment.getRight();
|
JetWhenExpression newWhenExpression = (JetWhenExpression)assignment.getRight();
|
||||||
|
|
||||||
assert newWhenExpression != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(newWhenExpression);
|
||||||
|
|
||||||
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
|
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
|
||||||
JetBinaryExpression currAssignment = getFoldableBranchedAssignment(entry.getExpression());
|
JetBinaryExpression currAssignment = getFoldableBranchedAssignment(entry.getExpression());
|
||||||
|
|
||||||
assert currAssignment != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(currAssignment);
|
||||||
|
|
||||||
JetExpression currRhs = currAssignment.getRight();
|
JetExpression currRhs = currAssignment.getRight();
|
||||||
|
|
||||||
assert currRhs != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(currRhs);
|
||||||
|
|
||||||
currAssignment.replace(currRhs);
|
currAssignment.replace(currRhs);
|
||||||
}
|
}
|
||||||
@@ -294,17 +309,19 @@ public class BranchedFoldingUtils {
|
|||||||
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, whenExpression);
|
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, whenExpression);
|
||||||
JetWhenExpression newWhenExpression = (JetWhenExpression)newReturnExpression.getReturnedExpression();
|
JetWhenExpression newWhenExpression = (JetWhenExpression)newReturnExpression.getReturnedExpression();
|
||||||
|
|
||||||
assert newWhenExpression != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(newWhenExpression);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
|
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
|
||||||
JetReturnExpression currReturn = getFoldableBranchedReturn(entry.getExpression());
|
JetReturnExpression currReturn = getFoldableBranchedReturn(entry.getExpression());
|
||||||
|
|
||||||
assert currReturn != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(currReturn);
|
||||||
|
|
||||||
JetExpression currExpr = currReturn.getReturnedExpression();
|
JetExpression currExpr = currReturn.getReturnedExpression();
|
||||||
|
|
||||||
assert currExpr != null : FOLD_WITHOUT_CHECK;
|
assertNotNull(currExpr);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
currReturn.replace(currExpr);
|
currReturn.replace(currExpr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+18
-10
@@ -54,21 +54,26 @@ public class BranchedUnfoldingUtils {
|
|||||||
|
|
||||||
public static final String UNFOLD_WITHOUT_CHECK = "Expression must be checked before unfolding";
|
public static final String UNFOLD_WITHOUT_CHECK = "Expression must be checked before unfolding";
|
||||||
|
|
||||||
|
private static void assertNotNull(JetExpression expression) {
|
||||||
|
assert expression != null : UNFOLD_WITHOUT_CHECK;
|
||||||
|
}
|
||||||
|
|
||||||
public static void unfoldAssignmentToIf(@NotNull JetBinaryExpression assignment) {
|
public static void unfoldAssignmentToIf(@NotNull JetBinaryExpression assignment) {
|
||||||
Project project = assignment.getProject();
|
Project project = assignment.getProject();
|
||||||
String op = assignment.getOperationReference().getText();
|
String op = assignment.getOperationReference().getText();
|
||||||
JetExpression lhs = assignment.getLeft();
|
JetExpression lhs = assignment.getLeft();
|
||||||
JetIfExpression ifExpression = (JetIfExpression)assignment.getRight();
|
JetIfExpression ifExpression = (JetIfExpression)assignment.getRight();
|
||||||
|
|
||||||
assert ifExpression != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(ifExpression);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
JetIfExpression newIfExpression = (JetIfExpression) ifExpression.copy();
|
JetIfExpression newIfExpression = (JetIfExpression) ifExpression.copy();
|
||||||
|
|
||||||
JetExpression thenExpr = getOutermostLastBlockElement(newIfExpression.getThen());
|
JetExpression thenExpr = getOutermostLastBlockElement(newIfExpression.getThen());
|
||||||
JetExpression elseExpr = getOutermostLastBlockElement(newIfExpression.getElse());
|
JetExpression elseExpr = getOutermostLastBlockElement(newIfExpression.getElse());
|
||||||
|
|
||||||
assert thenExpr != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(thenExpr);
|
||||||
assert elseExpr != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(elseExpr);
|
||||||
|
|
||||||
thenExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, thenExpr));
|
thenExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, thenExpr));
|
||||||
elseExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, elseExpr));
|
elseExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, elseExpr));
|
||||||
@@ -82,14 +87,15 @@ public class BranchedUnfoldingUtils {
|
|||||||
JetExpression lhs = assignment.getLeft();
|
JetExpression lhs = assignment.getLeft();
|
||||||
JetWhenExpression whenExpression = (JetWhenExpression)assignment.getRight();
|
JetWhenExpression whenExpression = (JetWhenExpression)assignment.getRight();
|
||||||
|
|
||||||
assert whenExpression != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(whenExpression);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
JetWhenExpression newWhenExpression = (JetWhenExpression) whenExpression.copy();
|
JetWhenExpression newWhenExpression = (JetWhenExpression) whenExpression.copy();
|
||||||
|
|
||||||
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
|
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
|
||||||
JetExpression currExpr = getOutermostLastBlockElement(entry.getExpression());
|
JetExpression currExpr = getOutermostLastBlockElement(entry.getExpression());
|
||||||
|
|
||||||
assert currExpr != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(currExpr);
|
||||||
|
|
||||||
currExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, currExpr));
|
currExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, currExpr));
|
||||||
}
|
}
|
||||||
@@ -101,15 +107,16 @@ public class BranchedUnfoldingUtils {
|
|||||||
Project project = returnExpression.getProject();
|
Project project = returnExpression.getProject();
|
||||||
JetIfExpression ifExpression = (JetIfExpression)returnExpression.getReturnedExpression();
|
JetIfExpression ifExpression = (JetIfExpression)returnExpression.getReturnedExpression();
|
||||||
|
|
||||||
assert ifExpression != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(ifExpression);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
JetIfExpression newIfExpression = (JetIfExpression) ifExpression.copy();
|
JetIfExpression newIfExpression = (JetIfExpression) ifExpression.copy();
|
||||||
|
|
||||||
JetExpression thenExpr = getOutermostLastBlockElement(newIfExpression.getThen());
|
JetExpression thenExpr = getOutermostLastBlockElement(newIfExpression.getThen());
|
||||||
JetExpression elseExpr = getOutermostLastBlockElement(newIfExpression.getElse());
|
JetExpression elseExpr = getOutermostLastBlockElement(newIfExpression.getElse());
|
||||||
|
|
||||||
assert thenExpr != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(thenExpr);
|
||||||
assert elseExpr != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(elseExpr);
|
||||||
|
|
||||||
thenExpr.replace(JetPsiFactory.createReturn(project, thenExpr));
|
thenExpr.replace(JetPsiFactory.createReturn(project, thenExpr));
|
||||||
elseExpr.replace(JetPsiFactory.createReturn(project, elseExpr));
|
elseExpr.replace(JetPsiFactory.createReturn(project, elseExpr));
|
||||||
@@ -121,14 +128,15 @@ public class BranchedUnfoldingUtils {
|
|||||||
Project project = returnExpression.getProject();
|
Project project = returnExpression.getProject();
|
||||||
JetWhenExpression whenExpression = (JetWhenExpression)returnExpression.getReturnedExpression();
|
JetWhenExpression whenExpression = (JetWhenExpression)returnExpression.getReturnedExpression();
|
||||||
|
|
||||||
assert whenExpression != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(whenExpression);
|
||||||
|
|
||||||
|
//noinspection ConstantConditions
|
||||||
JetWhenExpression newWhenExpression = (JetWhenExpression) whenExpression.copy();
|
JetWhenExpression newWhenExpression = (JetWhenExpression) whenExpression.copy();
|
||||||
|
|
||||||
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
|
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
|
||||||
JetExpression currExpr = getOutermostLastBlockElement(entry.getExpression());
|
JetExpression currExpr = getOutermostLastBlockElement(entry.getExpression());
|
||||||
|
|
||||||
assert currExpr != null : UNFOLD_WITHOUT_CHECK;
|
assertNotNull(currExpr);
|
||||||
|
|
||||||
currExpr.replace(JetPsiFactory.createReturn(project, currExpr));
|
currExpr.replace(JetPsiFactory.createReturn(project, currExpr));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user