fun WithCompanion.test() {
  val test1: <no name provided> = { // BLOCK
    local class <no name provided> : WithCompanion {
      constructor() /* primary */ {
        super/*WithCompanion*/(a = Companion)
                /* InstanceInitializerCall */

      }




    }


    <no name provided>()
  }
  val test2: <no name provided> = { // BLOCK
    local class <no name provided> : WithCompanion {
      constructor() /* primary */ {
        super/*WithCompanion*/(a = Companion.foo())
                /* InstanceInitializerCall */

      }




    }


    <no name provided>()
  }
}

open class WithCompanion {
  constructor(a: Companion) /* primary */ {
    super/*Any*/()
        /* InstanceInitializerCall */

  }

  companion object Companion {
    private constructor() /* primary */ {
      super/*Any*/()
            /* InstanceInitializerCall */

    }

    fun foo(): Companion {
      return <this>
    }




  }




}

