PsiJavaFile:LocalVar.java
  PsiImportList
    <empty list>
  PsiClass:Test
    PsiModifierList:
      <empty list>
    PsiKeyword:class('class')
    PsiWhiteSpace(' ')
    PsiIdentifier:Test('Test')
    PsiTypeParameterList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiWhiteSpace(' ')
    PsiJavaToken:LBRACE('{')
    PsiWhiteSpace('\n    ')
    PsiMethod:method
      PsiModifierList:
        <empty list>
      PsiTypeParameterList
        <empty list>
      PsiTypeElement:void
        PsiKeyword:void('void')
      PsiWhiteSpace(' ')
      PsiIdentifier:method('method')
      PsiParameterList:()
        PsiJavaToken:LPARENTH('(')
        PsiJavaToken:RPARENTH(')')
      PsiReferenceList
        <empty list>
      PsiWhiteSpace(' ')
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiWhiteSpace('\n        ')
        PsiDeclarationStatement
          PsiLocalVariable:list
            PsiModifierList:
              <empty list>
            PsiTypeElement:List<Integer>
              PsiJavaCodeReferenceElement:List<Integer>
                PsiIdentifier:List('List')
                PsiReferenceParameterList
                  PsiJavaToken:LT('<')
                  PsiTypeElement:Integer
                    PsiJavaCodeReferenceElement:Integer
                      PsiIdentifier:Integer('Integer')
                      PsiReferenceParameterList
                        <empty list>
                  PsiJavaToken:GT('>')
            PsiWhiteSpace(' ')
            PsiIdentifier:list('list')
            PsiJavaToken:SEMICOLON(';')
        PsiWhiteSpace('\n    ')
        PsiJavaToken:RBRACE('}')
    PsiWhiteSpace('\n')
    PsiJavaToken:RBRACE('}')
