D2 map trouble

Pelle pelle.mansson at gmail.com
Wed Jul 28 07:51:15 PDT 2010


On 07/28/2010 12:57 AM, Nick Sabalausky wrote:
> Trying to convert some D1 code to D2:
>
> On 2.047, I'm trying to do this:
>
> import std.string;
> void foo(string str)
> {
> str =
>    std.algorithm.map!(
>     (char a) { return inPattern(a, [digits, letters])? a : '_'; }
>    )(str);
> }
>
> And I'm getting:
>
> delegate std.algorithm.__dgliteral1 cannot access frame of function
> __dgliteral1
>
> What's going on? How do I do it right? I figure I probably have some sort of
> problem with strings being immutable(char)[] instead of char[], but it
> doesn't look like that's the issue it's complaining about. Also, in this
> particular case, I'm not concerned about multi-unit UTF-8 characters.
>
>
This is a compiler bug. Easy workaround:

auto fn = (char a) { ... };
str = map!fn(str);


More information about the Digitalmars-d-learn mailing list