JetFile: Properties.kt
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    DOT_QUALIFIED_EXPRESSION
      DOT_QUALIFIED_EXPRESSION
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('bar')
        PsiElement(DOT)('.')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('foo')
      PsiElement(DOT)('.')
      REFERENCE_EXPRESSION
        PsiElement(IDENTIFIER)('bar')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
  PsiWhiteSpace('\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiErrorElement:Annotations are not allowed in this position
      ANNOTATION
        PsiElement(AT)('@')
        PsiElement(LBRACKET)('[')
        ANNOTATION_ENTRY
          CONSTRUCTOR_CALLEE
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
        PsiElement(RBRACKET)(']')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
  PsiWhiteSpace('\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('foo')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('bar')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('T')
  PsiWhiteSpace('\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiErrorElement:Annotations are not allowed in this position
      ANNOTATION
        PsiElement(AT)('@')
        PsiElement(LBRACKET)('[')
        ANNOTATION_ENTRY
          CONSTRUCTOR_CALLEE
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('a')
        PsiElement(RBRACKET)(']')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    REFERENCE_EXPRESSION
      PsiElement(IDENTIFIER)('bar')
  PsiWhiteSpace('\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('foo')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('bar')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      BLOCK
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(set)('set')
      PsiElement(LPAR)('(')
      VALUE_PARAMETER_LIST
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('sad')
      PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      PsiElement(EQ)('=')
      PsiWhiteSpace(' ')
      REFERENCE_EXPRESSION
        PsiElement(IDENTIFIER)('foo')
  PsiWhiteSpace('\n\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace(' ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
  PsiWhiteSpace('\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace(' ')
    PROPERTY_ACCESSOR
      PsiElement(set)('set')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(var)('var')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace('\n  ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
    PsiWhiteSpace('\n  ')
    PROPERTY_ACCESSOR
      MODIFIER_LIST
        PsiElement(private)('private')
      PsiWhiteSpace(' ')
      PsiElement(set)('set')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('foo')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('bar')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      BLOCK
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(set)('set')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('foo')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('bar')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(set)('set')
      PsiElement(LPAR)('(')
      VALUE_PARAMETER_LIST
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('sad')
      PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      PsiElement(EQ)('=')
      PsiWhiteSpace(' ')
      REFERENCE_EXPRESSION
        PsiElement(IDENTIFIER)('foo')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    INTEGER_CONSTANT
      PsiElement(INTEGER_LITERAL)('5')
    PsiElement(SEMICOLON)(';')
    PsiWhiteSpace(' ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
  PsiWhiteSpace('\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    INTEGER_CONSTANT
      PsiElement(INTEGER_LITERAL)('1')
    PsiElement(SEMICOLON)(';')
    PsiWhiteSpace(' ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
    PsiWhiteSpace(' ')
    PROPERTY_ACCESSOR
      PsiElement(set)('set')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(var)('var')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    INTEGER_CONSTANT
      PsiElement(INTEGER_LITERAL)('5')
    PsiWhiteSpace('\n  ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
    PsiWhiteSpace('\n  ')
    PROPERTY_ACCESSOR
      MODIFIER_LIST
        PsiElement(private)('private')
      PsiWhiteSpace(' ')
      PsiElement(set)('set')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('foo')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('bar')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    INTEGER_CONSTANT
      PsiElement(INTEGER_LITERAL)('5')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      BLOCK
        PsiElement(LBRACE)('{')
        PsiElement(RBRACE)('}')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(set)('set')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('foo')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('bar')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    INTEGER_CONSTANT
      PsiElement(INTEGER_LITERAL)('5')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
    PsiWhiteSpace('\n   ')
    PROPERTY_ACCESSOR
      PsiElement(set)('set')
      PsiElement(LPAR)('(')
      VALUE_PARAMETER_LIST
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('sad')
      PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      PsiElement(EQ)('=')
      PsiWhiteSpace(' ')
      REFERENCE_EXPRESSION
        PsiElement(IDENTIFIER)('foo')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('foo')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n  ')
      PROPERTY
        PsiElement(val)('val')
        PsiWhiteSpace(' ')
        PsiElement(IDENTIFIER)('foo')
        PsiWhiteSpace(' ')
        PsiElement(EQ)('=')
        PsiWhiteSpace(' ')
        INTEGER_CONSTANT
          PsiElement(INTEGER_LITERAL)('5')
      PsiWhiteSpace('\n  ')
      BINARY_EXPRESSION
        CALL_EXPRESSION
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('get')
          VALUE_ARGUMENT_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        OPERATION_REFERENCE
          PsiElement(EQ)('=')
        PsiWhiteSpace(' ')
        INTEGER_CONSTANT
          PsiElement(INTEGER_LITERAL)('5')
      PsiWhiteSpace('\n  ')
      BINARY_EXPRESSION
        CALL_EXPRESSION
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('set')
          VALUE_ARGUMENT_LIST
            PsiElement(LPAR)('(')
            VALUE_ARGUMENT
              BINARY_WITH_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('int')
                PsiWhiteSpace(' ')
                OPERATION_REFERENCE
                  PsiElement(COLON)(':')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('x')
            PsiElement(RPAR)(')')
        PsiWhiteSpace(' ')
        OPERATION_REFERENCE
          PsiElement(EQ)('=')
        PsiWhiteSpace(' ')
        INTEGER_CONSTANT
          PsiElement(INTEGER_LITERAL)('5')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('IList')
        TYPE_ARGUMENT_LIST
          PsiElement(LT)('<')
          TYPE_PROJECTION
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('T')
          PsiElement(GT)('>')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('lastIndex')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('Int')
    PsiWhiteSpace('\n  ')
    PROPERTY_ACCESSOR
      PsiElement(get)('get')
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      PsiElement(EQ)('=')
      PsiWhiteSpace(' ')
      BINARY_EXPRESSION
        DOT_QUALIFIED_EXPRESSION
          THIS_EXPRESSION
            REFERENCE_EXPRESSION
              PsiElement(this)('this')
          PsiElement(DOT)('.')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('size')
        PsiWhiteSpace(' ')
        OPERATION_REFERENCE
          PsiElement(MINUS)('-')
        PsiWhiteSpace(' ')
        INTEGER_CONSTANT
          PsiElement(INTEGER_LITERAL)('1')
  PsiWhiteSpace('\n\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      NULLABLE_TYPE
        USER_TYPE
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('Int')
        PsiElement(QUEST)('?')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('opt')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('Int')
  PsiWhiteSpace('\n')
  PROPERTY
    PsiElement(val)('val')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      NULLABLE_TYPE
        USER_TYPE
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('Int')
        PsiElement(QUEST)('?')
    PsiWhiteSpace(' ')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('opt')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('Int')
