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