Fix for a problem where inner (or nested) classes were not analyzed in some situations
# KT-3124 Fixed
This commit is contained in:
+1
-2
@@ -75,8 +75,7 @@ public final class JavaInnerClassResolver {
|
||||
}
|
||||
|
||||
private static boolean shouldBeIgnored(DeclarationDescriptor owner, PsiClass psiClass, PsiClass innerPsiClass, boolean isStatic) {
|
||||
if (innerPsiClass.hasModifierProperty(PsiModifier.PRIVATE)
|
||||
|| innerPsiClass.getName().equals(JvmAbi.CLASS_OBJECT_CLASS_NAME)
|
||||
if (innerPsiClass.getName().equals(JvmAbi.CLASS_OBJECT_CLASS_NAME)
|
||||
|| DescriptorResolverUtils.isInnerEnum(innerPsiClass, owner)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
// FILE: a/M.java
|
||||
package a;
|
||||
|
||||
public class M {
|
||||
public class Inner {
|
||||
|
||||
}
|
||||
|
||||
public static class Nested {
|
||||
|
||||
}
|
||||
|
||||
private class PrInner {
|
||||
|
||||
}
|
||||
|
||||
private static class PrNested {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
package b
|
||||
|
||||
fun f() {
|
||||
val <!UNUSED_VARIABLE!>c1<!>: a.M.Inner
|
||||
val <!UNUSED_VARIABLE!>c2<!>: a.M.Nested
|
||||
val <!UNUSED_VARIABLE!>c3<!>: a.M.<!INVISIBLE_REFERENCE!>PrInner<!>
|
||||
val <!UNUSED_VARIABLE!>c4<!>: a.M.<!INVISIBLE_REFERENCE!>PrNested<!>
|
||||
|
||||
}
|
||||
|
||||
@@ -2384,6 +2384,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/j+k"), "kt", true);
|
||||
}
|
||||
|
||||
@TestMetadata("innerNestedClassFromJava.kt")
|
||||
public void testInnerNestedClassFromJava() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/j+k/innerNestedClassFromJava.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt1402.kt")
|
||||
public void testKt1402() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/j+k/kt1402.kt");
|
||||
|
||||
Reference in New Issue
Block a user