Extract 'assertNotNull' method

This commit is contained in:
Alexey Sedunov
2013-04-18 16:10:41 +04:00
parent f4c220e735
commit f5b1706b30
2 changed files with 61 additions and 36 deletions
@@ -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);
} }
@@ -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));
} }