import java.io.*;

class Main {
    static class Outer {
        static interface A {
            interface B {}
        }

        static class D implements A {
            private interface B {}
        }


        static class C extends D implements A {
            interface E extends B {}
            interface E1 extends D.B {}
            interface E2 extends A.B {}
        }
    }
    static class E {
        {
            D d = new D() {
                void foo(<error descr="'D.B' has private access in 'D'">B</error> b){

                }
            };
        }
    }
}



class Main1 {
    static interface A
    {
        interface B  { }
    }

    static class D implements A
    {
        interface B { }
    }


    static class C extends D implements A
    {
        interface E extends <error descr="Reference to 'B' is ambiguous, both 'Main1.D.B' and 'Main1.A.B' match">B</error> { }
        interface E1 extends D.B {
        }
        interface E2 extends A.B { }
    }

}


interface A
{
    interface B  { }
    interface B1  { }
}

class D implements A
{
    private interface B { }
    interface B1 { }
}


class C extends D implements A
{
    interface E extends B { }
    interface E1 extends D.<error descr="'D.B' has private access in 'D'">B</error> { }
    interface E2 extends A.B { }

    interface F extends <error descr="Reference to 'B1' is ambiguous, both 'D.B1' and 'A.B1' match">B1</error> { }
    interface F1 extends D.B1 { }
    interface F2 extends A.B1 { }

}


class AO {}
class BAO {
    AO bar = new AO();
    {
        bar.foo();
    }
    private class AO {
        void foo(){}
    }

}

class WithFileInputStream {
  private static final Runnable runn = new Runnable() {
    public void run() {
      new FileInputStream("path");
    }
  };
  
  private static class FileInputStream {
    private FileInputStream(String str) {
    }
  }
}

class ContainingKlass {
    public static class Inner {
    }

    private static class OuterInner {
        private static final class Inner {
            private Inner s() {
                return this;
            }
        }
    }
}

