Invalid Code errordomain FooError { FAIL; } errordomain BarError { FAIL; } delegate void FooFunc () throws FooError; delegate void BarFunc () throws BarError; void foo (FooFunc f) { } void main () { BarFunc bar = () => { throw new BarError.FAIL (""); }; foo (bar); }