namespace DerivingAccess { using System; class X { } public class Y : X { // E: Type `Y' is more accessible than `DerivingAccess.X' } interface IFoo { } public interface IBar : IFoo { } // E: Type `IBar' is more accessible than `DerivingAccess.IFoo' } namespace UninitializedSubtyping { public class Test { public class Foo { protected interface IBar {} } interface G [T] { } private class Bar : G [Foo.IBar] // is inaccessible from { } private class Bar1 [A] where A : Foo.IBar { } // is inaccessible from public static Main () : void {} } }