Files
2018-08-30 10:48:05 +01:00

39 lines
771 B
Java

public class B {
public void f1() {
Elem e = new Elem();
Box1 b1 = new Box1(e, null);
Box2 b2 = new Box2(b1);
sink(b2.box1.elem1); // flow
sink(b2.box1.elem2); // FP due to flow in f2 below
}
public void f2() {
Elem e = new Elem();
Box1 b1 = new Box1(null, e);
Box2 b2 = new Box2(b1);
sink(b2.box1.elem1); // FP due to flow in f1 above
sink(b2.box1.elem2); // flow
}
public static void sink(Object o) { }
public static class Elem { }
public static class Box1 {
public Elem elem1;
public Elem elem2;
public Box1(Elem e1, Elem e2) {
this.elem1 = e1;
this.elem2 = e2;
}
}
public static class Box2 {
public Box1 box1;
public Box2(Box1 b1) {
this.box1 = b1;
}
}
}