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