FILE /safeAssignment.kt
  CLASS CLASS C
    $this: VALUE_PARAMETER this@C: C
    CONSTRUCTOR public constructor C(x: kotlin.Int)
      VALUE_PARAMETER value-parameter x: kotlin.Int
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='C'
    PROPERTY public final var x: kotlin.Int
      FIELD PROPERTY_BACKING_FIELD public final var x: kotlin.Int
        EXPRESSION_BODY
          GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-x>(): kotlin.Int
        $this: VALUE_PARAMETER this@C: C
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): Int'
            GET_FIELD 'x: Int' type=kotlin.Int origin=null
              receiver: GET_VAR 'this@C: C' type=C origin=null
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <set-x>(<set-?>: kotlin.Int): kotlin.Unit
        $this: VALUE_PARAMETER this@C: C
        VALUE_PARAMETER value-parameter <set-?>: kotlin.Int
        BLOCK_BODY
          SET_FIELD 'x: Int' type=kotlin.Unit origin=null
            receiver: GET_VAR 'this@C: C' type=C origin=null
            value: GET_VAR 'value-parameter <set-?>: Int' type=kotlin.Int origin=null
    FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean
      $this: VALUE_PARAMETER this@Any: Any
      VALUE_PARAMETER value-parameter other: kotlin.Any?
    FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int
      $this: VALUE_PARAMETER this@Any: Any
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
      $this: VALUE_PARAMETER this@Any: Any
  FUN public fun test(nc: C?): kotlin.Unit
    VALUE_PARAMETER value-parameter nc: C?
    BLOCK_BODY
      BLOCK type=kotlin.Unit origin=SAFE_CALL
        VAR IR_TEMPORARY_VARIABLE val tmp0_safe_receiver: C?
          GET_VAR 'value-parameter nc: C?' type=C? origin=null
        WHEN type=kotlin.Unit origin=SAFE_CALL
          BRANCH
            if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ
              arg0: GET_VAR 'tmp0_safe_receiver: C?' type=C? origin=null
              arg1: CONST Null type=kotlin.Nothing? value='null'
            then: TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
              CONST Null type=kotlin.Nothing? value='null'
          BRANCH
            if: CONST Boolean type=kotlin.Boolean value='true'
            then: CALL '<set-x>(Int): Unit' type=kotlin.Unit origin=EQ
              $this: GET_VAR 'tmp0_safe_receiver: C?' type=C? origin=null
              <set-?>: CONST Int type=kotlin.Int value='42'

