Parsing and PSI for sealed/non-sealed: IDEA-223111

GitOrigin-RevId: 2e633b17236afce37f67a2cee5af664c03fe5f0a
This commit is contained in:
Roman.Ivanov
2020-06-11 08:12:26 +03:00
committed by intellij-monorepo-bot
parent ea992d5d4c
commit bdeba157b4
457 changed files with 1077 additions and 201 deletions
@@ -44,6 +44,7 @@ public interface PsiReferenceList extends PsiElement {
THROWS_LIST,
EXTENDS_LIST,
IMPLEMENTS_LIST,
PERMITS_LIST,
EXTENDS_BOUNDS_LIST,
PROVIDES_WITH_LIST
}
@@ -103,6 +103,12 @@ public class DeclarationParser {
refParser.parseReferenceList(builder, JavaTokenType.EXTENDS_KEYWORD, JavaElementType.EXTENDS_LIST, JavaTokenType.COMMA);
refParser.parseReferenceList(builder, JavaTokenType.IMPLEMENTS_KEYWORD, JavaElementType.IMPLEMENTS_LIST, JavaTokenType.COMMA);
if (getLanguageLevel(builder).isAtLeast(LanguageLevel.JDK_15_PREVIEW) &&
builder.getTokenType() == JavaTokenType.IDENTIFIER &&
PsiKeyword.PERMITS.equals(builder.getTokenText())) {
builder.remapCurrentToken(JavaTokenType.PERMITS_KEYWORD);
}
refParser.parseReferenceList(builder, JavaTokenType.PERMITS_KEYWORD, JavaElementType.PERMITS_LIST, JavaTokenType.COMMA);
if (builder.getTokenType() != JavaTokenType.LBRACE) {
final PsiBuilder.Marker error = builder.mark();
@@ -254,7 +260,7 @@ public class DeclarationParser {
if (tokenType == JavaTokenType.LBRACE) {
if (context == Context.FILE || context == Context.CODE_BLOCK) return null;
}
else if (!isRecordToken(builder, tokenType)) {
else if (!isRecordToken(builder, tokenType) && !isSealed(builder, tokenType)) {
if (TYPE_START.contains(tokenType) && tokenType != JavaTokenType.AT) {
if (context == Context.FILE) return null;
}
@@ -414,6 +420,12 @@ public class DeclarationParser {
getLanguageLevel(builder).isAtLeast(LanguageLevel.JDK_14_PREVIEW);
}
private static boolean isSealed(PsiBuilder builder, IElementType tokenType) {
return tokenType == JavaTokenType.IDENTIFIER &&
PsiKeyword.SEALED.equals(builder.getTokenText()) &&
getLanguageLevel(builder).isAtLeast(LanguageLevel.JDK_15_PREVIEW);
}
@NotNull
public Pair<PsiBuilder.Marker, Boolean> parseModifierList(final PsiBuilder builder) {
return parseModifierList(builder, ElementType.MODIFIER_BIT_SET);
@@ -425,8 +437,12 @@ public class DeclarationParser {
boolean isEmpty = true;
while (true) {
final IElementType tokenType = builder.getTokenType();
IElementType tokenType = builder.getTokenType();
if (tokenType == null) break;
if (isSealed(builder, tokenType)) {
builder.remapCurrentToken(JavaTokenType.SEALED_KEYWORD);
tokenType = JavaTokenType.SEALED_KEYWORD;
}
if (modifiers.contains(tokenType)) {
builder.advanceLexer();
isEmpty = false;
@@ -108,6 +108,7 @@ public abstract class JavaClassReferenceListElementType extends JavaStubElementT
if (type == JavaStubElementTypes.IMPLEMENTS_LIST) return PsiReferenceList.Role.IMPLEMENTS_LIST;
if (type == JavaStubElementTypes.THROWS_LIST) return PsiReferenceList.Role.THROWS_LIST;
if (type == JavaStubElementTypes.PROVIDES_WITH_LIST) return PsiReferenceList.Role.PROVIDES_WITH_LIST;
if (type == JavaStubElementTypes.PERMITS_LIST) return PsiReferenceList.Role.PERMITS_LIST;
throw new RuntimeException("Unknown element type: " + type);
}
}
@@ -92,6 +92,14 @@ public interface JavaStubElementTypes {
return new ReferenceListElement(this, JavaTokenType.EXTENDS_KEYWORD, PsiKeyword.EXTENDS);
}
};
JavaClassReferenceListElementType PERMITS_LIST = new JavaClassReferenceListElementType("PERMITS_LIST") {
@NotNull
@Override
public ASTNode createCompositeNode() {
return new ReferenceListElement(this, JavaTokenType.PERMITS_KEYWORD, PsiKeyword.PERMITS);
}
};
JavaClassReferenceListElementType IMPLEMENTS_LIST = new JavaClassReferenceListElementType("IMPLEMENTS_LIST") {
@NotNull
@Override
@@ -100,6 +100,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme
}
if (i == JavaElementType.EXTENDS_LIST ||
i == JavaElementType.IMPLEMENTS_LIST ||
i == JavaElementType.PERMITS_LIST ||
i == JavaElementType.EXTENDS_BOUND_LIST ||
i == JavaElementType.THROWS_LIST ||
i == JavaElementType.THIS_EXPRESSION ||
@@ -19,7 +19,7 @@ public interface ElementType extends JavaTokenType, JavaDocTokenType, JavaElemen
SWITCH_KEYWORD, SYNCHRONIZED_KEYWORD, THIS_KEYWORD, THROW_KEYWORD, THROWS_KEYWORD, TRANSIENT_KEYWORD, TRY_KEYWORD, VOID_KEYWORD,
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);
TRANSITIVE_KEYWORD, TO_KEYWORD, WITH_KEYWORD, VAR_KEYWORD, YIELD_KEYWORD, RECORD_KEYWORD, SEALED_KEYWORD, PERMITS_KEYWORD, NON_SEALED_KEYWORD);
TokenSet LITERAL_BIT_SET = TokenSet.create(TRUE_KEYWORD, FALSE_KEYWORD, NULL_KEYWORD);
@@ -30,7 +30,7 @@ public interface ElementType extends JavaTokenType, JavaDocTokenType, JavaElemen
TokenSet 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);
SYNCHRONIZED_KEYWORD, STRICTFP_KEYWORD, TRANSIENT_KEYWORD, VOLATILE_KEYWORD, DEFAULT_KEYWORD, SEALED_KEYWORD, NON_SEALED_KEYWORD);
TokenSet PRIMITIVE_TYPE_BIT_SET = TokenSet.create(
BOOLEAN_KEYWORD, BYTE_KEYWORD, SHORT_KEYWORD, INT_KEYWORD, LONG_KEYWORD, CHAR_KEYWORD, FLOAT_KEYWORD, DOUBLE_KEYWORD, VOID_KEYWORD);
@@ -78,6 +78,7 @@ public interface JavaElementType {
IElementType PROVIDES_WITH_LIST = JavaStubElementTypes.PROVIDES_WITH_LIST;
IElementType RECORD_COMPONENT = JavaStubElementTypes.RECORD_COMPONENT;
IElementType RECORD_HEADER = JavaStubElementTypes.RECORD_HEADER;
IElementType PERMITS_LIST = JavaStubElementTypes.PERMITS_LIST;
IElementType IMPORT_STATIC_REFERENCE = new JavaCompositeElementType("IMPORT_STATIC_REFERENCE", () -> new PsiImportStaticReferenceElementImpl());
IElementType TYPE = new JavaCompositeElementType("TYPE", () -> new PsiTypeElementImpl());
@@ -34,6 +34,8 @@ PsiJavaFile:Array.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:Complex.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -39,6 +39,8 @@ PsiJavaFile:EnumSmartTypeCompletion.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -83,6 +85,8 @@ PsiJavaFile:EnumSmartTypeCompletion.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -136,6 +140,8 @@ PsiJavaFile:EnumSmartTypeCompletion.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -67,6 +67,8 @@ PsiJavaFile:Errors.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n\n ')
@@ -23,6 +23,8 @@ PsiJavaFile:Marker.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -40,6 +40,8 @@ PsiJavaFile:Multiple.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:Nested.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:ParameterAnnotation.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:ParameterizedMethod.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:QualifiedAnnotation.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -27,6 +27,8 @@ PsiJavaFile:Simple1.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -29,6 +29,8 @@ PsiJavaFile:Simple2.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -72,6 +72,8 @@ PsiJavaFile:TypeAnnotations.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n\n ')
@@ -212,6 +214,8 @@ PsiJavaFile:TypeAnnotations.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -296,6 +300,8 @@ PsiJavaFile:TypeAnnotations.java
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -1058,6 +1064,8 @@ PsiJavaFile:TypeAnnotations.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -1667,6 +1675,8 @@ PsiJavaFile:TypeAnnotations.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -1698,6 +1708,8 @@ PsiJavaFile:TypeAnnotations.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -14,6 +14,8 @@ PsiJavaFile:Default.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:Inner.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -29,6 +31,8 @@ PsiJavaFile:Inner.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:Nested.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -61,6 +63,8 @@ PsiJavaFile:Nested.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:OtherMembers.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -88,6 +90,8 @@ PsiJavaFile:OtherMembers.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -104,6 +108,8 @@ PsiJavaFile:OtherMembers.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -30,6 +30,8 @@ PsiJavaFile:Simple.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -17,6 +17,8 @@ PsiJavaFile:ImportListBug.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:IncompleteCodeBlock.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -46,4 +48,4 @@ PsiJavaFile:IncompleteCodeBlock.java
PsiWhiteSpace('\n ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -28,6 +28,8 @@ PsiJavaFile:IncompleteFor.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -44,6 +46,8 @@ PsiJavaFile:IncompleteFor.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:RefParamsAfterError.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:SCR5202.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n\t')
@@ -13,6 +13,8 @@ PsiJavaFile:CompactConstructor0.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiMethod:ClassName
@@ -13,6 +13,8 @@ PsiJavaFile:CompactConstructor1.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:foo
@@ -21,6 +21,8 @@ PsiJavaFile:EmptyImportList.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
@@ -14,6 +14,8 @@ PsiJavaFile:Enum1.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
@@ -13,6 +13,8 @@ PsiJavaFile:Enum2.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
@@ -13,6 +13,8 @@ PsiJavaFile:EnumWithAnnotatedConstants.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:EnumWithConstants1.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:EnumWithConstants2.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:EnumWithConstants3.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:EnumWithConstants4.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:EnumWithConstants5.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:EnumWithConstants6.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:EnumWithImport.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:EnumWithInitializedConstants.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -14,6 +14,8 @@ PsiJavaFile:EnumWithoutConstants.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiErrorElement:';' expected
@@ -20,6 +20,8 @@ PsiJavaFile:Errors1.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiErrorElement:'{' expected
PsiIdentifier:n('n')
PsiWhiteSpace(' ')
@@ -14,6 +14,8 @@ PsiJavaFile:Errors2.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
@@ -13,6 +13,8 @@ PsiJavaFile:Errors3.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:Errors4.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -24,6 +24,8 @@ PsiJavaFile:Errors5.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:ExtraClosingBraceInMethod.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -23,6 +23,8 @@ PsiJavaFile:ExtraOpeningBraceInMethod.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:ForError.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiClassInitializer
@@ -72,4 +74,4 @@ PsiJavaFile:ForError.java
PsiWhiteSpace('\n ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -23,6 +23,8 @@ PsiJavaFile:IncompleteAnnotation.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:LocalRecord.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -60,6 +62,8 @@ PsiJavaFile:LocalRecord.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -13,6 +13,8 @@ PsiJavaFile:LocalRecordWithTypeParams.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -52,6 +54,8 @@ PsiJavaFile:LocalRecordWithTypeParams.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
PsiEmptyStatement
@@ -13,6 +13,8 @@ PsiJavaFile:LocalRecordWithoutParens.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:NoType.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiErrorElement:Unexpected token
@@ -31,4 +33,4 @@ PsiJavaFile:NoType.java
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1 @@
non-sealed class C implements I {}
@@ -0,0 +1,27 @@
PsiJavaFile:NonSealedClass.java
PsiImportList
<empty list>
PsiClass:C
PsiModifierList:non-sealed
PsiKeyword:non-sealed('non-sealed')
PsiWhiteSpace(' ')
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:C('C')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiReferenceList
PsiKeyword:implements('implements')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:I
PsiIdentifier:I('I')
PsiReferenceParameterList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -36,6 +36,8 @@ PsiJavaFile:ParametrizedClass.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -48,6 +48,8 @@ PsiJavaFile:Pines.java
PsiJavaToken:GT('>')
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -0,0 +1 @@
interface I permits A, B {}
@@ -0,0 +1,32 @@
PsiJavaFile:ProvidesList.java
PsiImportList
<empty list>
PsiClass:I
PsiModifierList:
<empty list>
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:I('I')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiReferenceList
PsiKeyword:permits('permits')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:A
PsiIdentifier:A('A')
PsiReferenceParameterList
<empty list>
PsiJavaToken:COMMA(',')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:B
PsiIdentifier:B('B')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:Record.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:RecordInCodeBlock.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -37,6 +37,8 @@ PsiJavaFile:RecordNoClosingParenthesis.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
@@ -29,6 +29,8 @@ PsiJavaFile:RecordNoClosingTypeBracket.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
@@ -16,6 +16,8 @@ PsiJavaFile:RecordNoComponents.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
@@ -13,6 +13,8 @@ PsiJavaFile:RecordTypeInOlderJava.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -65,6 +67,8 @@ PsiJavaFile:RecordTypeInOlderJava.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -40,6 +40,8 @@ PsiJavaFile:RecordWithComponents.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
@@ -14,6 +14,8 @@ PsiJavaFile:RecordWithModifiers.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
@@ -28,6 +28,8 @@ PsiJavaFile:RecordWithTypeParameters.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
@@ -0,0 +1 @@
sealed interface I {}
@@ -0,0 +1,21 @@
PsiJavaFile:SealedInterface.java
PsiImportList
<empty list>
PsiClass:I
PsiModifierList:sealed
PsiKeyword:sealed('sealed')
PsiWhiteSpace(' ')
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:I('I')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:Semicolon.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiMethod:f
@@ -55,4 +57,4 @@ PsiJavaFile:Semicolon.java
PsiJavaToken:RBRACE('}')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,7 +13,9 @@ PsiJavaFile:Semicolon2.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:SEMICOLON(';')
PsiJavaToken:SEMICOLON(';')
@@ -13,6 +13,8 @@ PsiJavaFile:BindBefore1.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field
@@ -26,4 +28,4 @@ PsiJavaFile:BindBefore1.java
PsiIdentifier:field('field')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:BindBefore2.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('// comment')
@@ -26,4 +28,4 @@ PsiJavaFile:BindBefore2.java
PsiIdentifier:field('field')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:BindBefore3.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiComment(END_OF_LINE_COMMENT)('// comment')
@@ -26,4 +28,4 @@ PsiJavaFile:BindBefore3.java
PsiIdentifier:field('field')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:BindBefore3a.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiComment(END_OF_LINE_COMMENT)('// comment')
PsiWhiteSpace('\n ')
@@ -25,4 +27,4 @@ PsiJavaFile:BindBefore3a.java
PsiIdentifier:field('field')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:BindBefore4.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field
@@ -30,4 +32,4 @@ PsiJavaFile:BindBefore4.java
PsiIdentifier:field('field')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -19,6 +19,8 @@ PsiJavaFile:BindBefore5.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -24,6 +24,8 @@ PsiJavaFile:BindBeforeClass1.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -15,6 +15,8 @@ PsiJavaFile:BindBeforeClass2.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -15,6 +15,8 @@ PsiJavaFile:BindBeforeClass3.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -23,6 +23,8 @@ PsiJavaFile:BindBeforeClass4.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -17,6 +17,8 @@ PsiJavaFile:BindBeforeClass5.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -14,6 +14,8 @@ PsiJavaFile:BindBeforeClass6.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
@@ -14,6 +14,8 @@ PsiJavaFile:ComplexInitializer.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:Errors.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:MissingInitializer.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field
@@ -27,4 +29,4 @@ PsiJavaFile:MissingInitializer.java
PsiErrorElement:Expression expected
<empty list>
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:MissingInitializerExpression.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field
@@ -13,6 +13,8 @@ PsiJavaFile:Multi.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field1
@@ -33,4 +35,4 @@ PsiJavaFile:Multi.java
PsiIdentifier:field2('field2')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:MultiLineUnclosed0.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiModifierList:
@@ -13,6 +13,8 @@ PsiJavaFile:MultiLineUnclosed1.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
@@ -13,6 +13,8 @@ PsiJavaFile:Simple.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field
@@ -29,4 +31,4 @@ PsiJavaFile:Simple.java
PsiJavaToken:INTEGER_LITERAL('0')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:UnclosedBracket.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field
@@ -26,4 +28,4 @@ PsiJavaFile:UnclosedBracket.java
PsiErrorElement:']' expected
<empty list>
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:UnclosedComma.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field
@@ -26,4 +28,4 @@ PsiJavaFile:UnclosedComma.java
PsiErrorElement:Identifier expected
<empty list>
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')
@@ -13,6 +13,8 @@ PsiJavaFile:UnclosedSemicolon.java
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiField:field
@@ -25,4 +27,4 @@ PsiJavaFile:UnclosedSemicolon.java
PsiErrorElement:';' expected
<empty list>
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RBRACE('}')

Some files were not shown because too many files have changed in this diff Show More