Show all Kotlin annotations when browsing hierarchy of "java.lang.Annotation"
This commit is contained in:
@@ -25,22 +25,20 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassInfo;
|
import org.jetbrains.kotlin.fileClasses.JvmFileClassInfo;
|
||||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil;
|
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil;
|
||||||
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken;
|
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens;
|
import org.jetbrains.kotlin.lexer.KtTokens;
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi;
|
import org.jetbrains.kotlin.load.java.JvmAbi;
|
||||||
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils;
|
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils;
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject;
|
import org.jetbrains.kotlin.psi.KtClassOrObject;
|
||||||
import org.jetbrains.kotlin.psi.KtDeclarationModifierList;
|
|
||||||
import org.jetbrains.kotlin.psi.KtFile;
|
import org.jetbrains.kotlin.psi.KtFile;
|
||||||
import org.jetbrains.kotlin.psi.KtScript;
|
|
||||||
import org.jetbrains.kotlin.psi.stubs.*;
|
import org.jetbrains.kotlin.psi.stubs.*;
|
||||||
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes;
|
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes;
|
||||||
import org.jetbrains.kotlin.psi.stubs.elements.StubIndexService;
|
import org.jetbrains.kotlin.psi.stubs.elements.StubIndexService;
|
||||||
import org.jetbrains.kotlin.util.TypeIndexUtilKt;
|
import org.jetbrains.kotlin.util.TypeIndexUtilKt;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.lang.annotation.Annotation;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -134,6 +132,9 @@ public class IdeStubIndexService extends StubIndexService {
|
|||||||
if (modifierListStub.hasModifier(KtTokens.ENUM_KEYWORD)) {
|
if (modifierListStub.hasModifier(KtTokens.ENUM_KEYWORD)) {
|
||||||
sink.occurrence(KotlinSuperClassIndex.getInstance().getKey(), Enum.class.getSimpleName());
|
sink.occurrence(KotlinSuperClassIndex.getInstance().getKey(), Enum.class.getSimpleName());
|
||||||
}
|
}
|
||||||
|
if (modifierListStub.hasModifier(KtTokens.ANNOTATION_KEYWORD)) {
|
||||||
|
sink.occurrence(KotlinSuperClassIndex.getInstance().getKey(), Annotation.class.getSimpleName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<node text="Annotation (java.lang.annotation)" base="true">
|
||||||
|
<node text="MyAnno (a)"/>
|
||||||
|
<node text="MyAnno2 (a)"/>
|
||||||
|
</node>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
// BASE_CLASS: java.lang.annotation.Annotation
|
||||||
|
|
||||||
|
package a;
|
||||||
|
|
||||||
|
annotation class MyAnno
|
||||||
|
|
||||||
|
annotation class MyAnno2
|
||||||
@@ -35,6 +35,12 @@ public class HierarchyWithLibTestGenerated extends AbstractHierarchyWithLibTest
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/hierarchy/withLib"), Pattern.compile("^([^\\.]+)$"), false);
|
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/hierarchy/withLib"), Pattern.compile("^([^\\.]+)$"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("annotation")
|
||||||
|
public void testAnnotation() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/hierarchy/withLib/annotation/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("enum")
|
@TestMetadata("enum")
|
||||||
public void testEnum() throws Exception {
|
public void testEnum() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/hierarchy/withLib/enum/");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/hierarchy/withLib/enum/");
|
||||||
|
|||||||
Reference in New Issue
Block a user