FILE: nestedVisibility.kt public open class Outer : R|kotlin/Any| { public constructor(): R|Outer| { super() } private final class PrivateNested : R|kotlin/Any| { public constructor(): R|Outer.PrivateNested| { super() } } private final inner class PrivateInner : R|kotlin/Any| { public Outer.constructor(): R|Outer.PrivateInner| { super() } } protected final class ProtectedNested : R|kotlin/Any| { public constructor(): R|Outer.ProtectedNested| { super() } } protected final inner class ProtectedInner : R|kotlin/Any| { public Outer.constructor(): R|Outer.ProtectedInner| { super() } } public final class PublicNested : R|kotlin/Any| { public constructor(): R|Outer.PublicNested| { super() } } public final inner class PublicInner : R|kotlin/Any| { public Outer.constructor(): R|Outer.PublicInner| { super() } } } public final class Derived : R|Outer| { public constructor(): R|Derived| { super() } public final fun foo(): R|kotlin/Unit| { Q|Outer|.R|/Outer.PrivateNested.PrivateNested#|() this@R|/Derived|.super.R|/Outer.PrivateInner.PrivateInner#|() Q|Outer|.R|/Outer.ProtectedNested.ProtectedNested|() this@R|/Derived|.super.R|/Outer.ProtectedInner.ProtectedInner|() Q|Outer|.R|/Outer.PublicNested.PublicNested|() this@R|/Derived|.super.R|/Outer.PublicInner.PublicInner|() } } public final fun foo(): R|kotlin/Unit| { Q|Outer|.R|/Outer.PrivateNested.PrivateNested#|() R|/Outer.Outer|().R|/Outer.PrivateInner.PrivateInner#|() Q|Outer|.R|/Outer.ProtectedNested.ProtectedNested#|() R|/Outer.Outer|().R|/Outer.ProtectedInner.ProtectedInner#|() Q|Outer|.R|/Outer.PublicNested.PublicNested|() R|/Outer.Outer|().R|/Outer.PublicInner.PublicInner|() }