aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 7132880 aoqi@0: * @summary Resolve should support nested resolution contexts aoqi@0: * @compile/fail/ref=T7132880.out -XDrawDiagnostics T7132880.java aoqi@0: */ aoqi@0: class Outer { aoqi@0: void m1(String s) { } aoqi@0: void m2(int i1, int i2) { } aoqi@0: aoqi@0: class Inner { aoqi@0: void test() { aoqi@0: //ok - no method named 'm' in Inner - hence, class to search is Outer aoqi@0: m1(""); aoqi@0: } aoqi@0: } aoqi@0: aoqi@0: class Inner1 { aoqi@0: void m1(Integer i) { } aoqi@0: aoqi@0: void test() { aoqi@0: //error - Inner1 defines an incompatible method - hence, class to search is Inner1 aoqi@0: m1(""); aoqi@0: } aoqi@0: } aoqi@0: aoqi@0: class Inner2 { aoqi@0: private void m1(Integer i) { } aoqi@0: private void m1(Double d) { } aoqi@0: aoqi@0: void test() { aoqi@0: //error - Inner2 defines multiple incompatible methods - hence, class to search is Inner2 aoqi@0: m1(""); aoqi@0: } aoqi@0: } aoqi@0: aoqi@0: class Inner3 { aoqi@0: private void m2(Object o, int i) { } aoqi@0: private void m2(int i, Object o) { } aoqi@0: aoqi@0: void test() { aoqi@0: //error - Inner3 defines multiple ambiguous methods - hence, class to search is Inner3 aoqi@0: m2(1, 1); aoqi@0: } aoqi@0: } aoqi@0: aoqi@0: class Inner4 extends Inner2 { aoqi@0: void test() { aoqi@0: //ok - Inner2 defines multiple incompatible inaccessible methods - hence, class to search is Outer aoqi@0: m1(""); aoqi@0: } aoqi@0: } aoqi@0: aoqi@0: class Inner5 extends Inner3 { aoqi@0: void test() { aoqi@0: //ok - Inner3 defines multiple inaccessible ambiguous methods - hence, class to search is Outer aoqi@0: m2(1, 1); aoqi@0: } aoqi@0: } aoqi@0: }