| import org.checkerframework.framework.testchecker.lubglb.quals.*; |
| |
| interface Foo {} |
| |
| interface Bar {} |
| |
| class Baz implements Foo, Bar {} |
| |
| public class IntersectionTypes { |
| // :: warning: (explicit.annotation.ignored) |
| <S extends @B Foo & @C Bar> void call1(S p) {} |
| |
| // :: warning: (explicit.annotation.ignored) |
| <T extends @C Bar & @B Foo> void call2(T p) {} |
| |
| void foo1(@D Baz baz1) { |
| call1(baz1); |
| call2(baz1); |
| } |
| |
| void foo2(@F Baz baz2) { |
| call1(baz2); |
| call2(baz2); |
| } |
| |
| void foo3(@B Baz baz3) { |
| call1(baz3); |
| // :: error: (type.argument) |
| call2(baz3); |
| } |
| } |