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