
/** @testcase PUREJAVA nested interface does not require new qualifier */
public class InvalidNewQualifier8CE {
    interface I {}
    void test() {
        // error
//         this.new I(){};  // CE 7 new qualification unneeded
         new Outer().new Outer.I(){}; // CE 8 new qualification bad
//         new OuterInterface(){}.new OuterInterface.I(){}; // CE 9 new qualification bad
//         new OuterOuter.Inner(){}.new OuterOuter.Inner.I(){}; // CE 10 new qualification bad
        Outer o = new Outer();
        OuterInterface oi = new OuterInterface(){};
        OuterOuter.Inner ooi = new OuterOuter.Inner(){}; 
//         o.new Outer.I(){}; // CE 14 new qualification bad
//         oi.new OuterInterface.I(){}; // CE 15 new qualification bad
//         ooi.new OuterOuter.Inner.I(){}; // CE 16 new qualification bad

        // ok
        new I(){};  
        new Outer.I(){}; 
        new OuterInterface.I(){};
        new OuterOuter.Inner.I(){};
    }
}

class Outer {
    interface I {}
}
interface OuterInterface {
    interface I {}
}
class OuterOuter {
    interface Inner {
        interface I {}
    }
}
