From 69cad97689c8f16db1cc84d9d2e2e75269d3f511 Mon Sep 17 00:00:00 2001 From: Sergey Ignatov Date: Tue, 29 Nov 2011 16:10:03 +0400 Subject: [PATCH] KT-667 UNSUPPORTED TOKEN TYPE: TILDE --- .../jet/j2k/visitors/ExpressionVisitor.java | 13 +++++++++---- testData/ast/prefixOperator/statement/kt-667.jav | 2 ++ testData/ast/prefixOperator/statement/kt-667.kt | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 testData/ast/prefixOperator/statement/kt-667.jav create mode 100644 testData/ast/prefixOperator/statement/kt-667.kt diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java index ab9df6b8beb..5e0fc77987b 100644 --- a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java +++ b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java @@ -274,10 +274,15 @@ public class ExpressionVisitor extends StatementVisitor { @Override public void visitPrefixExpression(PsiPrefixExpression expression) { super.visitPrefixExpression(expression); - myResult = new PrefixOperator( - getOperatorString(expression.getOperationSign().getTokenType()), - expressionToExpression(expression.getOperand()) - ); + if (expression.getOperationTokenType() == JavaTokenType.TILDE) + myResult = new DummyMethodCallExpression( + new ParenthesizedExpression(expressionToExpression(expression.getOperand())), "inv", Expression.EMPTY_EXPRESSION + ); + else + myResult = new PrefixOperator( + getOperatorString(expression.getOperationSign().getTokenType()), + expressionToExpression(expression.getOperand()) + ); } @Override diff --git a/testData/ast/prefixOperator/statement/kt-667.jav b/testData/ast/prefixOperator/statement/kt-667.jav new file mode 100644 index 00000000000..eb1dc5658a7 --- /dev/null +++ b/testData/ast/prefixOperator/statement/kt-667.jav @@ -0,0 +1,2 @@ +int i = ~10; +int j = ~(i * 100); \ No newline at end of file diff --git a/testData/ast/prefixOperator/statement/kt-667.kt b/testData/ast/prefixOperator/statement/kt-667.kt new file mode 100644 index 00000000000..80f8ac234ee --- /dev/null +++ b/testData/ast/prefixOperator/statement/kt-667.kt @@ -0,0 +1,2 @@ +var i : Int = (10).inv() +var j : Int = (((i * 100))).inv() \ No newline at end of file