On 08/25/2015 08:29 PM, Vladimir Panteleev wrote:

I think this is a bug, but is easily worked around with:

auto test(string a) {
     return .test(a, "b");
}

I suspect that the reason the error occurs, is that the auto return type
automatically rewrites the function declaration into an eponymous
template declaration.  ...

No true. In fact, doing so manually works around the problem. :o)

This compiles and runs:

import std.stdio;
import std.range : chain;

auto test()(string a) {
    return test(a,"b");
}

auto test(string a,string b) {
    return chain(a,b);
}

void main() {
    writeln(test("a"));
}

Reply via email to