mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java completion: skip non-available sealed keyword for 16 language level
GitOrigin-RevId: b67cb8d87ece7a1c05b799bafebc7fd1b05d489c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
649fa0cab9
commit
8a5f77461f
@@ -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 {}
|
||||
+1
@@ -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");}
|
||||
|
||||
Reference in New Issue
Block a user