//
// Source
// ------------------------------------------

interface A {
    fun b() {}
}
class C {
    val foo = 1
    inner class D : A {
        override fun b() {
            print(foo)
        }
    }
}

//
// Transformed IR
// ------------------------------------------

public abstract interface A {
  public abstract b()V
  public final static INNERCLASS A%DefaultImpls A DefaultImpls
}
public final class A%DefaultImpls {
  public static b(LA;)V
  public final static INNERCLASS A%DefaultImpls A DefaultImpls
}
public final class C {
  public <init>()V
  public final getFoo()I
  static <clinit>()V
  private final I foo
  public final static I %stable
  public final INNERCLASS C%D C D
}
public final class C%D implements A {
  public <init>(LC;)V
  public b()V
  final synthetic LC; this%0
  public final INNERCLASS C%D C D
}
