Comment #0 by bearophile_hugs — 2011-08-06T19:47:58Z
I think this is a bug of iota() (or a problem in core.memory.GC.malloc):
import std.range: iota;
import std.array: array;
void main() {
auto a = array(iota(1L));
}
DMD gives:
...\std\array.d(243): Error: function core.memory.GC.malloc (uint sz, uint ba = cast(uint)0) is not callable using argument types (ulong,BlkAttr)
...\std\array.d(243): Error: cannot implicitly convert expression (_param_0 * 8LU) of type ulong to uint
...\std\array.d(231): Error: cannot implicitly convert expression (_param_0) of type ulong to uint
...\std\array.d(194): Error: template instance std.array.arrayAllocImpl!(false,long[],ulong) error instantiating
...\std\array.d(42): instantiated from here: uninitializedArray!(long[],ulong)
test.d(4): instantiated from here: array!(Result)
...\std\array.d(42): Error: template instance std.array.uninitializedArray!(long[],ulong) error instantiating
test.d(4): instantiated from here: array!(Result)
test.d(4): Error: template instance std.array.array!(Result) error instantiating
Comment #2 by bearophile_hugs — 2011-08-07T05:08:24Z
I have just compiled the latest DMD, druntime and Phobos, and I see some errors still. Maybe it's my fault, I don't know.
Comment #3 by lovelydear — 2012-04-26T11:30:07Z
This still doesn't compile on 2.059 Win32
Comment #4 by hsteoh — 2014-08-07T21:39:30Z
Works on git HEAD (2.067a) on Linux/64.
Comment #5 by hsteoh — 2014-11-04T00:06:56Z
Unable to reproduce on git HEAD, Linux/64. Does this bug still happen? Can anyone else try to reproduce it (on Windows)?
Comment #6 by bearophile_hugs — 2014-11-04T01:05:15Z
(In reply to hsteoh from comment #5)
> Unable to reproduce on git HEAD, Linux/64. Does this bug still happen? Can
> anyone else try to reproduce it (on Windows)?
On Windows32 now this gives:
void main() {
import std.range: iota;
import std.array: array;
auto a = 1L.iota.array;
}
...\dmd2\src\phobos\std\array.d(47,43): Error: function std.array.array!(Result).array.trustedAllocateArray (uint n) is not callable using argument types (ulong)
test.d(4,21): Error: template instance std.array.array!(Result) error instantiating
Comment #7 by razvan.nitu1305 — 2017-09-07T12:50:28Z
I just compiled and ran the exmample successfully with the latest dmd, druntime, phobos on linux 64-bit and with wine for windows 32 bit. Closing as WORKSFORME.