================================================================================
This Assignment
================================================================================

class Foo(){
  var foo = null
  constructor(bar:Int) {
    this.foo = bar
  }
}

--------------------------------------------------------------------------------

(source_file
  (class_declaration
    (type_identifier)
    (primary_constructor)
    (class_body
      (property_declaration
        (binding_pattern_kind)
        (variable_declaration
          (simple_identifier))
        (null_literal))
      (secondary_constructor
        (function_value_parameters
          (parameter
            (simple_identifier)
            (user_type
              (type_identifier))))
        (statements
          (assignment
            (directly_assignable_expression
              (this_expression)
              (navigation_suffix
                (simple_identifier)))
            (simple_identifier)))))))

================================================================================
Index Assignment
================================================================================

fun main(){
  var listOfPets:Array<String>
  listOfPets[0] = "foo"
}

--------------------------------------------------------------------------------

(source_file
  (function_declaration
    (simple_identifier)
    (function_value_parameters)
    (function_body
      (statements
        (property_declaration
          (binding_pattern_kind)
          (variable_declaration
            (simple_identifier)
            (user_type
              (type_identifier)
              (type_arguments
                (type_projection
                  (user_type
                    (type_identifier)))))))
        (assignment
          (directly_assignable_expression
            (simple_identifier)
            (indexing_suffix
              (integer_literal)))
          (string_literal
            (string_content)))))))

================================================================================
Call assignment
================================================================================

fun main(){
  Foo(context).elem = var1
}

--------------------------------------------------------------------------------

(source_file
  (function_declaration
    (simple_identifier)
    (function_value_parameters)
    (function_body
      (statements
        (assignment
          (directly_assignable_expression
            (call_expression
              (simple_identifier)
              (call_suffix
                (value_arguments
                  (value_argument
                    (simple_identifier)))))
            (navigation_suffix
              (simple_identifier)))
          (simple_identifier))))))
