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.