// CHECK:
//   Mangled name: {}test2
//   Public signature: /test2|2517758057000911509[0]
//   Public signature debug description: {}test2
val test2: Function0<Any>
  // CHECK JVM_IR:
  //   Mangled name: #<get-test2>(){}kotlin.Function0<kotlin.Any>
  //   Public signature: /test2.<get-test2>|-3521014862279202095[0]
  //   Public signature debug description: <get-test2>(){}kotlin.Function0<kotlin.Any>
  get

// CHECK:
//   Mangled name: {}test3
//   Public signature: /test3|7677556066983021166[0]
//   Public signature debug description: {}test3
val test3: Function0<Any>
  // CHECK JVM_IR:
  //   Mangled name: #<get-test3>(){}kotlin.Function0<kotlin.Any>
  //   Public signature: /test3.<get-test3>|-2771730067305258179[0]
  //   Public signature debug description: <get-test3>(){}kotlin.Function0<kotlin.Any>
  get

// CHECK:
//   Mangled name: {}test4
//   Public signature: /test4|-9115637610245762085[0]
//   Public signature debug description: {}test4
val test4: Function0<Any>
  // CHECK JVM_IR:
  //   Mangled name: #<get-test4>(){}kotlin.Function0<kotlin.Any>
  //   Public signature: /test4.<get-test4>|-8396604175230297932[0]
  //   Public signature debug description: <get-test4>(){}kotlin.Function0<kotlin.Any>
  get

// CHECK JVM_IR:
//   Mangled name: #checkAny(kotlin.Function0<kotlin.Any>){}kotlin.Any
//   Public signature: /checkAny|3822573499379692767[0]
//   Public signature debug description: checkAny(kotlin.Function0<kotlin.Any>){}kotlin.Any
fun checkAny(fn: Function0<Any>): Any

// CHECK JVM_IR:
//   Mangled name: #checkAnyN(kotlin.Function0<kotlin.Any?>){}kotlin.Any?
//   Public signature: /checkAnyN|2531653624856991874[0]
//   Public signature debug description: checkAnyN(kotlin.Function0<kotlin.Any?>){}kotlin.Any?
fun checkAnyN(fn: Function0<Any?>): Any?

// CHECK JVM_IR:
//   Mangled name: #id(0:0){0§<kotlin.Any?>}0:0
//   Public signature: /id|-6791396263062521506[0]
//   Public signature debug description: id(0:0){0§<kotlin.Any?>}0:0
fun <T : Any?> id(x: T): T

// CHECK JVM_IR:
//   Mangled name: #test1(){}kotlin.Any
//   Public signature: /test1|-7147480710941941177[0]
//   Public signature debug description: test1(){}kotlin.Any
fun test1(): Any

// CHECK JVM_IR:
//   Mangled name: #test5(){}kotlin.Any?
//   Public signature: /test5|-4912917521390671072[0]
//   Public signature debug description: test5(){}kotlin.Any?
fun test5(): Any?

// CHECK JVM_IR:
//   Mangled name: #test6(){}kotlin.Any?
//   Public signature: /test6|-7389759467691093908[0]
//   Public signature debug description: test6(){}kotlin.Any?
fun test6(): Any?

