JetFile: lambda.kt
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('bar')
        PsiWhiteSpace(' ')
        LAMBDA_ARGUMENT
          ANNOTATED_EXPRESSION
            ANNOTATION_ENTRY
              PsiElement(AT)('@')
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('ann')
            PsiWhiteSpace(' ')
            LAMBDA_EXPRESSION
              FUNCTION_LITERAL
                PsiElement(LBRACE)('{')
                PsiWhiteSpace('\n        ')
                BLOCK
                  CALL_EXPRESSION
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('print')
                    VALUE_ARGUMENT_LIST
                      PsiElement(LPAR)('(')
                      VALUE_ARGUMENT
                        INTEGER_CONSTANT
                          PsiElement(INTEGER_LITERAL)('1')
                      PsiElement(RPAR)(')')
                PsiWhiteSpace('\n    ')
                PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n    ')
      CALL_EXPRESSION
        ARRAY_ACCESS_EXPRESSION
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('bar')
          PsiWhiteSpace(' ')
          INDICES
            PsiElement(LBRACKET)('[')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('ann')
            PsiElement(RBRACKET)(']')
        PsiWhiteSpace(' ')
        LAMBDA_ARGUMENT
          LAMBDA_EXPRESSION
            FUNCTION_LITERAL
              PsiElement(LBRACE)('{')
              PsiWhiteSpace(' ')
              BLOCK
                PsiComment(EOL_COMMENT)('// parsed as array access')
                PsiWhiteSpace('\n        ')
                CALL_EXPRESSION
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('print')
                  VALUE_ARGUMENT_LIST
                    PsiElement(LPAR)('(')
                    VALUE_ARGUMENT
                      INTEGER_CONSTANT
                        PsiElement(INTEGER_LITERAL)('2')
                    PsiElement(RPAR)(')')
              PsiWhiteSpace('\n    ')
              PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('bar')
        PsiWhiteSpace(' ')
        LAMBDA_ARGUMENT
          ANNOTATED_EXPRESSION
            ANNOTATION_ENTRY
              PsiElement(AT)('@')
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('ann')
            PsiWhiteSpace(' ')
            ANNOTATION
              PsiElement(AT)('@')
              PsiElement(LBRACKET)('[')
              ANNOTATION_ENTRY
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('ann')
              PsiElement(RBRACKET)(']')
            PsiWhiteSpace(' ')
            LAMBDA_EXPRESSION
              FUNCTION_LITERAL
                PsiElement(LBRACE)('{')
                PsiWhiteSpace('\n        ')
                BLOCK
                  CALL_EXPRESSION
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('print')
                    VALUE_ARGUMENT_LIST
                      PsiElement(LPAR)('(')
                      VALUE_ARGUMENT
                        INTEGER_CONSTANT
                          PsiElement(INTEGER_LITERAL)('2')
                      PsiElement(RPAR)(')')
                PsiWhiteSpace('\n    ')
                PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('bar')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        LAMBDA_ARGUMENT
          ANNOTATED_EXPRESSION
            ANNOTATION_ENTRY
              PsiElement(AT)('@')
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('ann')
            PsiWhiteSpace(' ')
            LAMBDA_EXPRESSION
              FUNCTION_LITERAL
                PsiElement(LBRACE)('{')
                PsiWhiteSpace('\n        ')
                BLOCK
                  CALL_EXPRESSION
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('print')
                    VALUE_ARGUMENT_LIST
                      PsiElement(LPAR)('(')
                      VALUE_ARGUMENT
                        INTEGER_CONSTANT
                          PsiElement(INTEGER_LITERAL)('1')
                      PsiElement(RPAR)(')')
                PsiWhiteSpace('\n    ')
                PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('bar')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        LAMBDA_ARGUMENT
          ANNOTATED_EXPRESSION
            ANNOTATION
              PsiElement(AT)('@')
              PsiElement(LBRACKET)('[')
              ANNOTATION_ENTRY
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('ann')
              PsiElement(RBRACKET)(']')
            PsiWhiteSpace(' ')
            LAMBDA_EXPRESSION
              FUNCTION_LITERAL
                PsiElement(LBRACE)('{')
                PsiWhiteSpace('\n        ')
                BLOCK
                  CALL_EXPRESSION
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('print')
                    VALUE_ARGUMENT_LIST
                      PsiElement(LPAR)('(')
                      VALUE_ARGUMENT
                        INTEGER_CONSTANT
                          PsiElement(INTEGER_LITERAL)('2')
                      PsiElement(RPAR)(')')
                PsiWhiteSpace('\n    ')
                PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('bar')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        LAMBDA_ARGUMENT
          ANNOTATED_EXPRESSION
            ANNOTATION_ENTRY
              PsiElement(AT)('@')
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('ann')
            PsiWhiteSpace(' ')
            ANNOTATION
              PsiElement(AT)('@')
              PsiElement(LBRACKET)('[')
              ANNOTATION_ENTRY
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('ann')
              PsiElement(RBRACKET)(']')
            PsiWhiteSpace(' ')
            LAMBDA_EXPRESSION
              FUNCTION_LITERAL
                PsiElement(LBRACE)('{')
                PsiWhiteSpace('\n        ')
                BLOCK
                  CALL_EXPRESSION
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('print')
                    VALUE_ARGUMENT_LIST
                      PsiElement(LPAR)('(')
                      VALUE_ARGUMENT
                        INTEGER_CONSTANT
                          PsiElement(INTEGER_LITERAL)('2')
                      PsiElement(RPAR)(')')
                PsiWhiteSpace('\n    ')
                PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('bar')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            ANNOTATED_EXPRESSION
              ANNOTATION_ENTRY
                PsiElement(AT)('@')
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('ann')
              PsiWhiteSpace(' ')
              LAMBDA_EXPRESSION
                FUNCTION_LITERAL
                  PsiElement(LBRACE)('{')
                  PsiWhiteSpace('\n        ')
                  VALUE_PARAMETER_LIST
                    VALUE_PARAMETER
                      PsiElement(IDENTIFIER)('param')
                  PsiWhiteSpace(' ')
                  PsiElement(ARROW)('->')
                  PsiWhiteSpace(' ')
                  BLOCK
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('param')
                  PsiWhiteSpace('\n    ')
                  PsiElement(RBRACE)('}')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n\n    ')
      IF
        PsiElement(if)('if')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        CONDITION
          BOOLEAN_CONSTANT
            PsiElement(true)('true')
        PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        THEN
          ANNOTATED_EXPRESSION
            ANNOTATION_ENTRY
              PsiElement(AT)('@')
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('ann')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n    ')
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n    ')
        PsiElement(else)('else')
        PsiWhiteSpace(' ')
        ELSE
          ANNOTATED_EXPRESSION
            ANNOTATION
              PsiElement(AT)('@')
              PsiElement(LBRACKET)('[')
              ANNOTATION_ENTRY
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('ann')
              PsiElement(RBRACKET)(']')
            PsiWhiteSpace(' ')
            ANNOTATION_ENTRY
              PsiElement(AT)('@')
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('ann')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n    ')
              PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n\n    ')
      BINARY_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('foo')
        PsiWhiteSpace(' ')
        OPERATION_REFERENCE
          PsiElement(IDENTIFIER)('label')
        ANNOTATED_EXPRESSION
          PsiErrorElement:Expected annotation identifier after '@'
            PsiElement(AT)('@')
          PsiWhiteSpace(' ')
          ANNOTATION_ENTRY
            PsiElement(AT)('@')
            CONSTRUCTOR_CALLEE
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('ann')
          PsiWhiteSpace(' ')
          LAMBDA_EXPRESSION
            FUNCTION_LITERAL
              PsiElement(LBRACE)('{')
              PsiWhiteSpace('\n\n    ')
              BLOCK
                <empty list>
              PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')
