package test.cf.arguments; class Foo { public void run(Bar b) { //legeal call: on an argument type object b.bar.test(); } public static void main(String[] args) { System.out.println("***** A correct implementation should report no violation."); Foo aFoo = new Foo(); aFoo.run(new Bar(new Bar())); } } class Bar { Bar bar; public Bar(Bar b) { this.bar=b; } public Bar() { super(); } public void test() { return; } }