提交 e50e3f8e 编写于 作者: S svtk

KT-900 Inaccessible class should be unresolved

上级 5633f71e
......@@ -128,18 +128,24 @@ public class JetPsiUtil {
return getFQName(file.getNamespaceHeader());
}
public static String getFQName(JetClass jetClass) {
public static String getFQName(JetClassOrObject jetClass) {
PsiElement parent = jetClass.getParent();
if (parent instanceof JetFile) {
return makeFQName(getFQName((JetFile) parent), jetClass);
}
if (parent instanceof JetClass) {
return makeFQName(getFQName(((JetClass) parent)), jetClass);
while (parent instanceof JetClassBody) {
parent = parent.getParent();
if (parent instanceof JetObjectDeclaration && parent.getParent() instanceof JetClassObject) {
parent = parent.getParent().getParent();
}
}
if (parent instanceof JetClassOrObject) {
return makeFQName(getFQName(((JetClassOrObject) parent)), jetClass);
}
return jetClass.getName();
}
private static String makeFQName(String prefix, JetClass jetClass) {
return (prefix.length() == 0 ? "" : prefix + ".") + jetClass.getName();
private static String makeFQName(String prefix, JetClassOrObject jetClass) {
return ((prefix == null || prefix.length() == 0) ? "" : prefix + ".") + jetClass.getName();
}
}
//FILE:a.kt
//KT-900 Inaccessible class should be unresolved
package a
fun foo() {
val <!UNUSED_VARIABLE!>b<!> : <!UNRESOLVED_REFERENCE!>B<!> = <!UNRESOLVED_REFERENCE!>B<!>() //only B() is unresolved, but in ": B" and "B.foo()" B should also be unresolved
<!UNRESOLVED_REFERENCE!>B<!>.foo()
<!UNRESOLVED_REFERENCE!>P<!>.foo()
<!UNRESOLVED_REFERENCE!>M<!>.bar()
}
class A() {
class object {
class B() {
class object {
fun foo() {}
}
}
object P {
fun foo() {}
}
}
}
object N {
object M {
fun bar() {}
}
}
//FILE:b.kt
package b
import N.M
import A.P
import b.A.B
fun foo() {
val <!UNUSED_VARIABLE!>b<!> : B = B()
B.foo()
P.foo()
M.bar()
}
class A() {
class object {
class B() {
class object {
fun foo() {}
}
}
object P {
fun foo() {}
}
}
}
object N {
object M {
fun bar() {}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册