fun foo(x: String = ""): String {
  return x
}

class C {
  constructor(x: String = "") /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val x: String
    field = x
    get

}

fun use(fn: Function0<Any>): Any {
  return fn.invoke()
}

fun testFn(): Any {
  return use(fn = { // BLOCK
    local fun foo(): String {
      return foo()
    }

    ::foo
  })
}

fun testCtor(): Any {
  return use(fn = { // BLOCK
    local fun <init>(): C {
      return C()
    }

    ::<init>
  })
}
