[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