Feature Request: Support delegate literal context skipping

downs default_357-line at yahoo.de
Fri Oct 12 04:03:07 PDT 2007


In the following situation

class Foo {
  int e;
  void delegate() bar() {
    return { e++; };
  }
}

the delegate literal will not work. This is because its context is bar,
and bar has ended. But the literal doesn't *need* anything from bar.

Because of this, I propose in situations where a delegate literal
doesn't access the immediate surrounding stack frame, its context be the
first frame (or class) that it does access.
So in this example, { e++; } 's .ptr would point at the respective
instance of Foo, allowing this to work.

Disadvantages: None
Advantages: potentially highly helpful with user interface code, where
such callbacks are commonplace.

  Looking forward to comments
 --downs



More information about the Digitalmars-d mailing list