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);

Reply via email to