class A {
D d = new D();
void foo(java.util.Collection<C> cs, java.util.Collection<D> ds) {
cs.stream()
.filter(B::isFalse)
.filter(C::isTrue)
.map(C::up);
ds.stream()
.filter(d::bool)
.filter(this.d::bool)
.filter(getD()::bool)
.filter(D::bool)
.filter(A.D::bool);
}
static class B {
private boolean isFalse() { return false; }
}
static class C extends B {
private boolean isTrue() { return true; }
private B up() { return this; }
}
static class D {
boolean bool(D d) { return true; }
boolean bool() { return true; }
}
D getD() { return d; }
}