I work with Scala professionally. I often feel its type inference for generics/templates is better than D's; as long as it can find a type _anywhere_ it will use that, no matter where it needs to pull it from.

Over the past weeks I have been noticing a specific case where it happens. I call it reverse type inference, simply because it goes against the normal evaluation order.

While it is only syntactic sugar, I think it would be nice to have in D and I want to know what you guys think about it.

Some examples:

---

T convert(T)(string s) { ... }

auto dec = "1234".convert!int;   // normal
int dec = "1234".convert; // T of convert is inferred due to type declaration of dec

int square(int t) { ... }

auto a = "1234".convert.square; // since square accepts int, T of convert is inferred to be int

---

p.s. I am not asking anyone to build it. I just want to have the idea out there. And if time allows I might take a stab at implementing it.

Reply via email to