FILE /local.kt
  CLASS CLASS Delegate
    $this: VALUE_PARAMETER this@Delegate: Delegate
    CONSTRUCTOR public constructor Delegate(value: kotlin.String)
      VALUE_PARAMETER value-parameter value: kotlin.String
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='Delegate'
    PROPERTY public final val value: kotlin.String
      FIELD PROPERTY_BACKING_FIELD public final val value: kotlin.String
        EXPRESSION_BODY
          GET_VAR 'value-parameter value: String' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-value>(): kotlin.String
        $this: VALUE_PARAMETER this@Delegate: Delegate
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-value>(): String'
            GET_FIELD 'value: String' type=kotlin.String origin=null
              receiver: GET_VAR 'this@Delegate: Delegate' type=Delegate origin=null
    FUN public final operator fun getValue(thisRef: kotlin.Any?, property: kotlin.Any?): kotlin.String
      $this: VALUE_PARAMETER this@Delegate: Delegate
      VALUE_PARAMETER value-parameter thisRef: kotlin.Any?
      VALUE_PARAMETER value-parameter property: kotlin.Any?
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='getValue(Any?, Any?): String'
          CALL '<get-value>(): String' type=kotlin.String origin=GET_PROPERTY
            $this: GET_VAR 'this@Delegate: Delegate' type=Delegate 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
  CLASS CLASS DelegateProvider
    $this: VALUE_PARAMETER this@DelegateProvider: DelegateProvider
    CONSTRUCTOR public constructor DelegateProvider(value: kotlin.String)
      VALUE_PARAMETER value-parameter value: kotlin.String
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='DelegateProvider'
    PROPERTY public final val value: kotlin.String
      FIELD PROPERTY_BACKING_FIELD public final val value: kotlin.String
        EXPRESSION_BODY
          GET_VAR 'value-parameter value: String' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-value>(): kotlin.String
        $this: VALUE_PARAMETER this@DelegateProvider: DelegateProvider
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-value>(): String'
            GET_FIELD 'value: String' type=kotlin.String origin=null
              receiver: GET_VAR 'this@DelegateProvider: DelegateProvider' type=DelegateProvider origin=null
    FUN public final operator fun provideDelegate(thisRef: kotlin.Any?, property: kotlin.Any?): Delegate
      $this: VALUE_PARAMETER this@DelegateProvider: DelegateProvider
      VALUE_PARAMETER value-parameter thisRef: kotlin.Any?
      VALUE_PARAMETER value-parameter property: kotlin.Any?
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='provideDelegate(Any?, Any?): Delegate'
          CALL 'constructor Delegate(String)' type=Delegate origin=null
            value: CALL '<get-value>(): String' type=kotlin.String origin=GET_PROPERTY
              $this: GET_VAR 'this@DelegateProvider: DelegateProvider' type=DelegateProvider 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 foo(): kotlin.Unit
    BLOCK_BODY
      LOCAL_DELEGATED_PROPERTY val testMember: kotlin.String
        VAR DELEGATE val `testMember$delegate`: Delegate
          CALL 'provideDelegate(Any?, Any?): Delegate' type=Delegate origin=null
            $this: CALL 'constructor DelegateProvider(String)' type=DelegateProvider origin=null
              value: CONST String type=kotlin.String value='OK'
            thisRef: CONST Null type=kotlin.Nothing? value='null'
            property: LOCAL_DELEGATED_PROPERTY_REFERENCE 'testMember: String' delegate='`testMember$delegate`: Delegate' getter='<get-testMember>(): String' setter=null type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
        FUN DELEGATED_PROPERTY_ACCESSOR local final fun <get-testMember>(): kotlin.String
          BLOCK_BODY
            RETURN type=kotlin.Nothing from='<get-testMember>(): String'
              CALL 'getValue(Any?, Any?): String' type=kotlin.String origin=null
                $this: GET_VAR '`testMember$delegate`: Delegate' type=Delegate origin=null
                thisRef: CONST Null type=kotlin.Nothing? value='null'
                property: LOCAL_DELEGATED_PROPERTY_REFERENCE 'testMember: String' delegate='`testMember$delegate`: Delegate' getter='<get-testMember>(): String' setter=null type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE

