From 58cf1d47be67f6a5c53be838ae2941ce132940c7 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 1 Jun 2012 18:41:01 +0200 Subject: [PATCH] bangbang in assignment if needed --- src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt | 2 +- .../ast/assignmentExpression/file/nullability.jav | 9 +++++++++ .../ast/assignmentExpression/file/nullability.kt | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/testData/ast/assignmentExpression/file/nullability.jav create mode 100644 tests/testData/ast/assignmentExpression/file/nullability.kt diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt index ea7356eeeb4..960d3bb1dee 100644 --- a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt +++ b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt @@ -46,7 +46,7 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv } val lhs = getConverter().expressionToExpression(expression?.getLExpression()!!) - val rhs = getConverter().expressionToExpression(expression?.getRExpression()!!) + val rhs = getConverter().expressionToExpression(expression?.getRExpression()!!, expression?.getRExpression()?.getType()) if (!secondOp.isEmpty()) { myResult = AssignmentExpression(lhs, BinaryExpression(lhs, rhs, secondOp), "=") } diff --git a/tests/testData/ast/assignmentExpression/file/nullability.jav b/tests/testData/ast/assignmentExpression/file/nullability.jav new file mode 100644 index 00000000000..717edaf0d51 --- /dev/null +++ b/tests/testData/ast/assignmentExpression/file/nullability.jav @@ -0,0 +1,9 @@ +import java.util.BitSet; + +class Foo { + void foo(BitSet o) { + BitSet o2 = o; + int foo = 0; + foo = o2.size(); + } +} diff --git a/tests/testData/ast/assignmentExpression/file/nullability.kt b/tests/testData/ast/assignmentExpression/file/nullability.kt new file mode 100644 index 00000000000..fe43fd11797 --- /dev/null +++ b/tests/testData/ast/assignmentExpression/file/nullability.kt @@ -0,0 +1,8 @@ +import java.util.BitSet +open class Foo() { +open fun foo(o : BitSet?) : Unit { +var o2 : BitSet? = o +var foo : Int = 0 +foo = o2?.size()!! +} +} \ No newline at end of file