diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java index c04705e154eb..bd747eb3a705 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java @@ -311,11 +311,11 @@ public final class HighlightClassUtil { firstChild.getText().startsWith("#!"); } - static HighlightInfo checkClassContextualKeyword(@NotNull LanguageLevel level, @NotNull PsiIdentifier identifier) { + static HighlightInfo checkClassRestrictedKeyword(@NotNull LanguageLevel level, @NotNull PsiIdentifier identifier) { String className = identifier.getText(); - if (isContextualKeyword(className, level)) { + if (isRestrictedIdentifier(className, level)) { return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR) - .descriptionAndTooltip(JavaErrorBundle.message("contextual.keyword", className)) + .descriptionAndTooltip(JavaErrorBundle.message("restricted.identifier", className)) .range(identifier) .create(); } @@ -327,7 +327,7 @@ public final class HighlightClassUtil { * @param level language level * @return true if given name cannot be used as a type name at given language level */ - public static boolean isContextualKeyword(String typeName, @NotNull LanguageLevel level) { + public static boolean isRestrictedIdentifier(String typeName, @NotNull LanguageLevel level) { return PsiKeyword.VAR.equals(typeName) && HighlightingFeature.LVTI.isSufficient(level) || PsiKeyword.YIELD.equals(typeName) && HighlightingFeature.SWITCH_EXPRESSION.isSufficient(level) || PsiKeyword.RECORD.equals(typeName) && HighlightingFeature.RECORDS.isSufficient(level) || diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 2f9f59642cee..923f624cc730 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -431,12 +431,12 @@ public final class HighlightUtil { return highlightInfo; } - static HighlightInfo checkContextualKeywordReference(@NotNull PsiJavaCodeReferenceElement ref, - @NotNull PsiClass resolved, - @NotNull LanguageLevel languageLevel) { + static HighlightInfo checkRestrictedIdentifierReference(@NotNull PsiJavaCodeReferenceElement ref, + @NotNull PsiClass resolved, + @NotNull LanguageLevel languageLevel) { String name = resolved.getName(); - if (HighlightClassUtil.isContextualKeyword(name, languageLevel)) { - String message = JavaErrorBundle.message("contextual.keyword.reference", name); + if (HighlightClassUtil.isRestrictedIdentifier(name, languageLevel)) { + String message = JavaErrorBundle.message("restricted.identifier.reference", name); PsiElement range = ObjectUtils.notNull(ref.getReferenceNameElement(), ref); return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).descriptionAndTooltip(message).range(range).create(); } diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java index 8d7acb120412..3bfd51f1598c 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java @@ -736,7 +736,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh myHolder.add(HighlightNamesUtil.highlightClassName(aClass, identifier, colorsScheme)); } if (!myHolder.hasErrorResults()) { - myHolder.add(HighlightClassUtil.checkClassContextualKeyword(myLanguageLevel, identifier)); + myHolder.add(HighlightClassUtil.checkClassRestrictedKeyword(myLanguageLevel, identifier)); } if (!myHolder.hasErrorResults() && myLanguageLevel.isAtLeast(LanguageLevel.JDK_1_8)) { myHolder.add(GenericsHighlightUtil.checkUnrelatedDefaultMethods(aClass, identifier)); @@ -1326,7 +1326,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh myHolder.add(HighlightUtil.checkPackageAndClassConflict(ref, myFile)); } if (!myHolder.hasErrorResults() && resolved instanceof PsiClass) { - myHolder.add(HighlightUtil.checkContextualKeywordReference(ref, (PsiClass)resolved, myLanguageLevel)); + myHolder.add(HighlightUtil.checkRestrictedIdentifierReference(ref, (PsiClass)resolved, myLanguageLevel)); } if (!myHolder.hasErrorResults()) { myHolder.add(HighlightUtil.checkMemberReferencedBeforeConstructorCalled(ref, resolved, myFile, myInsideConstructorOfClass)); diff --git a/java/java-impl/src/com/intellij/ide/actions/CreateClassAction.java b/java/java-impl/src/com/intellij/ide/actions/CreateClassAction.java index 2c132383564c..dad87eef74df 100644 --- a/java/java-impl/src/com/intellij/ide/actions/CreateClassAction.java +++ b/java/java-impl/src/com/intellij/ide/actions/CreateClassAction.java @@ -62,8 +62,8 @@ public class CreateClassAction extends JavaCreateTemplateInPackageAction
  • Use of 'assert', 'enum' or '_' as an identifier
  • -
  • Use of contextual keyword 'var' as a type name
  • +
  • Use of restricted keyword 'var' as a type name
  • Unqualified calls to method named 'yield'
  • Modifiers on 'requires java.base' statement inside module-info.java
  • diff --git a/java/java-psi-impl/src/messages/JavaErrorBundle.properties b/java/java-psi-impl/src/messages/JavaErrorBundle.properties index b594e31b0966..469a465cc887 100644 --- a/java/java-psi-impl/src/messages/JavaErrorBundle.properties +++ b/java/java-psi-impl/src/messages/JavaErrorBundle.properties @@ -413,8 +413,8 @@ module.access.does.not.read=Package ''{0}'' is declared in module ''{1}'', but m module.access.not.in.graph=Package ''{0}'' is declared in module ''{1}'', which is not in the module graph module.access.bad.name=Package ''{0}'' is declared in module with an invalid name (''{1}'') -contextual.keyword=''{0}'' is a contextual keyword and cannot be used for type declarations -contextual.keyword.reference=Illegal reference to restricted type ''{0}'' +restricted.identifier=''{0}'' is a restricted identifier and cannot be used for type declarations +restricted.identifier.reference=Illegal reference to restricted type ''{0}'' lvti.no.initializer=Cannot infer type: 'var' on variable without initializer lvti.lambda=Cannot infer type: lambda expression requires an explicit target type diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordBasics.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordBasics.java index cb4441012e91..f4c95f56cc33 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordBasics.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordBasics.java @@ -1,6 +1,6 @@ import java.lang.annotation.*; -class record { +class record { void x(record r) {} } record NoComponentList {} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingSealedTypes/SealedRestrictedTypes.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingSealedTypes/SealedRestrictedTypes.java index 6038ef774c6d..aefc94e67fac 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingSealedTypes/SealedRestrictedTypes.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingSealedTypes/SealedRestrictedTypes.java @@ -1,2 +1,2 @@ -class sealed {} -class permits {} \ No newline at end of file +class sealed {} +class permits {} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advLVTI/VarClassNameConflicts.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advLVTI/VarClassNameConflicts.java index b2323a4b7b6f..24ec837b9b0f 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advLVTI/VarClassNameConflicts.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advLVTI/VarClassNameConflicts.java @@ -1,7 +1,7 @@ class Main { - class var {} + class var {} - <var extends String> void foo() {} + <var extends String> void foo() {} class Usage { var field = new var(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/switchExpressions/YieldStatements.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/switchExpressions/YieldStatements.java index 4cc2beabe8e5..7c382642b380 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/switchExpressions/YieldStatements.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/switchExpressions/YieldStatements.java @@ -48,7 +48,7 @@ class YieldStatements { } } - class yield { + class yield { void test(yield yield) { }