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