package smowton;

public class Test {

  private String field;

  public Test fluentNoop() {
    return this;
  }

  public Test indirectlyFluentNoop() {
    return this.fluentNoop();
  }

  public Test fluentSet(String x) {
    this.field = x;
    return this;
  }

  public static Test identity(Test t) {
    return t;
  }

  public String get() {
    return field;
  }

  public static String source() {
    return "taint";
  }

  public static void sink(String s) {}

  public static void test1() {
    Test t = new Test();
    t.fluentNoop().fluentSet(source()).fluentNoop();
    sink(t.get()); // $hasTaintFlow=y
  }

  public static void test2() {
    Test t = new Test();
    Test.identity(t).fluentNoop().fluentSet(source()).fluentNoop();
    sink(t.get()); // $hasTaintFlow=y
  }

  public static void test3() {
    Test t = new Test();
    t.indirectlyFluentNoop().fluentSet(source()).fluentNoop();
    sink(t.get()); // $hasTaintFlow=y
  }

}

public class Test {

  private String field;

  public Test fluentNoop() {
    return this;
  }

  public Test indirectlyFluentNoop() {
    return this.fluentNoop();
  }

  public Test fluentSet(String x) {
    this.field = x;
    return this;
  }

  public static Test identity(Test t) {
    return t;
  }

  public String get() {
    return field;
  }

  public static String source() {
    return "taint";
  }

  public static void sink(String s) {}

  public static void test1() {
    Test t = new Test();
    t.fluentNoop().fluentSet(source()).fluentNoop();
    sink(t.get()); // $hasTaintFlow=y
  }

  public static void test2() {
    Test t = new Test();
    Test.identity(t).fluentNoop().fluentSet(source()).fluentNoop();
    sink(t.get()); // $hasTaintFlow=y
  }

  public static void test3() {
    Test t = new Test();
    t.indirectlyFluentNoop().fluentSet(source()).fluentNoop();
    sink(t.get()); // $hasTaintFlow=y
  }

}

Remove package from test Java file
Remove package from test Java file
