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('}')