blob: caf4e4cdb067c7aaf515eb256146503fb907fad8 [file] [log] [blame]
// Test case for Issue 1398
// https://github.com/typetools/checker-framework/issues/1398
public class Issue1398 {
interface Pair<A, B> {}
interface Triple<A, B, C> {}
interface Quadruple<A, B, C, D> {}
interface Box<T> {
<A, B> Pair<A, B> doTriple(Triple<? super T, A, B> t);
<A, BA extends Box<A>> BA doPair(Pair<? super T, ? extends A> p, BoxMaker<A, BA> bm);
}
class BoxMaker<T, C extends Box<T>> {}
abstract class Crash7 {
abstract <T, O> Pair<T, O> bar(Pair<T, O> in);
void foo(
Box<String> bs,
BoxMaker<Number, Box<Number>> bm,
Pair<String, Number> psn,
Triple<Number, Object, Number> t) {
bs.doPair(bar(psn), bm).doTriple(t);
}
}
}