[dmd-beta] D2 2.057 alpha

Nick Sabalausky bus_dmdbeta at semitwist.com
Tue Dec 6 00:33:15 PST 2011


From: "Dmitry Olshansky" <dmitry.olsh at gmail.com>
> On 06.12.2011 10:34, Nick Sabalausky wrote:
>> From: "Nick Sabalausky" <bus_dmdbeta at semitwist.com>
>>> In one of my programs I'm getting:
>>>
>>> D:\DevTool\dmd2beta\dmd2\windows\bin\..\..\src\phobos\std\regex.d(6576): 
>>> Error: cannot implicitly convert expression (m) of type 
>>> Captures!(string,uint) to RegexMatch!(string,ThompsonMatcher)
>>>
>>> Which isn't very helpful. I'm tracking down the code that's triggering 
>>> it...
>>>
>>
>>
>> Test case:
>>
>> import std.regex;
>> void main()
>> {
>>    std.regex.replace!(
>>        (RegexMatch!string m) { return ""; }
>>    )( "", regex("") );
>> }
>>
> That's the breaking change, and there is no way out of it. This one should 
> work:
> std.regex.replace!(
>        ( m) { return ""; }
>    )( "", regex("") );
>
> or
>
> std.regex.replace!(
>        (Captures!string m) { return ""; }
>    )( "", regex("") );
>

Ok, I see.

Is there nothing that can be done to get an error message on the offending 
line in the user's code? Like a template contraint on replace or something?



More information about the dmd-beta mailing list