PsiJavaFile:Anonymous2.java PsiImportList 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 PsiReferenceList PsiReferenceList PsiWhiteSpace(' ') PsiJavaToken:LBRACE('{') PsiWhiteSpace('\n ') PsiMethod:test PsiModifierList:public PsiKeyword:public('public') PsiTypeParameterList PsiWhiteSpace(' ') PsiTypeElement:void PsiKeyword:void('void') PsiWhiteSpace(' ') PsiIdentifier:test('test') PsiParameterList:() PsiJavaToken:LPARENTH('(') PsiJavaToken:RPARENTH(')') PsiReferenceList PsiWhiteSpace(' ') PsiCodeBlock PsiJavaToken:LBRACE('{') PsiWhiteSpace('\n ') PsiDeclarationStatement PsiLocalVariable:a PsiModifierList: 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 PsiIdentifier:a('a') PsiWhiteSpace(' ') PsiJavaToken:EQ('=') PsiWhiteSpace(' ') PsiLiteralExpression:2 PsiJavaToken:INTEGER_LITERAL('2') PsiJavaToken:SEMICOLON(';') PsiWhiteSpace('\n ') PsiDeclarationStatement PsiClass:s PsiModifierList: PsiKeyword:class('class') PsiWhiteSpace(' ') PsiIdentifier:s('s') PsiTypeParameterList PsiReferenceList PsiReferenceList PsiWhiteSpace(' ') PsiJavaToken:LBRACE('{') PsiWhiteSpace('\n ') PsiMethod:run PsiModifierList:public PsiKeyword:public('public') PsiTypeParameterList PsiWhiteSpace(' ') PsiTypeElement:void PsiKeyword:void('void') PsiWhiteSpace(' ') PsiIdentifier:run('run') PsiParameterList:() PsiJavaToken:LPARENTH('(') PsiJavaToken:RPARENTH(')') PsiReferenceList 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 PsiWhiteSpace(' ') PsiAnonymousClass PsiJavaCodeReferenceElement:Runnable PsiIdentifier:Runnable('Runnable') PsiReferenceParameterList PsiExpressionList PsiJavaToken:LPARENTH('(') PsiJavaToken:RPARENTH(')') PsiWhiteSpace(' ') PsiJavaToken:LBRACE('{') PsiWhiteSpace('\n ') PsiMethod:run PsiModifierList:public PsiKeyword:public('public') PsiTypeParameterList PsiWhiteSpace(' ') PsiTypeElement:void PsiKeyword:void('void') PsiWhiteSpace(' ') PsiIdentifier:run('run') PsiParameterList:() PsiJavaToken:LPARENTH('(') PsiJavaToken:RPARENTH(')') PsiReferenceList PsiWhiteSpace(' ') PsiCodeBlock PsiJavaToken:LBRACE('{') PsiWhiteSpace('\n ') PsiExpressionStatement PsiMethodCallExpression:System.out.println(a) PsiReferenceExpression:System.out.println PsiReferenceExpression:System.out PsiReferenceExpression:System PsiReferenceParameterList PsiIdentifier:System('System') PsiJavaToken:DOT('.') PsiReferenceParameterList PsiIdentifier:out('out') PsiJavaToken:DOT('.') PsiReferenceParameterList PsiIdentifier:println('println') PsiExpressionList PsiJavaToken:LPARENTH('(') PsiReferenceExpression:a PsiReferenceParameterList PsiIdentifier:a('a') PsiJavaToken:RPARENTH(')') PsiJavaToken:SEMICOLON(';') PsiWhiteSpace('\n ') PsiJavaToken:RBRACE('}') PsiWhiteSpace('\n ') PsiJavaToken:RBRACE('}') PsiJavaToken:DOT('.') PsiReferenceParameterList 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('}')