PsiJavaFile:Anonymous2.java
  PsiImportList
    <empty list>
  PsiClass:DoubleTrouble
    PsiComment(END_OF_LINE_COMMENT)('// "Copy 'a' to temp final variable" "true"')
    PsiWhiteSpace('\n')
    PsiModifierList:public
      PsiKeyword:public('public')
    PsiWhiteSpace(' ')
    PsiKeyword:class('class')
    PsiWhiteSpace(' ')
    PsiIdentifier:DoubleTrouble('DoubleTrouble')
    PsiTypeParameterList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiWhiteSpace(' ')
    PsiJavaToken:LBRACE('{')
    PsiWhiteSpace('\n    ')
    PsiMethod:test
      PsiModifierList:public
        PsiKeyword:public('public')
      PsiTypeParameterList
        <empty list>
      PsiWhiteSpace(' ')
      PsiTypeElement:void
        PsiKeyword:void('void')
      PsiWhiteSpace(' ')
      PsiIdentifier:test('test')
      PsiParameterList:()
        PsiJavaToken:LPARENTH('(')
        PsiJavaToken:RPARENTH(')')
      PsiReferenceList
        <empty list>
      PsiWhiteSpace(' ')
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiWhiteSpace('\n        ')
        PsiDeclarationStatement
          PsiLocalVariable:a
            PsiModifierList:
              <empty list>
            PsiTypeElement:int
              PsiKeyword:int('int')
            PsiWhiteSpace(' ')
            PsiIdentifier:a('a')
            PsiWhiteSpace(' ')
            PsiJavaToken:EQ('=')
            PsiWhiteSpace(' ')
            PsiLiteralExpression:1
              PsiJavaToken:INTEGER_LITERAL('1')
            PsiJavaToken:SEMICOLON(';')
        PsiWhiteSpace('\n        ')
        PsiExpressionStatement
          PsiAssignmentExpression:a = 2
            PsiReferenceExpression:a
              PsiReferenceParameterList
                <empty list>
              PsiIdentifier:a('a')
            PsiWhiteSpace(' ')
            PsiJavaToken:EQ('=')
            PsiWhiteSpace(' ')
            PsiLiteralExpression:2
              PsiJavaToken:INTEGER_LITERAL('2')
          PsiJavaToken:SEMICOLON(';')
        PsiWhiteSpace('\n        ')
        PsiDeclarationStatement
          PsiClass:s
            PsiModifierList:
              <empty list>
            PsiKeyword:class('class')
            PsiWhiteSpace(' ')
            PsiIdentifier:s('s')
            PsiTypeParameterList
              <empty list>
            PsiReferenceList
              <empty list>
            PsiReferenceList
              <empty list>
            PsiWhiteSpace(' ')
            PsiJavaToken:LBRACE('{')
            PsiWhiteSpace('\n          ')
            PsiMethod:run
              PsiModifierList:public
                PsiKeyword:public('public')
              PsiTypeParameterList
                <empty list>
              PsiWhiteSpace(' ')
              PsiTypeElement:void
                PsiKeyword:void('void')
              PsiWhiteSpace(' ')
              PsiIdentifier:run('run')
              PsiParameterList:()
                PsiJavaToken:LPARENTH('(')
                PsiJavaToken:RPARENTH(')')
              PsiReferenceList
                <empty list>
              PsiWhiteSpace(' ')
              PsiCodeBlock
                PsiJavaToken:LBRACE('{')
                PsiWhiteSpace('\n            ')
                PsiExpressionStatement
                  PsiMethodCallExpression:new Runnable() {
              public void run() {
                System.out.println(a);
              }
            }.run()
                    PsiReferenceExpression:new Runnable() {
              public void run() {
                System.out.println(a);
              }
            }.run
                      PsiNewExpression:new Runnable() {
              public void run() {
                System.out.println(a);
              }
            }
                        PsiKeyword:new('new')
                        PsiReferenceParameterList
                          <empty list>
                        PsiWhiteSpace(' ')
                        PsiAnonymousClass
                          PsiJavaCodeReferenceElement:Runnable
                            PsiIdentifier:Runnable('Runnable')
                            PsiReferenceParameterList
                              <empty list>
                          PsiExpressionList
                            PsiJavaToken:LPARENTH('(')
                            PsiJavaToken:RPARENTH(')')
                          PsiWhiteSpace(' ')
                          PsiJavaToken:LBRACE('{')
                          PsiWhiteSpace('\n              ')
                          PsiMethod:run
                            PsiModifierList:public
                              PsiKeyword:public('public')
                            PsiTypeParameterList
                              <empty list>
                            PsiWhiteSpace(' ')
                            PsiTypeElement:void
                              PsiKeyword:void('void')
                            PsiWhiteSpace(' ')
                            PsiIdentifier:run('run')
                            PsiParameterList:()
                              PsiJavaToken:LPARENTH('(')
                              PsiJavaToken:RPARENTH(')')
                            PsiReferenceList
                              <empty list>
                            PsiWhiteSpace(' ')
                            PsiCodeBlock
                              PsiJavaToken:LBRACE('{')
                              PsiWhiteSpace('\n                ')
                              PsiExpressionStatement
                                PsiMethodCallExpression:System.out.println(a)
                                  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('(')
                                    PsiReferenceExpression:a
                                      PsiReferenceParameterList
                                        <empty list>
                                      PsiIdentifier:a('a')
                                    PsiJavaToken:RPARENTH(')')
                                PsiJavaToken:SEMICOLON(';')
                              PsiWhiteSpace('\n              ')
                              PsiJavaToken:RBRACE('}')
                          PsiWhiteSpace('\n            ')
                          PsiJavaToken:RBRACE('}')
                      PsiJavaToken:DOT('.')
                      PsiReferenceParameterList
                        <empty list>
                      PsiIdentifier:run('run')
                    PsiExpressionList
                      PsiJavaToken:LPARENTH('(')
                      PsiJavaToken:RPARENTH(')')
                  PsiJavaToken:SEMICOLON(';')
                PsiWhiteSpace('\n          ')
                PsiJavaToken:RBRACE('}')
            PsiWhiteSpace('\n        ')
            PsiJavaToken:RBRACE('}')
        PsiWhiteSpace('\n      ')
        PsiJavaToken:RBRACE('}')
    PsiWhiteSpace('\n\n')
    PsiJavaToken:RBRACE('}')