void check(string s) {} void check(wstring s) {} void check(dstring s) {} void main() { check("test"); //check("test"c); } D:\Desktop\d\zb.d(7): Error: function zb.check called with argument types: ((string)) matches both: zb.check(string s) and: zb.check(immutable(dchar)[] s) The type of "test" is string, isn't it?