diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt index 1c69ae4dbb8..087a182ac84 100644 --- a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt +++ b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt @@ -12,6 +12,7 @@ import java.util.ArrayList import java.util.Collections import com.intellij.psi.CommonClassNames.* import com.intellij.psi.util.PsiTreeUtil +import org.jetbrains.jet.lang.types.lang.PrimitiveType public open class ExpressionVisitor(converter: Converter): StatementVisitor(converter) { { @@ -235,6 +236,14 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv } else if (qualifier == null) { val resolved = expression.getReference()?.resolve() + if (resolved is PsiClass) { + val clazz = resolved as PsiClass + + if (PrimitiveType.values() any { it.getTypeName().getName() == clazz.getName() }) { + myResult = Identifier(clazz.getQualifiedName()!!, false) + return + } + } if (resolved is PsiMember && resolved.hasModifierProperty(PsiModifier.STATIC) && resolved.getContainingClass() != null && PsiTreeUtil.getParentOfType(expression, javaClass()) != resolved.getContainingClass() && diff --git a/tests/testData/ast/boxedType/file/kt-671.jav b/tests/testData/ast/boxedType/file/kt-671.jav index 520765b7b08..c0ba6a8bc30 100644 --- a/tests/testData/ast/boxedType/file/kt-671.jav +++ b/tests/testData/ast/boxedType/file/kt-671.jav @@ -3,6 +3,7 @@ package demo; class Test { void test() { Integer i = Integer.valueOf(100); - Short s = Short.valueOf(100); + short s = 3; + Short ss = Short.valueOf(s); } } \ No newline at end of file diff --git a/tests/testData/ast/boxedType/file/kt-671.kt b/tests/testData/ast/boxedType/file/kt-671.kt index 11419363e4b..bb5c163ee24 100644 --- a/tests/testData/ast/boxedType/file/kt-671.kt +++ b/tests/testData/ast/boxedType/file/kt-671.kt @@ -2,6 +2,7 @@ package demo open class Test() { open fun test() : Unit { var i : Int? = Integer.valueOf(100) -var s : Short? = Short.valueOf(100) +var s : Short = 3 +var ss : Short? = java.lang.Short.valueOf(s) } } \ No newline at end of file