1class Foo : Object {
2 public int i = 1;
3
4 public unowned Foo sideeffect () {
5 --i;
6 return this;
7 }
8 public string data;
9}
10
11void main () {
12 var foo = new Foo ();
13 foo.sideeffect ().data = "foo";
14 assert (foo.data == "foo");
15 assert (foo.i == 0);
16}
17