Example: Array!int a; Error: std/container.d(1660): Error: function core.stdc.stdlib.free (void* ptr) is not callable using argument types (int[]) std/container.d(1660): Error: cannot implicitly convert expression ((*this._data)._payload) of type int[] to void* The fix is trivial, just add .ptr in line 1660: - free(_data._payload); + free(_data._payload.ptr); But why aren't the unittests picking this up? I've investigated a bit, and found that when Array!int is declared in the std.concurrency unittests, the int[] is implicitly cast to void* in the call to free(). However, this doesn't happen when Array!int is declared in user code. Very strange.
http://www.dsource.org/projects/phobos/changeset/1651
Fixed DMD 2.048