From 4dd880f99c32ac88b5fb83c1a4c1c3b4e429da22 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Wed, 18 Sep 2013 16:15:09 +0400 Subject: [PATCH] J2K: improved asserts. (Additionally it needs for investigate EA-37704) --- .../jet/j2k/visitors/ExpressionVisitor.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java b/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java index ed4d107b497..633d1ca8ef5 100644 --- a/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java +++ b/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java @@ -23,6 +23,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.j2k.Converter; import org.jetbrains.jet.j2k.ConverterUtil; import org.jetbrains.jet.j2k.ast.*; +import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils; import org.jetbrains.jet.lang.types.expressions.OperatorConventions; import java.util.Collections; @@ -130,7 +131,7 @@ public class ExpressionVisitor extends StatementVisitor { if (tokenType == JavaTokenType.MINUSMINUS) return "--"; if (tokenType == JavaTokenType.EXCL) return "!"; - System.out.println("UNSUPPORTED TOKEN TYPE: " + tokenType.toString()); + assert false : "UNSUPPORTED TOKEN TYPE: " + tokenType.toString(); return ""; } @@ -138,20 +139,20 @@ public class ExpressionVisitor extends StatementVisitor { public void visitBinaryExpression(@NotNull PsiBinaryExpression expression) { super.visitBinaryExpression(expression); + Expression left = getConverter().expressionToExpression(expression.getLOperand()); + Expression right = getConverter().expressionToExpression(expression.getROperand()); + if (expression.getOperationSign().getTokenType() == JavaTokenType.GTGTGT) { - myResult = new DummyMethodCallExpression( - getConverter().expressionToExpression(expression.getLOperand()), - "ushr", - getConverter().expressionToExpression(expression.getROperand())); + myResult = new DummyMethodCallExpression(left, "ushr", right); } else { - myResult = - new BinaryExpression( - getConverter().expressionToExpression(expression.getLOperand()), - getConverter().expressionToExpression(expression.getROperand()), - getOperatorString(expression.getOperationSign().getTokenType()), - getConverter().createConversions(expression, PsiType.BOOLEAN) - ); + List conversions = getConverter().createConversions(expression, PsiType.BOOLEAN); + assert conversions.size() == 2 : + "conversions.size for BinaryExpression should be 2 but equals " + conversions.size() + + " for expression: \"" + expression.getText() + "\" at " + DiagnosticUtils.atLocation(expression); + + String operator = getOperatorString(expression.getOperationSign().getTokenType()); + myResult = new BinaryExpression(left, right, operator, conversions); } }