java completion: skip non-available sealed keyword for 16 language level

GitOrigin-RevId: b67cb8d87ece7a1c05b799bafebc7fd1b05d489c
This commit is contained in:
Anna Kozlova
2021-01-04 10:09:03 +00:00
committed by intellij-monorepo-bot
parent 649fa0cab9
commit 8a5f77461f
3 changed files with 4 additions and 3 deletions
@@ -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) {
@@ -0,0 +1 @@
<caret> class Foo {}
@@ -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");}