qualify access to static members
This commit is contained in:
committed by
Pavel V. Talanov
parent
21b280f413
commit
c7113e143a
@@ -12,6 +12,7 @@ import java.util.ArrayList
|
|||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import java.util.List
|
import java.util.List
|
||||||
import com.intellij.psi.CommonClassNames.*
|
import com.intellij.psi.CommonClassNames.*
|
||||||
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
|
|
||||||
public open class ExpressionVisitor(converter: Converter): StatementVisitor(converter) {
|
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") {
|
else if (qualifier != null && qualifier.getType() is PsiArrayType && referencedName == "length") {
|
||||||
identifier = Identifier("size", isNullable)
|
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<PsiClass>()) != 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)
|
myResult = CallChainExpression(getConverter().expressionToExpression(qualifier), identifier)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import java.util.Calendar
|
||||||
|
|
||||||
|
abstract class MyCalendar extends Calendar {
|
||||||
|
public void foo() {
|
||||||
|
int i = ALL_STYLES;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import java.util.Calendar
|
||||||
|
abstract class MyCalendar() : Calendar() {
|
||||||
|
public open fun foo() : Unit {
|
||||||
|
var i : Int = Calendar.ALL_STYLES
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user