if (JavaKeywordCompletion.isDeclarationStart(position) ||
JavaKeywordCompletion.isInsideParameterList(position) ||
isInsideAnnotationName(position) ||
- psiElement().inside(PsiReferenceParameterList.class).accepts(position) ||
+ PsiTreeUtil.getParentOfType(position, PsiReferenceParameterList.class, false, PsiAnnotation.class) != null ||
isDefinitelyVariableType(position)) {
return new OrFilter(ElementClassFilter.CLASS, ElementClassFilter.PACKAGE);
}
--- /dev/null
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+import java.util.List;
+
+class A {
+ List<@Anno(value = Anno.MyEnum.f<caret>) String> l;
+
+}
+
+@Target(ElementType.TYPE_USE)
+@interface Anno {
+ enum MyEnum {foo,bar}
+ MyEnum value();
+}
\ No newline at end of file
--- /dev/null
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+import java.util.List;
+
+class A {
+ List<@Anno(value = Anno.MyEnum.foo<caret>) String> l;
+
+}
+
+@Target(ElementType.TYPE_USE)
+@interface Anno {
+ enum MyEnum {foo,bar}
+ MyEnum value();
+}
\ No newline at end of file
checkResultByFile("Annotation4_after.java")
}
+ void testEnumInTypeAnnotation() { doTest() }
+
void testSecondAttribute() throws Exception {
configureByFile("Annotation6.java")
checkResultByFile("Annotation6_after.java")