Bug in D type inferencing
Hiemlick Hiemlicker via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jul 1 18:20:35 PDT 2016
public struct Foo
{
public void Create(T)(uint delegate(T) c, T param)
{
}
}
Foo f;
f.Create((x) { }, "asdf");
cannot deduce arguments compiler error.
Surely D can figure out that T is a string?
If one simply changes this to
public struct Foo(T)
{
public void Create(uint delegate(T) c, T param)
{
}
}
and
Foo!string f;
everything works.
The second parameter is a string so why not infer that T is a
string?
Also, if one does
f.Create((string x) { }, "asdf");
Then it works. Seems like a blatant limitation in D's type
inferencing system.
More information about the Digitalmars-d
mailing list