On Monday, 17 August 2015 at 16:21:16 UTC, thedeemon wrote:
On Monday, 17 August 2015 at 16:18:50 UTC, thedeemon wrote:
I've just checked with my runtime GC hook. Here the call to func() allocates 12 bytes via gc_malloc, and it's the same for a 4-elements array, so it's not for the array itself, it's for a closure, I think.

Also, compiling with -vgc says nothing, compiler (2.068) seems to miss this allocation.

Thanks for confirming.

It seems to be a known issue that the compiler doesn't recognize the @nogc violation by the closure:
https://issues.dlang.org/show_bug.cgi?id=14771

That's not a regression, though. 2.067 rejecting the code has something to do with this assert:
https://github.com/D-Programming-Language/phobos/blob/v2.067.1/std/algorithm/iteration.d#L453
 (code is the same for 2.068).

I don't know if that assert should trigger a @nogc violation or not. But anyway, the real issue is 14771, as far as I can tell.

Reply via email to