// Test case for Issue 658: // https://github.com/typetools/checker-framework/issues/658 // @skip-test import org.checkerframework.common.util.report.qual.*; class Interface { interface A { @ReportCall boolean equals(Object o); @ReportCall void mine(); } class B implements A { public void mine() {} } interface C extends A {} void foo(A a, B b, C c, Object o) { //:: error: (methodcall) if (a.equals(o)) {} //:: error: (methodcall) if (b.equals(o)) {} //:: error: (methodcall) if (c.equals(o)) {} // Don't report this call. if (o.equals(a)) {} } void bar(A a, B b, C c, Object o) { //:: error: (methodcall) a.mine(); //:: error: (methodcall) b.mine(); //:: error: (methodcall) c.mine(); } }