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