[java-completion] IDEA-324653 IJ-CR-111070 No completion for qualified Enum in switch

GitOrigin-RevId: f633fb8552cf65e718954c98325c1445ca433461
This commit is contained in:
Mikhail Pyltsin
2023-07-17 11:10:51 +02:00
committed by intellij-monorepo-bot
parent 9ff8dfb3f0
commit af78d087f5
8 changed files with 76 additions and 0 deletions

View File

@@ -276,6 +276,11 @@ public final class JavaCompletionContributor extends CompletionContributor imple
!JavaResolveUtil.isAccessible(field, field.getContainingClass(), field.getModifierList(), context, null, null)) {
return false;
}
PsiClass aClass = PsiUtil.resolveClassInClassTypeOnly(field.getType());
if (aClass != null && aClass.isEnum()) {
return false;
}
variable = field;
}
else if (element instanceof PsiLocalVariable local) {

View File

@@ -0,0 +1,10 @@
class Main {
interface I{}
enum EN implements I{AAA}
public static void test3(I en) {
switch (en) {
case EN.A<caret>
}
}
}

View File

@@ -0,0 +1,10 @@
class Main {
interface I{}
enum EN implements I{AAA}
public static void test3(I en) {
switch (en) {
case EN.AAA -> <caret>
}
}
}

View File

@@ -0,0 +1,11 @@
class Main {
interface I{}
enum ENNN implements I{AAA}
public static void test3(ENNN en) {
switch (en) {
case ENNN.AA<caret>
}
}
}

View File

@@ -0,0 +1,11 @@
class Main {
interface I{}
enum ENNN implements I{AAA}
public static void test3(ENNN en) {
switch (en) {
case ENNN.AAA -> <caret>
}
}
}

View File

@@ -0,0 +1,11 @@
class Main {
interface I{}
enum ENNN implements I{AAA}
public static void test3(I en) {
switch (en) {
case ENNN.AA<caret>
}
}
}

View File

@@ -0,0 +1,11 @@
class Main {
interface I{}
enum ENNN implements I{AAA}
public static void test3(I en) {
switch (en) {
case ENNN.AA
}
}
}

View File

@@ -2,6 +2,8 @@
package com.intellij.java.codeInsight.completion;
import com.intellij.codeInsight.template.impl.LiveTemplateCompletionContributor;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.NeedsIndex;
import org.jetbrains.annotations.NotNull;
@@ -81,6 +83,11 @@ public class NormalSwitchCompletionTest extends NormalCompletionTestCase {
public void testQualifierEnumConstantInSwitch1() { doTest(); }
public void testQualifierEnumConstantInSwitch2() { doTest(); }
public void testQualifierEnumConstantInSwitch3() { doTest(); }
public void testQualifierEnumConstantInSwitch4() { doTest(); }
public void testQualifierEnumConstantInSwitchInJava20() {
IdeaTestUtil.withLevel(myFixture.getModule(), LanguageLevel.JDK_19, () -> doTest());
}
public void testClassPatternInSwitch1() { doTest(); }
public void testClassPatternInSwitch2() { doTest(); }
private void doTestPostfixCompletion() {