I have these two minimal programs:
import std.string;
void main()
{
string str = "abc";
int i = str.count("ab");
}
and:
import std.string;
import std.algorithm;
void main()
{
string str = "abc";
int i = str.count("ab");
}
The only difference is line 2, where I import std.algorithm.
The first program compiles fine, but the second program does not compile, spitting out the error message:
bash-3.2$ dmd -ofdummy dummy.d
/u/sah2659/dmd2/linux/bin/../../src/phobos/std/functional.d(176): Error: static assert "Bad binary function q{a == b}. You need to use a valid D expression using symbols a of type dchar and b of type string."
/u/sah2659/dmd2/linux/bin/../../src/phobos/std/functional.d(179): instantiated from here: Body!(dchar,string)
/u/sah2659/dmd2/linux/bin/../../src/phobos/std/algorithm.d(3410): instantiated from here: result!(dchar,string)
dummy.d(7): instantiated from here: count!("a == b",string,string)
I can't imagine I'm the first person to notice a bug like this, so is there something I am doing wrong?