KtFile: callExpressions.kt
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('f')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('call')
        TYPE_ARGUMENT_LIST
          PsiElement(LT)('<')
          TYPE_PROJECTION
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('x')
          PsiElement(GT)('>')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('call')
        TYPE_ARGUMENT_LIST
          PsiElement(LT)('<')
          TYPE_PROJECTION
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('x')
          PsiElement(GT)('>')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('call')
        TYPE_ARGUMENT_LIST
          PsiElement(LT)('<')
          TYPE_PROJECTION
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('x')
          PsiElement(GT)('>')
        PsiWhiteSpace(' ')
        LAMBDA_ARGUMENT
          LAMBDA_EXPRESSION
            FUNCTION_LITERAL
              PsiElement(LBRACE)('{')
              PsiWhiteSpace(' ')
              BLOCK
                <empty list>
              PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      ARRAY_ACCESS_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          CALL_EXPRESSION
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('call')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('x')
              PsiElement(GT)('>')
          PsiElement(COLONCOLON)('::')
          PsiWhiteSpace('\n    ')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('call')
          PsiErrorElement:Type arguments are not allowed
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('x')
              PsiElement(GT)('>')
        INDICES
          PsiElement(LBRACKET)('[')
          PsiErrorElement:Expecting an index element
            <empty list>
          PsiElement(RBRACKET)(']')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('call')
        TYPE_ARGUMENT_LIST
          PsiElement(LT)('<')
          TYPE_PROJECTION
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('x')
          PsiElement(GT)('>')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(QUEST)('?')
      PsiWhiteSpace('\n    ')
      POSTFIX_EXPRESSION
        DOT_QUALIFIED_EXPRESSION
          SAFE_ACCESS_EXPRESSION
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('call')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('x')
                PsiElement(GT)('>')
            PsiElement(SAFE_ACCESS)('?.')
            PsiWhiteSpace('\n    ')
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('call')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('x')
                PsiElement(GT)('>')
          PsiElement(DOT)('.')
          PsiWhiteSpace('\n    ')
          CALL_EXPRESSION
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('call')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('x')
              PsiElement(GT)('>')
        OPERATION_REFERENCE
          PsiElement(PLUSPLUS)('++')
      PsiWhiteSpace('\n    ')
      POSTFIX_EXPRESSION
        CALL_EXPRESSION
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('call')
          TYPE_ARGUMENT_LIST
            PsiElement(LT)('<')
            TYPE_PROJECTION
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('x')
            PsiElement(GT)('>')
        OPERATION_REFERENCE
          PsiElement(MINUSMINUS)('--')
      PsiWhiteSpace('\n    ')
      POSTFIX_EXPRESSION
        CALL_EXPRESSION
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('call')
          TYPE_ARGUMENT_LIST
            PsiElement(LT)('<')
            TYPE_PROJECTION
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('x')
            PsiElement(GT)('>')
        OPERATION_REFERENCE
          PsiElement(EXCLEXCL)('!!')
      PsiWhiteSpace('\n\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('call')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('x')
                PsiElement(GT)('>')
              VALUE_ARGUMENT_LIST
                PsiElement(LPAR)('(')
                PsiElement(RPAR)(')')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('call')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('x')
                PsiElement(GT)('>')
              PsiWhiteSpace(' ')
              LAMBDA_ARGUMENT
                LAMBDA_EXPRESSION
                  FUNCTION_LITERAL
                    PsiElement(LBRACE)('{')
                    PsiWhiteSpace(' ')
                    BLOCK
                      <empty list>
                    PsiElement(RBRACE)('}')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            CALLABLE_REFERENCE_EXPRESSION
              CALL_EXPRESSION
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('call')
                TYPE_ARGUMENT_LIST
                  PsiElement(LT)('<')
                  TYPE_PROJECTION
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('x')
                  PsiElement(GT)('>')
              PsiElement(COLONCOLON)('::')
              REFERENCE_EXPRESSION
                PsiErrorElement:Expecting an identifier
                  <empty list>
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            ARRAY_ACCESS_EXPRESSION
              CALL_EXPRESSION
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('call')
                TYPE_ARGUMENT_LIST
                  PsiElement(LT)('<')
                  TYPE_PROJECTION
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('x')
                  PsiElement(GT)('>')
              INDICES
                PsiElement(LBRACKET)('[')
                PsiErrorElement:Expecting an index element
                  <empty list>
                PsiElement(RBRACKET)(']')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            CALL_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('call')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('x')
                PsiElement(GT)('>')
          PsiErrorElement:Expecting ')'
            PsiElement(QUEST)('?')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            SAFE_ACCESS_EXPRESSION
              CALL_EXPRESSION
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('call')
                TYPE_ARGUMENT_LIST
                  PsiElement(LT)('<')
                  TYPE_PROJECTION
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('x')
                  PsiElement(GT)('>')
              PsiElement(SAFE_ACCESS)('?.')
              PsiErrorElement:Expecting an element
                <empty list>
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            DOT_QUALIFIED_EXPRESSION
              CALL_EXPRESSION
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('call')
                TYPE_ARGUMENT_LIST
                  PsiElement(LT)('<')
                  TYPE_PROJECTION
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('x')
                  PsiElement(GT)('>')
              PsiElement(DOT)('.')
              PsiErrorElement:Expecting an element
                <empty list>
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            POSTFIX_EXPRESSION
              CALL_EXPRESSION
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('call')
                TYPE_ARGUMENT_LIST
                  PsiElement(LT)('<')
                  TYPE_PROJECTION
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('x')
                  PsiElement(GT)('>')
              OPERATION_REFERENCE
                PsiElement(PLUSPLUS)('++')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            POSTFIX_EXPRESSION
              CALL_EXPRESSION
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('call')
                TYPE_ARGUMENT_LIST
                  PsiElement(LT)('<')
                  TYPE_PROJECTION
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('x')
                  PsiElement(GT)('>')
              OPERATION_REFERENCE
                PsiElement(MINUSMINUS)('--')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            POSTFIX_EXPRESSION
              CALL_EXPRESSION
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('call')
                TYPE_ARGUMENT_LIST
                  PsiElement(LT)('<')
                  TYPE_PROJECTION
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('x')
                  PsiElement(GT)('>')
              OPERATION_REFERENCE
                PsiElement(EXCLEXCL)('!!')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')
