diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt index 04a9934fcda..a08265b9ebc 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 java.util.List import com.intellij.psi.CommonClassNames.* +import com.intellij.psi.util.PsiTreeUtil public open class ExpressionVisitor(converter: Converter): StatementVisitor(converter) { { @@ -232,6 +233,21 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv else if (qualifier != null && qualifier.getType() is PsiArrayType && referencedName == "length") { identifier = Identifier("size", isNullable) } + else if (qualifier == null) { + val resolved = expression?.getReference()?.resolve() + if (resolved is PsiMember && resolved.hasModifierProperty(PsiModifier.STATIC) && + resolved.getContainingClass() != null && + PsiTreeUtil.getParentOfType(expression, javaClass()) != resolved.getContainingClass()) { + var member = resolved as PsiMember + var result = Identifier(referencedName).toKotlin() + while(member.getContainingClass() != null) { + result = Identifier(member.getContainingClass()!!.getName()!!).toKotlin() + "." + result + member = member.getContainingClass()!! + } + myResult = Identifier(result, false, false) + return + } + } myResult = CallChainExpression(getConverter().expressionToExpression(qualifier), identifier) } diff --git a/tests/testData/ast/issues/file/qualifyStatic.jav b/tests/testData/ast/issues/file/qualifyStatic.jav new file mode 100644 index 00000000000..d11b710e625 --- /dev/null +++ b/tests/testData/ast/issues/file/qualifyStatic.jav @@ -0,0 +1,7 @@ +import java.util.Calendar + +abstract class MyCalendar extends Calendar { + public void foo() { + int i = ALL_STYLES; + } +} diff --git a/tests/testData/ast/issues/file/qualifyStatic.kt b/tests/testData/ast/issues/file/qualifyStatic.kt new file mode 100644 index 00000000000..a3bcd4c4838 --- /dev/null +++ b/tests/testData/ast/issues/file/qualifyStatic.kt @@ -0,0 +1,6 @@ +import java.util.Calendar +abstract class MyCalendar() : Calendar() { +public open fun foo() : Unit { +var i : Int = Calendar.ALL_STYLES +} +} \ No newline at end of file