diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/ModifierChooser.java b/java/java-impl/src/com/intellij/codeInsight/completion/ModifierChooser.java index d1008c7f9c52..4c7d70c55d35 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/ModifierChooser.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/ModifierChooser.java @@ -2,7 +2,6 @@ package com.intellij.codeInsight.completion; import com.intellij.codeInsight.daemon.impl.analysis.HighlightingFeature; -import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.*; import com.intellij.psi.filters.FilterPositionUtil; import com.intellij.psi.impl.source.jsp.jspJava.JspClassLevelDeclarationStatement; @@ -23,7 +22,7 @@ public final class ModifierChooser { {PsiKeyword.FINAL, PsiKeyword.ABSTRACT} }; - private static final String[][] CLASS_15_MODIFIERS = { + private static final String[][] CLASS_MODIFIERS_WITH_SEALED = { {PsiKeyword.PUBLIC}, {PsiKeyword.FINAL, PsiKeyword.ABSTRACT}, {PsiKeyword.FINAL, PsiKeyword.SEALED, PsiKeyword.NON_SEALED} @@ -98,7 +97,7 @@ public final class ModifierChooser { } public static String[] addClassModifiers(PsiModifierList list, @NotNull PsiElement scope) { - return addKeywords(list, PsiUtil.getLanguageLevel(scope).isAtLeast(LanguageLevel.JDK_15_PREVIEW) ? CLASS_15_MODIFIERS : CLASS_MODIFIERS); + return addKeywords(list, HighlightingFeature.SEALED_CLASSES.isAvailable(scope) ? CLASS_MODIFIERS_WITH_SEALED : CLASS_MODIFIERS); } public static String[] addMemberModifiers(PsiModifierList list, final boolean inInterface, @NotNull PsiElement position) { diff --git a/java/java-tests/testData/codeInsight/completion/keywords/noSealedModifier.java b/java/java-tests/testData/codeInsight/completion/keywords/noSealedModifier.java new file mode 100644 index 000000000000..12366150711b --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/keywords/noSealedModifier.java @@ -0,0 +1 @@ + class Foo {} diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java index b1b309f2deea..3aec0cc17565 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java @@ -201,6 +201,7 @@ public class KeywordCompletionTest extends LightCompletionTestCase { setLanguageLevel(LanguageLevel.JDK_15_PREVIEW); doTest(); } public void testSealedModifier() {setLanguageLevel(LanguageLevel.JDK_15_PREVIEW); doTest(1, "sealed"); } + public void testNoSealedModifier() {setLanguageLevel(LanguageLevel.JDK_16); doTest(1, "final"); } public void testPermitsList() {setLanguageLevel(LanguageLevel.JDK_15_PREVIEW); doTest(1, "permits"); } public void testEnumPermitsList() {setLanguageLevel(LanguageLevel.JDK_15_PREVIEW); doTest(0, "permits"); } public void testInnerClassSealedModifier() {setLanguageLevel(LanguageLevel.JDK_15_PREVIEW); doTest(1, "sealed");}