[dmd-beta] dmd 1.062 and 2.047 beta

Don Clugston dclugston at googlemail.com
Thu Jun 10 08:14:50 PDT 2010


On 10 June 2010 09:07, Rainer Schuetze <r.sagitario at gmx.de> wrote:
> hi,
>
> there seems to be a regression regarding compile time evaluation of
> startsWith:
>
> import std.string;
>
> const bool ok = startsWith("ab", 'a');
> const bool fails = startsWith("ab", "a");
>
> produces
> c:\l\dmd2\windows\bin\..\..\src\phobos\std\functional.d(176): Error: static
> assert  "Bad binary function q{a == b}. You need to use a valid D expression
> using symbols a of type dchar and b of type string."
> c:\l\dmd2\windows\bin\..\..\src\phobos\std\functional.d(179):
>  instantiated from here: Body!(dchar,string)
> c:\l\dmd2\windows\bin\..\..\src\phobos\std\algorithm.d(1981):
>  instantiated from here: result!(dchar,string)
>
> This worked for me in 2.046.

This seems to be a Phobos regression, not a compiler regression. I
slightly reduced this to:

import std.algorithm : startsWith;

const bool fails = startsWith("ab", "a");

Copying the 2.047 implementation of startsWith into 2.046
std.algorithm, generates the same error as DMD 2.047.


More information about the dmd-beta mailing list