mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 11:20:44 +07:00
Java: basic support for Valhalla Value Classes (IDEA-364548)
GitOrigin-RevId: 93b0394866aae35772ccc90e7de822af8a94c6ce
This commit is contained in:
committed by
intellij-monorepo-bot
parent
36b258bc98
commit
2b32d9bb56
+12
-2
@@ -437,6 +437,12 @@ public class BasicDeclarationParser {
|
||||
PsiKeyword.SEALED.equals(builder.getTokenText());
|
||||
}
|
||||
|
||||
private static boolean isValueToken(PsiBuilder builder, IElementType tokenType) {
|
||||
return JavaFeature.VALHALLA_VALUE_CLASSES.isSufficient(getLanguageLevel(builder)) &&
|
||||
tokenType == JavaTokenType.IDENTIFIER &&
|
||||
PsiKeyword.VALUE.equals(builder.getTokenText());
|
||||
}
|
||||
|
||||
static boolean isNonSealedToken(PsiBuilder builder, IElementType tokenType) {
|
||||
if (!JavaFeature.SEALED_CLASSES.isSufficient(getLanguageLevel(builder)) ||
|
||||
tokenType != JavaTokenType.IDENTIFIER ||
|
||||
@@ -458,14 +464,18 @@ public class BasicDeclarationParser {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Pair<PsiBuilder.Marker, Boolean> parseModifierList(final PsiBuilder builder, final TokenSet modifiers) {
|
||||
public Pair<PsiBuilder.Marker, Boolean> parseModifierList(PsiBuilder builder, TokenSet modifiers) {
|
||||
final PsiBuilder.Marker modList = builder.mark();
|
||||
boolean isEmpty = true;
|
||||
|
||||
while (true) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType == null) break;
|
||||
if (isSealedToken(builder, tokenType)) {
|
||||
if (isValueToken(builder, tokenType)) {
|
||||
builder.remapCurrentToken(JavaTokenType.VALUE_KEYWORD);
|
||||
tokenType = JavaTokenType.VALUE_KEYWORD;
|
||||
}
|
||||
else if (isSealedToken(builder, tokenType)) {
|
||||
builder.remapCurrentToken(JavaTokenType.SEALED_KEYWORD);
|
||||
tokenType = JavaTokenType.SEALED_KEYWORD;
|
||||
}
|
||||
|
||||
+3
-2
@@ -33,7 +33,7 @@ public interface BasicElementTypes extends JavaTokenType, JavaDocTokenType, Basi
|
||||
VOLATILE_KEYWORD, WHILE_KEYWORD,
|
||||
OPEN_KEYWORD, MODULE_KEYWORD, REQUIRES_KEYWORD, EXPORTS_KEYWORD, OPENS_KEYWORD, USES_KEYWORD, PROVIDES_KEYWORD,
|
||||
TRANSITIVE_KEYWORD, TO_KEYWORD, WITH_KEYWORD, VAR_KEYWORD, YIELD_KEYWORD, RECORD_KEYWORD, SEALED_KEYWORD, PERMITS_KEYWORD,
|
||||
NON_SEALED_KEYWORD, WHEN_KEYWORD
|
||||
NON_SEALED_KEYWORD, WHEN_KEYWORD, VALUE_KEYWORD
|
||||
);
|
||||
|
||||
TokenSet BASIC_LITERAL_BIT_SET = TokenSet.create(TRUE_KEYWORD, FALSE_KEYWORD, NULL_KEYWORD);
|
||||
@@ -45,7 +45,8 @@ public interface BasicElementTypes extends JavaTokenType, JavaDocTokenType, Basi
|
||||
|
||||
TokenSet BASIC_MODIFIER_BIT_SET = TokenSet.create(
|
||||
PUBLIC_KEYWORD, PROTECTED_KEYWORD, PRIVATE_KEYWORD, STATIC_KEYWORD, ABSTRACT_KEYWORD, FINAL_KEYWORD, NATIVE_KEYWORD,
|
||||
SYNCHRONIZED_KEYWORD, STRICTFP_KEYWORD, TRANSIENT_KEYWORD, VOLATILE_KEYWORD, DEFAULT_KEYWORD, SEALED_KEYWORD, NON_SEALED_KEYWORD);
|
||||
SYNCHRONIZED_KEYWORD, STRICTFP_KEYWORD, TRANSIENT_KEYWORD, VOLATILE_KEYWORD, DEFAULT_KEYWORD, SEALED_KEYWORD, NON_SEALED_KEYWORD,
|
||||
VALUE_KEYWORD);
|
||||
|
||||
TokenSet BASIC_PRIMITIVE_TYPE_BIT_SET = TokenSet.create(
|
||||
BOOLEAN_KEYWORD, BYTE_KEYWORD, SHORT_KEYWORD, INT_KEYWORD, LONG_KEYWORD, CHAR_KEYWORD, FLOAT_KEYWORD, DOUBLE_KEYWORD, VOID_KEYWORD);
|
||||
|
||||
Reference in New Issue
Block a user