interface IFoo {
  abstract fun foo() 



}

val test1: Any
  field = { // BLOCK
    local class <no name provided> {
      constructor() /* primary */ {
        super/*Any*/()
                /* InstanceInitializerCall */

      }




    }


    <no name provided>()
  }
  get

val test2: IFoo
  field = { // BLOCK
    local class <no name provided> : IFoo {
      constructor() /* primary */ {
        super/*Any*/()
                /* InstanceInitializerCall */

      }

      override fun foo() {
        println(message = "foo")
      }




    }


    <no name provided>()
  }
  get

class Outer {
  constructor() /* primary */ {
    super/*Any*/()
        /* InstanceInitializerCall */

  }

  abstract inner class Inner : IFoo {
    constructor() /* primary */ {
      super/*Any*/()
            /* InstanceInitializerCall */

    }





  }

  fun test3(): Inner {
    return { // BLOCK
      local class <no name provided> : Inner {
        constructor() /* primary */ {
          <this>.super/*Inner*/()
                    /* InstanceInitializerCall */

        }

        override fun foo() {
          println(message = "foo")
        }




      }


      <no name provided>()
    }
  }




}

fun Outer.test4(): Inner {
  return { // BLOCK
    local class <no name provided> : Inner {
      constructor() /* primary */ {
        <this>.super/*Inner*/()
                /* InstanceInitializerCall */

      }

      override fun foo() {
        println(message = "foo")
      }




    }


    <no name provided>()
  }
}

