From 924e475d89795f92263dff97e4d27d013e1de703 Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 15 Dec 2013 19:43:09 +0100 Subject: [PATCH] IDEA-118100 Annotation enum attribute auto-completion --- .../com/intellij/codeInsight/ExpectedTypesProvider.java | 3 ++- .../completion/normalSorting/AnnotationEnum.java | 9 +++++++++ .../completion/NormalCompletionOrderingTest.groovy | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normalSorting/AnnotationEnum.java diff --git a/java/java-impl/src/com/intellij/codeInsight/ExpectedTypesProvider.java b/java/java-impl/src/com/intellij/codeInsight/ExpectedTypesProvider.java index c9f75a0486b5..205cc3e1aeba 100644 --- a/java/java-impl/src/com/intellij/codeInsight/ExpectedTypesProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/ExpectedTypesProvider.java @@ -307,7 +307,8 @@ public class ExpectedTypesProvider { if (type == null) return; final ExpectedTypeInfoImpl info = createInfoImpl(type, ExpectedTypeInfo.TYPE_OR_SUBTYPE, type, TailType.UNKNOWN); if (type instanceof PsiArrayType) { - myResult = new ExpectedTypeInfo[]{info, createInfoImpl(((PsiArrayType)type).getComponentType(), ExpectedTypeInfo.TYPE_OR_SUBTYPE, type, TailType.UNKNOWN)}; + PsiType componentType = ((PsiArrayType)type).getComponentType(); + myResult = new ExpectedTypeInfo[]{info, createInfoImpl(componentType, ExpectedTypeInfo.TYPE_OR_SUBTYPE, componentType, TailType.UNKNOWN)}; } else { myResult = new ExpectedTypeInfo[] {info}; diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/AnnotationEnum.java b/java/java-tests/testData/codeInsight/completion/normalSorting/AnnotationEnum.java new file mode 100644 index 000000000000..e0c3ae217316 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normalSorting/AnnotationEnum.java @@ -0,0 +1,9 @@ +public class Foo { + @MyAnno(value = ) +} + +@interface MyAnno { + MyEnum[] value(); +} + +enum MyEnum { FOO, BAR } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy index 207596b73fa0..6fd0ec382c41 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy @@ -620,4 +620,8 @@ interface TxANotAnno {} checkPreferredItems 0, 'String', 'System', 'Set' } + public void testAnnotationEnum() { + checkPreferredItems 0, 'MyEnum.BAR', 'MyEnum', 'MyEnum.FOO' + } + }