On Saturday, 19 September 2015 at 02:45:54 UTC, Adam D. Ruppe
wrote:
On Saturday, 19 September 2015 at 02:30:39 UTC, Chris wrote:
bmove.addOnClicked (delegate void (Button aux) {
What's the context of this call? If it is inside a struct and
you are accessing local variables you can get in trouble
because the context pointer may not be correct. You are using
`vec` there, if `glw` is a struct/class member too, then the
compiler can sometimes be a bit stupid about bringing in the
correct `this` reference to the delegate.
Hi thanks for the response.
The context is inside a try block in the program's main()
function. Glw is indeed a class but it doesn't look like it quite
configures the problem you describe.
I think #3 will work for you here. Right above that loop, try
something like
auto glw = this.glw;
There's no "this", it's the main() function. I stuck a "auto glw2
= glw" in there but it didn't help.
I found more funny stuff. If I move the code around and change
the order of that snippet to before the other one I posted
earlier, the first line (if (!glw...) now works *despite* the
debugger saying the variable glw is "not found". So now as long
as the condition evaluates to true it will work as expected.
However when the condition is made to eval to false then the
*next* line of code will trigger the exception as I first
encountered.
So I'm going to go ahead and say I found a compiler bug.