KtFile: WhenWithSubjectVariable_ERR.kt
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('test')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        PROPERTY
          PsiElement(val)('val')
          PsiErrorElement:Expecting property name or receiver type
            PsiElement(RPAR)(')')
        PsiErrorElement:Expecting ')'
          <empty list>
        PsiWhiteSpace(' ')
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('x1')
        PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('x2')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiErrorElement:Expecting an expression
            <empty list>
        PsiWhiteSpace(' ')
        PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('x3')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            PsiErrorElement:Type expected
              <empty list>
        PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('x')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          INTEGER_CONSTANT
            PsiElement(INTEGER_LITERAL)('1')
        PsiErrorElement:Expecting ')'
          <empty list>
      PsiElement(SEMICOLON)(';')
      PsiWhiteSpace(' ')
      INTEGER_CONSTANT
        PsiElement(INTEGER_LITERAL)('42')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(RPAR)(')')
      PsiWhiteSpace('\n\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('foo')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          BLOCK
            PsiElement(LBRACE)('{')
            PsiElement(RBRACE)('}')
        PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        PsiErrorElement:Expecting an expression
          <empty list>
      CLASS
        PsiElement(class)('class')
        PsiWhiteSpace(' ')
        PsiElement(IDENTIFIER)('C')
        PsiWhiteSpace(' ')
        CLASS_BODY
          PsiElement(LBRACE)('{')
          PsiElement(RBRACE)('}')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      LAMBDA_EXPRESSION
        FUNCTION_LITERAL
          PsiElement(LBRACE)('{')
          BLOCK
            <empty list>
          PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        PsiErrorElement:Expecting an expression
          <empty list>
      CLASS
        PsiElement(interface)('interface')
        PsiWhiteSpace(' ')
        PsiElement(IDENTIFIER)('I')
        PsiWhiteSpace(' ')
        CLASS_BODY
          PsiElement(LBRACE)('{')
          PsiElement(RBRACE)('}')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      LAMBDA_EXPRESSION
        FUNCTION_LITERAL
          PsiElement(LBRACE)('{')
          BLOCK
            <empty list>
          PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        OBJECT_LITERAL
          OBJECT_DECLARATION
            PsiElement(object)('object')
            PsiWhiteSpace(' ')
            PsiErrorElement:An object expression cannot bind a name
              PsiElement(IDENTIFIER)('Obj')
            PsiWhiteSpace(' ')
            CLASS_BODY
              PsiElement(LBRACE)('{')
              PsiElement(RBRACE)('}')
        PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n    ')
      WHEN
        PsiElement(when)('when')
        PsiWhiteSpace(' ')
        PsiElement(LPAR)('(')
        PsiErrorElement:Expecting an expression
          <empty list>
      TYPEALIAS
        PsiElement(typealias)('typealias')
        PsiWhiteSpace(' ')
        PsiElement(IDENTIFIER)('TA')
        PsiWhiteSpace(' ')
        PsiElement(EQ)('=')
        PsiWhiteSpace(' ')
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('T')
      PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
        PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      LAMBDA_EXPRESSION
        FUNCTION_LITERAL
          PsiElement(LBRACE)('{')
          BLOCK
            <empty list>
          PsiElement(RBRACE)('}')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')