blob: 0cc33a82fa2c82bcf9b96a9004278ddda4ee7654 [file] [log] [blame]
PsiJavaFile:TypeAnnotations.java
PsiImportList
PsiImportStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:java.util.@NotAllowed Date
PsiJavaCodeReferenceElement:java.util
PsiJavaCodeReferenceElement:java
PsiIdentifier:java('java')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:util('util')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NotAllowed
PsiIdentifier:NotAllowed('NotAllowed')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:Date('Date')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiComment(END_OF_LINE_COMMENT)('// illegal')
PsiWhiteSpace('\n')
PsiImportStatement
PsiKeyword:import('import')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@IllegalSyntax java.util.Date
PsiJavaCodeReferenceElement:@IllegalSyntax java.util
PsiJavaCodeReferenceElement:@IllegalSyntax java
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:IllegalSyntax
PsiIdentifier:IllegalSyntax('IllegalSyntax')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:java('java')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:util('util')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiIdentifier:Date('Date')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiComment(END_OF_LINE_COMMENT)('// illegal')
PsiWhiteSpace('\n\n')
PsiClass:SpecSamples
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:SpecSamples('SpecSamples')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('// 1. A type annotation appears before the type’s simple name ...')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n\n ')
PsiField:files
PsiModifierList:
<empty list>
PsiTypeElement:Map<@NonNull String, @NonEmpty List<@Readonly Document>>
PsiJavaCodeReferenceElement:Map<@NonNull String, @NonEmpty List<@Readonly Document>>
PsiIdentifier:Map('Map')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@NonNull String
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNull
PsiIdentifier:NonNull('NonNull')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:COMMA(',')
PsiWhiteSpace(' ')
PsiTypeElement:@NonEmpty List<@Readonly Document>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonEmpty
PsiIdentifier:NonEmpty('NonEmpty')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:List<@Readonly Document>
PsiIdentifier:List('List')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@Readonly Document
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:Document
PsiIdentifier:Document('Document')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiIdentifier:files('files')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n\n ')
PsiClassInitializer
PsiModifierList:
<empty list>
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiExpressionStatement
PsiMethodCallExpression:o.<@NonNull String>m("...")
PsiReferenceExpression:o.<@NonNull String>m
PsiReferenceExpression:o
PsiReferenceParameterList
<empty list>
PsiIdentifier:o('o')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@NonNull String
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNull
PsiIdentifier:NonNull('NonNull')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiIdentifier:m('m')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiLiteralExpression:"..."
PsiJavaToken:STRING_LITERAL('"..."')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiClass:Folder
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:Folder('Folder')
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:F
PsiIdentifier:F('F')
PsiWhiteSpace(' ')
PsiElement(EXTENDS_BOUND_LIST)
PsiKeyword:extends('extends')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@Existing File
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Existing
PsiIdentifier:Existing('Existing')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:File('File')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiField:files
PsiModifierList:
<empty list>
PsiTypeElement:Collection<? super @Existing File>
PsiJavaCodeReferenceElement:Collection<? super @Existing File>
PsiIdentifier:Collection('Collection')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:? super @Existing File
PsiJavaToken:QUEST('?')
PsiWhiteSpace(' ')
PsiKeyword:super('super')
PsiWhiteSpace(' ')
PsiTypeElement:@Existing File
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Existing
PsiIdentifier:Existing('Existing')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:File
PsiIdentifier:File('File')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiIdentifier:files('files')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n\n ')
PsiClass:UnmodifiableList
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:UnmodifiableList('UnmodifiableList')
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:T
PsiIdentifier:T('T')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiJavaToken:GT('>')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiReferenceList
PsiKeyword:implements('implements')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@Readonly List<@Readonly T>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:List('List')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@Readonly T
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:T
PsiIdentifier:T('T')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiMethod:monitorTemperature
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:void
PsiKeyword:void('void')
PsiWhiteSpace(' ')
PsiIdentifier:monitorTemperature('monitorTemperature')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiReferenceList
PsiKeyword:throws('throws')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@Critical TemperatureException
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Critical
PsiIdentifier:Critical('Critical')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:TemperatureException('TemperatureException')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiClassInitializer
PsiModifierList:
<empty list>
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiNewExpression:new @Interned MyObject()
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@Interned MyObject
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Interned
PsiIdentifier:Interned('Interned')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:MyObject('MyObject')
PsiReferenceParameterList
<empty list>
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiNewExpression:new @NonEmpty @Readonly List<String>(myNonEmptyStringSet)
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@NonEmpty @Readonly List<String>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonEmpty
PsiIdentifier:NonEmpty('NonEmpty')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:List('List')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:String
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiReferenceExpression:myNonEmptyStringSet
PsiReferenceParameterList
<empty list>
PsiIdentifier:myNonEmptyStringSet('myNonEmptyStringSet')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiNewExpression:myVar.new @Tainted NestedClass()
PsiReferenceExpression:myVar
PsiReferenceParameterList
<empty list>
PsiIdentifier:myVar('myVar')
PsiJavaToken:DOT('.')
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@Tainted NestedClass
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Tainted
PsiIdentifier:Tainted('Tainted')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:NestedClass('NestedClass')
PsiReferenceParameterList
<empty list>
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n\n ')
PsiExpressionStatement
PsiNewExpression:new <String> @Interned MyObject()
PsiKeyword:new('new')
PsiWhiteSpace(' ')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:String
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@Interned MyObject
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Interned
PsiIdentifier:Interned('Interned')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:MyObject('MyObject')
PsiReferenceParameterList
<empty list>
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n\n ')
PsiDeclarationStatement
PsiLocalVariable:ee
PsiModifierList:
<empty list>
PsiTypeElement:Map.@NonNull Entry
PsiJavaCodeReferenceElement:Map.@NonNull Entry
PsiJavaCodeReferenceElement:Map
PsiIdentifier:Map('Map')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNull
PsiIdentifier:NonNull('NonNull')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:Entry('Entry')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:ee('ee')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n\n ')
PsiExpressionStatement
PsiAssignmentExpression:myString = (@NonNull String) myObject
PsiReferenceExpression:myString
PsiReferenceParameterList
<empty list>
PsiIdentifier:myString('myString')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiTypeCastExpression:(@NonNull String) myObject
PsiJavaToken:LPARENTH('(')
PsiTypeElement:@NonNull String
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNull
PsiIdentifier:NonNull('NonNull')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiReferenceExpression:myObject
PsiReferenceParameterList
<empty list>
PsiIdentifier:myObject('myObject')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiAssignmentExpression:myString = (@NonNull) myObject
PsiReferenceExpression:myString
PsiReferenceParameterList
<empty list>
PsiIdentifier:myString('myString')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiTypeCastExpression:(@NonNull) myObject
PsiJavaToken:LPARENTH('(')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNull
PsiIdentifier:NonNull('NonNull')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiErrorElement:Type expected
<empty list>
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiReferenceExpression:myObject
PsiReferenceParameterList
<empty list>
PsiIdentifier:myObject('myObject')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiComment(END_OF_LINE_COMMENT)('// error: type omitted')
PsiWhiteSpace('\n\n ')
PsiExpressionStatement
PsiAssignmentExpression:isNonNull = myString instanceof @NonNull String
PsiReferenceExpression:isNonNull
PsiReferenceParameterList
<empty list>
PsiIdentifier:isNonNull('isNonNull')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiInstanceofExpression:myString instanceof @NonNull String
PsiReferenceExpression:myString
PsiReferenceParameterList
<empty list>
PsiIdentifier:myString('myString')
PsiWhiteSpace(' ')
PsiKeyword:instanceof('instanceof')
PsiWhiteSpace(' ')
PsiTypeElement:@NonNull String
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNull
PsiIdentifier:NonNull('NonNull')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiAssignmentExpression:isNonNull = myString instanceof @NonNull
PsiReferenceExpression:isNonNull
PsiReferenceParameterList
<empty list>
PsiIdentifier:isNonNull('isNonNull')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiInstanceofExpression:myString instanceof @NonNull
PsiReferenceExpression:myString
PsiReferenceParameterList
<empty list>
PsiIdentifier:myString('myString')
PsiWhiteSpace(' ')
PsiKeyword:instanceof('instanceof')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNull
PsiIdentifier:NonNull('NonNull')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiErrorElement:Type expected
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiComment(END_OF_LINE_COMMENT)('// error: type omitted')
PsiWhiteSpace('\n\n ')
PsiExpressionStatement
PsiMethodCallExpression:m(@Vernal Date::getDay)
PsiReferenceExpression:m
PsiReferenceParameterList
<empty list>
PsiIdentifier:m('m')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiMethodReferenceExpression:@Vernal Date::getDay
PsiReferenceExpression:@Vernal Date
PsiReferenceParameterList
<empty list>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Vernal
PsiIdentifier:Vernal('Vernal')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:Date('Date')
PsiJavaToken:DOUBLE_COLON('::')
PsiReferenceParameterList
<empty list>
PsiIdentifier:getDay('getDay')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiMethodCallExpression:m(@IllegalAnnotation java.util.@Vernal Date::getDay)
PsiReferenceExpression:m
PsiReferenceParameterList
<empty list>
PsiIdentifier:m('m')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiMethodReferenceExpression:@IllegalAnnotation java.util.@Vernal Date::getDay
PsiReferenceExpression:@IllegalAnnotation java.util.@Vernal Date
PsiReferenceExpression:@IllegalAnnotation java.util
PsiReferenceExpression:@IllegalAnnotation java
PsiReferenceParameterList
<empty list>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:IllegalAnnotation
PsiIdentifier:IllegalAnnotation('IllegalAnnotation')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:java('java')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
<empty list>
PsiIdentifier:util('util')
PsiJavaToken:DOT('.')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Vernal
PsiIdentifier:Vernal('Vernal')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:Date('Date')
PsiJavaToken:DOUBLE_COLON('::')
PsiReferenceParameterList
<empty list>
PsiIdentifier:getDay('getDay')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiMethodCallExpression:m(List<@English String>::size)
PsiReferenceExpression:m
PsiReferenceParameterList
<empty list>
PsiIdentifier:m('m')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiMethodReferenceExpression:List<@English String>::size
PsiTypeElement:List<@English String>
PsiJavaCodeReferenceElement:List<@English String>
PsiIdentifier:List('List')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@English String
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:English
PsiIdentifier:English('English')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiJavaToken:DOUBLE_COLON('::')
PsiReferenceParameterList
<empty list>
PsiIdentifier:size('size')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiExpressionStatement
PsiMethodCallExpression:m(Arrays::<@NonNegative Integer>sort)
PsiReferenceExpression:m
PsiReferenceParameterList
<empty list>
PsiIdentifier:m('m')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiMethodReferenceExpression:Arrays::<@NonNegative Integer>sort
PsiReferenceExpression:Arrays
PsiReferenceParameterList
<empty list>
PsiIdentifier:Arrays('Arrays')
PsiJavaToken:DOUBLE_COLON('::')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@NonNegative Integer
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNegative
PsiIdentifier:NonNegative('NonNegative')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:Integer
PsiIdentifier:Integer('Integer')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiIdentifier:sort('sort')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n\n ')
PsiExpressionStatement
PsiMethodCallExpression:m((@TA Object x, @TB Object y) -> { System.out.println("x=" + x + " y=" + y); })
PsiReferenceExpression:m
PsiReferenceParameterList
<empty list>
PsiIdentifier:m('m')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiLambdaExpression:(@TA Object x, @TB Object y) -> { System.out.println("x=" + x + " y=" + y); }
PsiParameterList:(@TA Object x, @TB Object y)
PsiJavaToken:LPARENTH('(')
PsiParameter:x
PsiModifierList:@TA
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:TA
PsiIdentifier:TA('TA')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:Object
PsiJavaCodeReferenceElement:Object
PsiIdentifier:Object('Object')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:x('x')
PsiJavaToken:COMMA(',')
PsiWhiteSpace(' ')
PsiParameter:y
PsiModifierList:@TB
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:TB
PsiIdentifier:TB('TB')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:Object
PsiJavaCodeReferenceElement:Object
PsiIdentifier:Object('Object')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:y('y')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiJavaToken:ARROW('->')
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiExpressionStatement
PsiMethodCallExpression:System.out.println("x=" + x + " y=" + y)
PsiReferenceExpression:System.out.println
PsiReferenceExpression:System.out
PsiReferenceExpression:System
PsiReferenceParameterList
<empty list>
PsiIdentifier:System('System')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
<empty list>
PsiIdentifier:out('out')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
<empty list>
PsiIdentifier:println('println')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiPolyadicExpression: "x=" + x + " y=" + y
PsiLiteralExpression:"x="
PsiJavaToken:STRING_LITERAL('"x="')
PsiWhiteSpace(' ')
PsiJavaToken:PLUS('+')
PsiWhiteSpace(' ')
PsiReferenceExpression:x
PsiReferenceParameterList
<empty list>
PsiIdentifier:x('x')
PsiWhiteSpace(' ')
PsiJavaToken:PLUS('+')
PsiWhiteSpace(' ')
PsiLiteralExpression:" y="
PsiJavaToken:STRING_LITERAL('" y="')
PsiWhiteSpace(' ')
PsiJavaToken:PLUS('+')
PsiWhiteSpace(' ')
PsiReferenceExpression:y
PsiReferenceParameterList
<empty list>
PsiIdentifier:y('y')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n\n ')
PsiTryStatement
PsiKeyword:try('try')
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiExpressionStatement
PsiMethodCallExpression:m()
PsiReferenceExpression:m
PsiReferenceParameterList
<empty list>
PsiIdentifier:m('m')
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n ')
PsiCatchSection
PsiKeyword:catch('catch')
PsiWhiteSpace(' ')
PsiJavaToken:LPARENTH('(')
PsiParameter:e
PsiModifierList:@A1
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:A1
PsiIdentifier:A1('A1')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:NullPointerException | @A2 IllegalArgumentException
PsiTypeElement:NullPointerException
PsiJavaCodeReferenceElement:NullPointerException
PsiIdentifier:NullPointerException('NullPointerException')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:OR('|')
PsiWhiteSpace(' ')
PsiTypeElement:@A2 IllegalArgumentException
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:A2
PsiIdentifier:A2('A2')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:IllegalArgumentException
PsiIdentifier:IllegalArgumentException('IllegalArgumentException')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:e('e')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiTryStatement
PsiKeyword:try('try')
PsiWhiteSpace(' ')
PsiResourceList:(@A Reader r = new @B FileReader("/dev/zero"); @A Writer w = new @B FileWriter("/dev/null"))
PsiJavaToken:LPARENTH('(')
PsiResourceVariable:r
PsiModifierList:@A
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:A
PsiIdentifier:A('A')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:Reader
PsiJavaCodeReferenceElement:Reader
PsiIdentifier:Reader('Reader')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:r('r')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiNewExpression:new @B FileReader("/dev/zero")
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@B FileReader
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:B
PsiIdentifier:B('B')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:FileReader('FileReader')
PsiReferenceParameterList
<empty list>
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiLiteralExpression:"/dev/zero"
PsiJavaToken:STRING_LITERAL('"/dev/zero"')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiResourceVariable:w
PsiModifierList:@A
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:A
PsiIdentifier:A('A')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:Writer
PsiJavaCodeReferenceElement:Writer
PsiIdentifier:Writer('Writer')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:w('w')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiNewExpression:new @B FileWriter("/dev/null")
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@B FileWriter
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:B
PsiIdentifier:B('B')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:FileWriter('FileWriter')
PsiReferenceParameterList
<empty list>
PsiExpressionList
PsiJavaToken:LPARENTH('(')
PsiLiteralExpression:"/dev/null"
PsiJavaToken:STRING_LITERAL('"/dev/null"')
PsiJavaToken:RPARENTH(')')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiClass:TestClass
PsiModifierList:
<empty list>
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:TestClass('TestClass')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiMethod:test
PsiModifierList:
<empty list>
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:T
PsiIdentifier:T('T')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiTypeElement:@Nullable List<T>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Nullable
PsiIdentifier:Nullable('Nullable')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:List<T>
PsiIdentifier:List('List')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:T
PsiJavaCodeReferenceElement:T
PsiIdentifier:T('T')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiIdentifier:test('test')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiMethod:test
PsiModifierList:
<empty list>
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:T
PsiIdentifier:T('T')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiTypeElement:@Positive int
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Positive
PsiIdentifier:Positive('Positive')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiKeyword:int('int')
PsiWhiteSpace(' ')
PsiIdentifier:test('test')
PsiParameterList:(T t)
PsiJavaToken:LPARENTH('(')
PsiParameter:t
PsiModifierList:
<empty list>
PsiTypeElement:T
PsiJavaCodeReferenceElement:T
PsiIdentifier:T('T')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:t('t')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('// 2. An annotation on a wildcard type argument appears before the wildcard ...')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n\n ')
PsiMethod:m
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:void
PsiKeyword:void('void')
PsiWhiteSpace(' ')
PsiIdentifier:m('m')
PsiParameterList:(MyClass<@Immutable ? extends Comparable<MyClass>> p)
PsiJavaToken:LPARENTH('(')
PsiParameter:p
PsiModifierList:
<empty list>
PsiTypeElement:MyClass<@Immutable ? extends Comparable<MyClass>>
PsiJavaCodeReferenceElement:MyClass<@Immutable ? extends Comparable<MyClass>>
PsiIdentifier:MyClass('MyClass')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:@Immutable ? extends Comparable<MyClass>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Immutable
PsiIdentifier:Immutable('Immutable')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:QUEST('?')
PsiWhiteSpace(' ')
PsiKeyword:extends('extends')
PsiWhiteSpace(' ')
PsiTypeElement:Comparable<MyClass>
PsiJavaCodeReferenceElement:Comparable<MyClass>
PsiIdentifier:Comparable('Comparable')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:MyClass
PsiJavaCodeReferenceElement:MyClass
PsiIdentifier:MyClass('MyClass')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiIdentifier:p('p')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('// 3. The annotation on a given array level prefixes the brackets that introduce that level ...')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n\n ')
PsiMethod:m
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:void
PsiKeyword:void('void')
PsiWhiteSpace(' ')
PsiIdentifier:m('m')
PsiParameterList:(Document @Readonly ... docs)
PsiJavaToken:LPARENTH('(')
PsiParameter:docs
PsiModifierList:
<empty list>
PsiTypeElement:Document @Readonly ...
PsiTypeElement:Document
PsiJavaCodeReferenceElement:Document
PsiIdentifier:Document('Document')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:ELLIPSIS('...')
PsiWhiteSpace(' ')
PsiIdentifier:docs('docs')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiDeclarationStatement
PsiLocalVariable:docs1
PsiModifierList:@Readonly
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:Document [][]
PsiTypeElement:Document []
PsiTypeElement:Document
PsiJavaCodeReferenceElement:Document
PsiIdentifier:Document('Document')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiIdentifier:docs1('docs1')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiNewExpression:new @Readonly Document [2][12]
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:@Readonly Document
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:Document('Document')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiLiteralExpression:2
PsiJavaToken:INTEGER_LITERAL('2')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:LBRACKET('[')
PsiLiteralExpression:12
PsiJavaToken:INTEGER_LITERAL('12')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiComment(END_OF_LINE_COMMENT)('// array of arrays of read-only documents')
PsiWhiteSpace('\n ')
PsiDeclarationStatement
PsiLocalVariable:docs2
PsiModifierList:
<empty list>
PsiTypeElement:Document @Readonly [][]
PsiTypeElement:Document @Readonly []
PsiTypeElement:Document
PsiJavaCodeReferenceElement:Document
PsiIdentifier:Document('Document')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiIdentifier:docs2('docs2')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiNewExpression:new Document @Readonly [2][12]
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:Document
PsiIdentifier:Document('Document')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiLiteralExpression:2
PsiJavaToken:INTEGER_LITERAL('2')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:LBRACKET('[')
PsiLiteralExpression:12
PsiJavaToken:INTEGER_LITERAL('12')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiComment(END_OF_LINE_COMMENT)('// read-only array of arrays of documents')
PsiWhiteSpace('\n ')
PsiDeclarationStatement
PsiLocalVariable:docs3
PsiModifierList:
<empty list>
PsiTypeElement:Document[] @Readonly []
PsiTypeElement:Document[]
PsiTypeElement:Document
PsiJavaCodeReferenceElement:Document
PsiIdentifier:Document('Document')
PsiReferenceParameterList
<empty list>
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiIdentifier:docs3('docs3')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiNewExpression:new Document[2] @Readonly [12]
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:Document
PsiIdentifier:Document('Document')
PsiReferenceParameterList
<empty list>
PsiJavaToken:LBRACKET('[')
PsiLiteralExpression:2
PsiJavaToken:INTEGER_LITERAL('2')
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Readonly
PsiIdentifier:Readonly('Readonly')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiLiteralExpression:12
PsiJavaToken:INTEGER_LITERAL('12')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiComment(END_OF_LINE_COMMENT)('// array of read-only arrays of documents')
PsiWhiteSpace('\n\n ')
PsiDeclarationStatement
PsiLocalVariable:ints
PsiModifierList:@NonNegative
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNegative
PsiIdentifier:NonNegative('NonNegative')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiTypeElement:int @NonEmpty []
PsiTypeElement:int
PsiKeyword:int('int')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonEmpty
PsiIdentifier:NonEmpty('NonEmpty')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiIdentifier:ints('ints')
PsiWhiteSpace(' ')
PsiJavaToken:EQ('=')
PsiWhiteSpace(' ')
PsiNewExpression:new @NonNegative int @MinSize(2) [2]
PsiKeyword:new('new')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:NonNegative
PsiIdentifier:NonNegative('NonNegative')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiKeyword:int('int')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:MinSize
PsiIdentifier:MinSize('MinSize')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
PsiJavaToken:LPARENTH('(')
PsiNameValuePair
PsiLiteralExpression:2
PsiJavaToken:INTEGER_LITERAL('2')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiLiteralExpression:2
PsiJavaToken:INTEGER_LITERAL('2')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiMethod:m
PsiModifierList:
<empty list>
PsiTypeParameterList
<empty list>
PsiTypeElement:int
PsiKeyword:int('int')
PsiWhiteSpace(' ')
PsiIdentifier:m('m')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Slowpoke
PsiIdentifier:Slowpoke('Slowpoke')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Slowbro
PsiIdentifier:Slowbro('Slowbro')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiReturnStatement
PsiKeyword:return('return')
PsiWhiteSpace(' ')
PsiLiteralExpression:null
PsiJavaToken:NULL_KEYWORD('null')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('// 4. A type annotation is permitted in front of a constructor declaration ...')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n\n ')
PsiMethod:SpecSamples
PsiModifierList:@Immutable
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Immutable
PsiIdentifier:Immutable('Immutable')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiTypeParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:SpecSamples('SpecSamples')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n ')
PsiMethod:SpecSamples
PsiModifierList:
<empty list>
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:T
PsiIdentifier:T('T')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Immutable
PsiIdentifier:Immutable('Immutable')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:SpecSamples('SpecSamples')
PsiParameterList:(T t)
PsiJavaToken:LPARENTH('(')
PsiParameter:t
PsiModifierList:
<empty list>
PsiTypeElement:T
PsiJavaCodeReferenceElement:T
PsiIdentifier:T('T')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:t('t')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('// todo [r.sh] 5. It is permitted to explicitly declare the method receiver as the first formal parameter ...')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n\n ')
PsiComment(C_STYLE_COMMENT)('/*public String toString(@Readonly MyClass this) { }\n\n public boolean equals(@Readonly MyClass this, @Readonly Object other) { }\n\n SpecSamples(@Receiver SpecSamples this, boolean b) { }\n\n class Outer {\n class Middle {\n class Inner {\n void innerMethod(@A Outer. @B Middle. @C Inner this) { }\n }\n }\n }\n\n void replace(@Readonly Object other, @Mutable MyClass this) { } // illegal */')
PsiWhiteSpace('\n\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('// 6. It is permitted to write an annotation on a type parameter declaration ...')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n\n ')
PsiClass:MyClass
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:MyClass('MyClass')
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:T
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Immutable
PsiIdentifier:Immutable('Immutable')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:T('T')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiJavaToken:GT('>')
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiClass:WonderfulList
PsiModifierList:
<empty list>
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:WonderfulList('WonderfulList')
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:E
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Reified
PsiIdentifier:Reified('Reified')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiIdentifier:E('E')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiJavaToken:GT('>')
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n')
PsiJavaToken:RBRACE('}')