diff --git a/src/org/jetbrains/jet/j2k/ast/IsOperator.java b/src/org/jetbrains/jet/j2k/ast/IsOperator.java deleted file mode 100644 index 79262f14871..00000000000 --- a/src/org/jetbrains/jet/j2k/ast/IsOperator.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2010-2012 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.j2k.ast; - -import org.jetbrains.annotations.NotNull; - -/** - * @author ignatov - */ -public class IsOperator extends Expression { - private final Expression myExpression; - private final Element myTypeElement; - - public IsOperator(Expression expression, Element typeElement) { - myExpression = expression; - myTypeElement = typeElement; - } - - @NotNull - @Override - public String toKotlin() { - return "(" + myExpression.toKotlin() + SPACE + "is" + SPACE + myTypeElement.toKotlin() + ")"; - } -} diff --git a/src/org/jetbrains/jet/j2k/ast/IsOperator.kt b/src/org/jetbrains/jet/j2k/ast/IsOperator.kt new file mode 100644 index 00000000000..cb853651339 --- /dev/null +++ b/src/org/jetbrains/jet/j2k/ast/IsOperator.kt @@ -0,0 +1,8 @@ +package org.jetbrains.jet.j2k.ast + + +public open class IsOperator(val expression: Expression, val typeElement: TypeElement): Expression() { + public override fun toKotlin(): String { + return expression.toKotlin() + " is " + typeElement.`type`.convertedToNotNull().toKotlin() + } +} diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java index 2494e56d499..64262828ec8 100644 --- a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java +++ b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java @@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.j2k.Converter; import org.jetbrains.jet.j2k.ast.*; +import org.jetbrains.jet.j2k.ast.types.EmptyType; import org.jetbrains.jet.j2k.ast.types.Type; import org.jetbrains.jet.lang.types.expressions.OperatorConventions; @@ -189,9 +190,10 @@ public class ExpressionVisitor extends StatementVisitor { @Override public void visitInstanceOfExpression(@NotNull PsiInstanceOfExpression expression) { super.visitInstanceOfExpression(expression); + PsiTypeElement checkType = expression.getCheckType(); myResult = new IsOperator( getConverter().expressionToExpression(expression.getOperand()), - getConverter().elementToElement(expression.getCheckType())); + new TypeElement(checkType == null ? new EmptyType() : myConverter.typeToType(checkType.getType()))); } @Override diff --git a/tests/testData/ast/isOperator/expression/complicatedExpression.kt b/tests/testData/ast/isOperator/expression/complicatedExpression.kt index 3105c369fbe..1cf2e9ebc79 100644 --- a/tests/testData/ast/isOperator/expression/complicatedExpression.kt +++ b/tests/testData/ast/isOperator/expression/complicatedExpression.kt @@ -1 +1 @@ -(c.getType().getName() is String?) \ No newline at end of file +c.getType().getName() is String \ No newline at end of file diff --git a/tests/testData/ast/isOperator/expression/simpleReference.kt b/tests/testData/ast/isOperator/expression/simpleReference.kt index 544cd7f6728..7ccaa0c9744 100644 --- a/tests/testData/ast/isOperator/expression/simpleReference.kt +++ b/tests/testData/ast/isOperator/expression/simpleReference.kt @@ -1 +1 @@ -(a is String?) \ No newline at end of file +a is String \ No newline at end of file