JetFile: DoubleColon.kt
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('ok')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('A')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
      PsiWhiteSpace('\n    ')
      BINARY_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('A')
          PsiElement(COLONCOLON)('::')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('a')
        PsiWhiteSpace(' ')
        OPERATION_REFERENCE
          PsiElement(PLUS)('+')
        PsiWhiteSpace(' ')
        INTEGER_CONSTANT
          PsiElement(INTEGER_LITERAL)('1')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('Map')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('String')
              PsiElement(COMMA)(',')
              PsiWhiteSpace(' ')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('Int')
              PsiElement(GT)('>')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('size')
      PsiWhiteSpace('\n\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
      PsiWhiteSpace('\n\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
            PsiElement(DOT)('.')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('b')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('c')
      PsiWhiteSpace('\n    ')
      DOT_QUALIFIED_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
          PsiElement(COLONCOLON)('::')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('b')
        PsiElement(DOT)('.')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('c')
      PsiWhiteSpace('\n    ')
      DOT_QUALIFIED_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('b')
          PsiElement(COLONCOLON)('::')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('c')
        PsiElement(DOT)('.')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('d')
      PsiWhiteSpace('\n\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('a')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('b')
              PsiElement(GT)('>')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('c')
      PsiWhiteSpace('\n    ')
      DOT_QUALIFIED_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('b')
                PsiElement(GT)('>')
          PsiElement(COLONCOLON)('::')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('c')
        PsiElement(DOT)('.')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('d')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
            PsiElement(DOT)('.')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('b')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('c')
              PsiElement(GT)('>')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('d')
      PsiWhiteSpace('\n    ')
      DOT_QUALIFIED_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('b')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('c')
                PsiElement(GT)('>')
          PsiElement(COLONCOLON)('::')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('d')
        PsiElement(DOT)('.')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('e')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
            PsiElement(DOT)('.')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('b')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('c')
                    PsiElement(DOT)('.')
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('d')
              PsiElement(GT)('>')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('e')
      PsiWhiteSpace('\n    ')
      DOT_QUALIFIED_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('b')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('c')
                      PsiElement(DOT)('.')
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('d')
                PsiElement(GT)('>')
          PsiElement(COLONCOLON)('::')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('e')
        PsiElement(DOT)('.')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('d')
      PsiWhiteSpace('\n    ')
      DOT_QUALIFIED_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('b')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('c')
                      PsiElement(DOT)('.')
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('d')
                      TYPE_ARGUMENT_LIST
                        PsiElement(LT)('<')
                        TYPE_PROJECTION
                          TYPE_REFERENCE
                            USER_TYPE
                              USER_TYPE
                                REFERENCE_EXPRESSION
                                  PsiElement(IDENTIFIER)('e')
                              PsiElement(DOT)('.')
                              REFERENCE_EXPRESSION
                                PsiElement(IDENTIFIER)('f')
                        PsiElement(GT)('>')
                PsiElement(GT)('>')
          PsiElement(COLONCOLON)('::')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('g')
        PsiElement(DOT)('.')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('h')
      PsiWhiteSpace('\n\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              USER_TYPE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('a')
                  PsiElement(DOT)('.')
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('b')
                PsiElement(DOT)('.')
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('c')
                TYPE_ARGUMENT_LIST
                  PsiElement(LT)('<')
                  TYPE_PROJECTION
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('d')
                  PsiElement(GT)('>')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('e')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('f')
                PsiElement(GT)('>')
            PsiElement(DOT)('.')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('g')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('h')
      PsiWhiteSpace('\n\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('a')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('b')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(LPAR)('(')
        PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALL_EXPRESSION
        PARENTHESIZED
          PsiElement(LPAR)('(')
          CALLABLE_REFERENCE_EXPRESSION
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
            PsiElement(COLONCOLON)('::')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('b')
          PsiElement(RPAR)(')')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      DOT_QUALIFIED_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        PsiElement(DOT)('.')
        CALL_EXPRESSION
          PARENTHESIZED
            PsiElement(LPAR)('(')
            CALLABLE_REFERENCE_EXPRESSION
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('b')
              PsiElement(COLONCOLON)('::')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('c')
            PsiElement(RPAR)(')')
          VALUE_ARGUMENT_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
            PsiElement(DOT)('.')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('b')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('c')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(LPAR)('(')
        PsiElement(RPAR)(')')
      PsiWhiteSpace('\n\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          NULLABLE_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
            PsiElement(QUEST)('?')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('b')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          NULLABLE_TYPE
            NULLABLE_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
              PsiElement(QUEST)('?')
            PsiElement(QUEST)('?')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('b')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          NULLABLE_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('b')
                PsiElement(GT)('>')
            PsiElement(QUEST)('?')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('c')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          NULLABLE_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
              TYPE_ARGUMENT_LIST
                PsiElement(LT)('<')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    NULLABLE_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('b')
                      PsiElement(QUEST)('?')
                PsiElement(COMMA)(',')
                TYPE_PROJECTION
                  TYPE_REFERENCE
                    NULLABLE_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('c')
                      PsiElement(QUEST)('?')
                PsiElement(GT)('>')
            PsiElement(QUEST)('?')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('d')
      PsiWhiteSpace('\n\n    ')
      CLASS_LITERAL_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('A')
        PsiElement(COLONCOLON)('::')
        PsiElement(class)('class')
      PsiWhiteSpace('\n    ')
      CLASS_LITERAL_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('a')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('b')
              PsiElement(COMMA)(',')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('c')
              PsiElement(GT)('>')
        PsiElement(COLONCOLON)('::')
        PsiElement(class)('class')
      PsiWhiteSpace('\n    ')
      CLASS_LITERAL_EXPRESSION
        PsiElement(COLONCOLON)('::')
        PsiElement(class)('class')
      PsiWhiteSpace('\n    ')
      BINARY_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
        PsiWhiteSpace(' ')
        OPERATION_REFERENCE
          PsiElement(IDENTIFIER)('b')
        PsiWhiteSpace(' ')
        CLASS_LITERAL_EXPRESSION
          PsiElement(COLONCOLON)('::')
          PsiElement(class)('class')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('err0')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      DOT_QUALIFIED_EXPRESSION
        CALLABLE_REFERENCE_EXPRESSION
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('a')
          PsiElement(COLONCOLON)('::')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('b')
        PsiElement(DOT)('.')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('c')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(COLONCOLON)('::')
        PsiElement(IDENTIFIER)('d')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('err1')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('A')
        PsiElement(COLONCOLON)('::')
        PsiWhiteSpace('\n')
        REFERENCE_EXPRESSION
          PsiErrorElement:Expecting an identifier
            <empty list>
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('err2')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('A')
        PsiElement(COLONCOLON)('::')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('a')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(COLONCOLON)('::')
        PsiElement(IDENTIFIER)('b')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('err3')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      CALLABLE_REFERENCE_EXPRESSION
        PsiElement(COLONCOLON)('::')
        PsiWhiteSpace('\n')
        REFERENCE_EXPRESSION
          PsiErrorElement:Expecting an identifier
            <empty list>
      PsiElement(RBRACE)('}')
