PsiJavaFile:AnonymousInSmartCompletion.java
  PsiImportList
    PsiImportStatement
      PsiKeyword:import('import')
      PsiWhiteSpace(' ')
      PsiJavaCodeReferenceElement:pkg.Foo
        PsiJavaCodeReferenceElement:pkg
          PsiIdentifier:pkg('pkg')
          PsiReferenceParameterList
            <empty list>
        PsiJavaToken:DOT('.')
        PsiIdentifier:Foo('Foo')
        PsiReferenceParameterList
          <empty list>
      PsiJavaToken:SEMICOLON(';')
  PsiWhiteSpace('\n\n')
  PsiClass:Bar
    PsiModifierList:
      <empty list>
    PsiKeyword:class('class')
    PsiWhiteSpace(' ')
    PsiIdentifier:Bar('Bar')
    PsiTypeParameterList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiWhiteSpace(' ')
    PsiJavaToken:LBRACE('{')
    PsiWhiteSpace('\n\n  ')
    PsiMethod:foo
      PsiModifierList:public
        PsiKeyword:public('public')
      PsiTypeParameterList
        <empty list>
      PsiWhiteSpace(' ')
      PsiTypeElement:void
        PsiKeyword:void('void')
      PsiWhiteSpace(' ')
      PsiIdentifier:foo('foo')
      PsiParameterList:()
        PsiJavaToken:LPARENTH('(')
        PsiJavaToken:RPARENTH(')')
      PsiReferenceList
        <empty list>
      PsiWhiteSpace(' ')
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiWhiteSpace('\n    ')
        PsiExpressionStatement
          PsiNewExpression:new Foo(hash
#) {}
            PsiKeyword:new('new')
            PsiReferenceParameterList
              <empty list>
            PsiWhiteSpace(' ')
            PsiAnonymousClass
              PsiJavaCodeReferenceElement:Foo
                PsiIdentifier:Foo('Foo')
                PsiReferenceParameterList
                  <empty list>
              PsiExpressionList
                PsiJavaToken:LPARENTH('(')
                PsiReferenceExpression:hash
                  PsiReferenceParameterList
                    <empty list>
                  PsiIdentifier:hash('hash')
                PsiErrorElement:',' or ')' expected
                  <empty list>
                PsiExpression(empty)
                  <empty list>
                PsiWhiteSpace('\n')
                PsiElement(BAD_CHARACTER)('#')
                PsiJavaToken:RPARENTH(')')
              PsiWhiteSpace(' ')
              PsiJavaToken:LBRACE('{')
              PsiJavaToken:RBRACE('}')
          PsiJavaToken:SEMICOLON(';')
        PsiWhiteSpace('\n\n')
        PsiExpressionStatement
          PsiNewExpression:new Foo(hash
#, bar) {}
            PsiKeyword:new('new')
            PsiReferenceParameterList
              <empty list>
            PsiWhiteSpace(' ')
            PsiAnonymousClass
              PsiJavaCodeReferenceElement:Foo
                PsiIdentifier:Foo('Foo')
                PsiReferenceParameterList
                  <empty list>
              PsiExpressionList
                PsiJavaToken:LPARENTH('(')
                PsiReferenceExpression:hash
                  PsiReferenceParameterList
                    <empty list>
                  PsiIdentifier:hash('hash')
                PsiErrorElement:',' or ')' expected
                  <empty list>
                PsiExpression(empty)
                  <empty list>
                PsiWhiteSpace('\n')
                PsiElement(BAD_CHARACTER)('#')
                PsiJavaToken:COMMA(',')
                PsiWhiteSpace(' ')
                PsiReferenceExpression:bar
                  PsiReferenceParameterList
                    <empty list>
                  PsiIdentifier:bar('bar')
                PsiJavaToken:RPARENTH(')')
              PsiWhiteSpace(' ')
              PsiJavaToken:LBRACE('{')
              PsiJavaToken:RBRACE('}')
          PsiJavaToken:SEMICOLON(';')
        PsiWhiteSpace('\n \n  ')
        PsiExpressionStatement
          PsiNewExpression:new Foo(hash
#x) {}
            PsiKeyword:new('new')
            PsiReferenceParameterList
              <empty list>
            PsiWhiteSpace(' ')
            PsiAnonymousClass
              PsiJavaCodeReferenceElement:Foo
                PsiIdentifier:Foo('Foo')
                PsiReferenceParameterList
                  <empty list>
              PsiExpressionList
                PsiJavaToken:LPARENTH('(')
                PsiReferenceExpression:hash
                  PsiReferenceParameterList
                    <empty list>
                  PsiIdentifier:hash('hash')
                PsiErrorElement:',' or ')' expected
                  <empty list>
                PsiExpression(empty)
                  <empty list>
                PsiWhiteSpace('\n')
                PsiElement(BAD_CHARACTER)('#')
                PsiErrorElement:',' or ')' expected
                  <empty list>
                PsiExpression(empty)
                  <empty list>
                PsiReferenceExpression:x
                  PsiReferenceParameterList
                    <empty list>
                  PsiIdentifier:x('x')
                PsiJavaToken:RPARENTH(')')
              PsiWhiteSpace(' ')
              PsiJavaToken:LBRACE('{')
              PsiJavaToken:RBRACE('}')
          PsiJavaToken:SEMICOLON(';')
        PsiWhiteSpace('\n\n')
        PsiJavaToken:RBRACE('}')
    PsiWhiteSpace('\n')
    PsiJavaToken:RBRACE('}')