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) {
|
private static boolean shouldBeIgnored(DeclarationDescriptor owner, PsiClass psiClass, PsiClass innerPsiClass, boolean isStatic) {
|
||||||
if (innerPsiClass.hasModifierProperty(PsiModifier.PRIVATE)
|
if (innerPsiClass.getName().equals(JvmAbi.CLASS_OBJECT_CLASS_NAME)
|
||||||
|| innerPsiClass.getName().equals(JvmAbi.CLASS_OBJECT_CLASS_NAME)
|
|
||||||
|| DescriptorResolverUtils.isInnerEnum(innerPsiClass, owner)) {
|
|| DescriptorResolverUtils.isInnerEnum(innerPsiClass, owner)) {
|
||||||
return true;
|
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);
|
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")
|
@TestMetadata("kt1402.kt")
|
||||||
public void testKt1402() throws Exception {
|
public void testKt1402() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/j+k/kt1402.kt");
|
doTest("compiler/testData/diagnostics/tests/j+k/kt1402.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user