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

  }

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

  }

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

}

