This looks like a bug in the compiler. This line:

alias typeof(fun(.ElementType!R.init)) ElementType;

causes the error message

std/algorithm.d(118): Error: variable std.algorithm.Map!(result,Repeat!(HasPostblit)).Map.__tmp1067 of type struct HasPostblit uses this(this), which is not allowed in static initialization

but this line:

alias typeof({ return fun(.ElementType!R.init); }()) ElementType;

works. I don't see a reason for which the first should work but the second shouldn't. I gave myself five minutes to reproduce the bug in a shorter context, without success. (Cue Walter with the line "But it's dead easy!") So I'll commit but will leave the non-working code commented out along with a @@@BUG@@@ comment in case one of you wants to take a look.

Speaking of messages during compilation, what's the deal with this?

Warning: WhiteHole!(I_1) used assert(0) instead of Error for the auto-implemented nothrow function I_1.bar Warning: AutoImplement!(C_6) ignored variadic arguments to the constructor C_6(...)


Andrei

On 12/27/10 11:59 PM, Don Clugston wrote:
If it doesn't happen on OSX, that's very odd, since it shows up in
Brad's autotester results for both Win32 and Linux32, though in
different places on each.
Note that it does NOT stop the build, so it's quite easy to miss, you
have to scroll through the output. On Linux, it happens after:
Testing generated/linux/debug/unittest/std/range


On 28 December 2010 04:45, Andrei Alexandrescu<[email protected]>  wrote:
Can't reproduce on OSX. I built and unittested both the debug and release
versions. Anyone willing to take a look at this issue on Windows?

Andrei

On 12/27/10 10:14 AM, Don Clugston wrote:

Compiling with -unittest on all platforms yields:

std\algorithm.d(118): Error: variable
std.algorithm.Map!(result,Repeat!(HasPostblit)).Map.__tmp5735 of type
struct HasPostblit uses this(this), which is not allowed in static
initialization

You can see this in the DAutoTester results.

Introduced in Phobos svn 2233
"Fixed unlisted bug in readf"
in which the line 118 was actually modified. An odd thing about this
error is that the build continues regardless, and the tests still
pass.
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to