// CHECK:
//   Mangled name: C
//   Public signature: /C|null[0]
class C {
  // CHECK:
  //   Mangled name: C#<init>(kotlin.IntArray...){}
  //   Public signature: /C.<init>|3304157197881351514[0]
  //   Public signature debug description: <init>(kotlin.IntArray...){}
  constructor(vararg xs: Int) /* primary */

}

// CHECK:
//   Mangled name: Outer
//   Public signature: /Outer|null[0]
class Outer {
  // CHECK:
  //   Mangled name: Outer.Inner
  //   Public signature: /Outer.Inner|null[0]
  inner class Inner {
    // CHECK:
    //   Mangled name: Outer.Inner#<init>(kotlin.IntArray...){}
    //   Public signature: /Outer.Inner.<init>|3304157197881351514[0]
    //   Public signature debug description: <init>(kotlin.IntArray...){}
    constructor(vararg xs: Int) /* primary */

  }

  // CHECK:
  //   Mangled name: Outer#<init>(){}
  //   Public signature: /Outer.<init>|-5645683436151566731[0]
  //   Public signature debug description: <init>(){}
  constructor() /* primary */

}

// CHECK JVM_IR:
//   Mangled name: #testConstructor(){}kotlin.Any
//   Public signature: /testConstructor|-8265230471442733237[0]
//   Public signature debug description: testConstructor(){}kotlin.Any
// CHECK JS_IR NATIVE:
//   Mangled name: #testConstructor(){}
//   Public signature: /testConstructor|2230958656416821461[0]
//   Public signature debug description: testConstructor(){}
fun testConstructor(): Any

// CHECK JVM_IR:
//   Mangled name: #testInnerClassConstructor(Outer){}kotlin.Any
//   Public signature: /testInnerClassConstructor|7325530570703424818[0]
//   Public signature debug description: testInnerClassConstructor(Outer){}kotlin.Any
// CHECK JS_IR NATIVE:
//   Mangled name: #testInnerClassConstructor(Outer){}
//   Public signature: /testInnerClassConstructor|8390561746269240962[0]
//   Public signature debug description: testInnerClassConstructor(Outer){}
fun testInnerClassConstructor(outer: Outer): Any

// CHECK JVM_IR:
//   Mangled name: #testInnerClassConstructorCapturingOuter(){}kotlin.Any
//   Public signature: /testInnerClassConstructorCapturingOuter|-5884857333600375021[0]
//   Public signature debug description: testInnerClassConstructorCapturingOuter(){}kotlin.Any
// CHECK JS_IR NATIVE:
//   Mangled name: #testInnerClassConstructorCapturingOuter(){}
//   Public signature: /testInnerClassConstructorCapturingOuter|4579094401940051727[0]
//   Public signature debug description: testInnerClassConstructorCapturingOuter(){}
fun testInnerClassConstructorCapturingOuter(): Any

// CHECK JVM_IR:
//   Mangled name: #use(kotlin.Function1<kotlin.Int,kotlin.Any>){}kotlin.Any
//   Public signature: /use|1574437315632336940[0]
//   Public signature debug description: use(kotlin.Function1<kotlin.Int,kotlin.Any>){}kotlin.Any
// CHECK JS_IR NATIVE:
//   Mangled name: #use(kotlin.Function1<kotlin.Int,kotlin.Any>){}
//   Public signature: /use|-5469365388493164049[0]
//   Public signature debug description: use(kotlin.Function1<kotlin.Int,kotlin.Any>){}
fun use(fn: Function1<Int, Any>): Any

