FILE /safeCallWithIncrementDecrement.kt
  CLASS CLASS C
    CONSTRUCTOR public constructor C()
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='C'
  PROPERTY public var test.C?.p: kotlin.Int
    FUN public fun test.C?.<get-p>(): kotlin.Int
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='<get-p>() on C?: Int'
          CONST Int type=kotlin.Int value='42'
    FUN public fun test.C?.<set-p>(value: kotlin.Int): kotlin.Unit
      BLOCK_BODY
  FUN public operator fun kotlin.Int?.inc(): kotlin.Int?
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='inc() on Int?: Int?'
        BLOCK type=kotlin.Int? operator=SAFE_CALL
          VAR val tmp0_safe_receiver: kotlin.Int?
            $RECEIVER of 'inc() on Int?: Int?' type=kotlin.Int?
          WHEN type=kotlin.Int? operator=SAFE_CALL
            if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean operator=EQEQ
              arg0: GET_VAR 'tmp0_safe_receiver: Int?' type=kotlin.Int? operator=null
              arg1: CONST Null type=kotlin.Nothing? value='null'
            then: CONST Null type=kotlin.Nothing? value='null'
            else: CALL 'inc(): Int' type=kotlin.Int operator=null
              $this: GET_VAR 'tmp0_safe_receiver: Int?' type=kotlin.Int? operator=null
  FUN public operator fun kotlin.Int?.get(index: kotlin.Int): kotlin.Int
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='get(Int) on Int?: Int'
        CONST Int type=kotlin.Int value='42'
  FUN public operator fun kotlin.Int?.set(index: kotlin.Int, value: kotlin.Int): kotlin.Unit
    BLOCK_BODY
  FUN public fun testProperty(nc: test.C?): kotlin.Unit
    BLOCK_BODY
      BLOCK type=kotlin.Int? operator=SAFE_CALL
        VAR val tmp0_safe_receiver: test.C?
          GET_VAR 'value-parameter nc: C?' type=test.C? operator=null
        WHEN type=kotlin.Int? operator=SAFE_CALL
          if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean operator=EQEQ
            arg0: GET_VAR 'tmp0_safe_receiver: C?' type=test.C? operator=null
            arg1: CONST Null type=kotlin.Nothing? value='null'
          then: CONST Null type=kotlin.Nothing? value='null'
          else: BLOCK type=kotlin.Int operator=POSTFIX_INCR
            VAR val tmp1_this: test.C?
              GET_VAR 'tmp0_safe_receiver: C?' type=test.C? operator=null
            BLOCK type=kotlin.Int operator=POSTFIX_INCR
              VAR val tmp2: kotlin.Int
                CALL '<get-p>() on C?: Int' type=kotlin.Int operator=POSTFIX_INCR
                  $this: GET_VAR 'tmp1_this: C?' type=test.C? operator=null
              CALL '<set-p>(Int) on C?: Unit' type=kotlin.Unit operator=POSTFIX_INCR
                $this: GET_VAR 'tmp1_this: C?' type=test.C? operator=null
                value: CALL 'inc() on Int?: Int?' type=kotlin.Int? operator=POSTFIX_INCR
                  $receiver: GET_VAR 'tmp2: Int' type=kotlin.Int operator=null
              GET_VAR 'tmp2: Int' type=kotlin.Int operator=null
  FUN public fun testArrayAccess(nc: test.C?): kotlin.Unit
    BLOCK_BODY
      BLOCK type=kotlin.Int operator=POSTFIX_INCR
        VAR val tmp3_array: kotlin.Int?
          BLOCK type=kotlin.Int? operator=SAFE_CALL
            VAR val tmp0_safe_receiver: test.C?
              GET_VAR 'value-parameter nc: C?' type=test.C? operator=null
            WHEN type=kotlin.Int? operator=SAFE_CALL
              if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean operator=EQEQ
                arg0: GET_VAR 'tmp0_safe_receiver: C?' type=test.C? operator=null
                arg1: CONST Null type=kotlin.Nothing? value='null'
              then: CONST Null type=kotlin.Nothing? value='null'
              else: CALL '<get-p>() on C?: Int' type=kotlin.Int operator=GET_PROPERTY
                $this: GET_VAR 'tmp0_safe_receiver: C?' type=test.C? operator=null
        VAR val tmp4_index0: kotlin.Int
          CONST Int type=kotlin.Int value='0'
        VAR val tmp5: kotlin.Int
          CALL 'get(Int) on Int?: Int' type=kotlin.Int operator=POSTFIX_INCR
            $receiver: GET_VAR 'tmp3_array: Int?' type=kotlin.Int? operator=null
            index: GET_VAR 'tmp4_index0: Int' type=kotlin.Int operator=null
        CALL 'set(Int, Int) on Int?: Unit' type=kotlin.Unit operator=POSTFIX_INCR
          $receiver: GET_VAR 'tmp3_array: Int?' type=kotlin.Int? operator=null
          index: GET_VAR 'tmp4_index0: Int' type=kotlin.Int operator=null
          value: CALL 'inc(): Int' type=kotlin.Int operator=POSTFIX_INCR
            $this: GET_VAR 'tmp5: Int' type=kotlin.Int operator=null
        GET_VAR 'tmp5: Int' type=kotlin.Int operator=null
