Provide access to target and destroy values of delegate-types
This seems useful, especially to work around binding issues and support some edge cases.
delegate string Foo ();
string bar (string s) {
return s;
}
void main () {
Foo foo = (Foo) bar;
assert (foo.target == null);
assert (foo.destroy == null);
foo.target = "bar";
foo.destroy = null;
assert (foo () == "bar");
}