PsiJavaFile:GenericMethod.java
  PsiImportList
    <empty list>
  PsiClass:Test
    PsiModifierList:public
      PsiKeyword:public('public')
    PsiWhiteSpace(' ')
    PsiKeyword:class('class')
    PsiWhiteSpace(' ')
    PsiIdentifier:Test('Test')
    PsiTypeParameterList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiWhiteSpace(' ')
    PsiJavaToken:LBRACE('{')
    PsiWhiteSpace('\n    ')
    PsiMethod:test
      PsiModifierList:public static
        PsiKeyword:public('public')
        PsiWhiteSpace(' ')
        PsiKeyword:static('static')
      PsiWhiteSpace(' ')
      PsiTypeParameterList
        PsiJavaToken:LT('<')
        PsiTypeParameter:E
          PsiIdentifier:E('E')
          PsiElement(EXTENDS_BOUND_LIST)
            <empty list>
        PsiJavaToken:GT('>')
      PsiWhiteSpace(' ')
      PsiIdentifier:test('test')
      PsiParameterList:()
        PsiJavaToken:LPARENTH('(')
        PsiJavaToken:RPARENTH(')')
      PsiReferenceList
        <empty list>
      PsiWhiteSpace(' ')
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiWhiteSpace('\n    ')
        PsiJavaToken:RBRACE('}')
    PsiWhiteSpace('\n    ')
    PsiMethod:test1
      PsiModifierList:
        <empty list>
      PsiTypeParameterList
        PsiJavaToken:LT('<')
        PsiTypeParameter:E
          PsiIdentifier:E('E')
          PsiElement(EXTENDS_BOUND_LIST)
            <empty list>
        PsiJavaToken:GT('>')
      PsiWhiteSpace(' ')
      PsiTypeElement:void
        PsiKeyword:void('void')
      PsiWhiteSpace(' ')
      PsiIdentifier:test1('test1')
      PsiParameterList:()
        PsiJavaToken:LPARENTH('(')
        PsiJavaToken:RPARENTH(')')
      PsiReferenceList
        <empty list>
      PsiWhiteSpace(' ')
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiWhiteSpace('\n    ')
        PsiJavaToken:RBRACE('}')
    PsiWhiteSpace('\n    ')
    PsiMethod:test2
      PsiModifierList:
        <empty list>
      PsiTypeParameterList
        PsiJavaToken:LT('<')
        PsiTypeParameter:E1
          PsiIdentifier:E1('E1')
          PsiWhiteSpace(' ')
          PsiElement(EXTENDS_BOUND_LIST)
            PsiKeyword:extends('extends')
            PsiWhiteSpace(' ')
            PsiJavaCodeReferenceElement:Integer
              PsiIdentifier:Integer('Integer')
              PsiReferenceParameterList
                <empty list>
        PsiJavaToken:COMMA(',')
        PsiWhiteSpace(' ')
        PsiTypeParameter:E2
          PsiIdentifier:E2('E2')
          PsiWhiteSpace(' ')
          PsiElement(EXTENDS_BOUND_LIST)
            PsiKeyword:extends('extends')
            PsiWhiteSpace(' ')
            PsiJavaCodeReferenceElement:Runnable
              PsiIdentifier:Runnable('Runnable')
              PsiReferenceParameterList
                <empty list>
        PsiJavaToken:GT('>')
      PsiWhiteSpace(' ')
      PsiTypeElement:String
        PsiJavaCodeReferenceElement:String
          PsiIdentifier:String('String')
          PsiReferenceParameterList
            <empty list>
      PsiWhiteSpace(' ')
      PsiIdentifier:test2('test2')
      PsiParameterList:()
        PsiJavaToken:LPARENTH('(')
        PsiJavaToken:RPARENTH(')')
      PsiReferenceList
        <empty list>
      PsiWhiteSpace(' ')
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiWhiteSpace('\n    ')
        PsiJavaToken:RBRACE('}')
    PsiWhiteSpace('\n')
    PsiJavaToken:RBRACE('}')
