Hey all,

I am a bit confused about the inferred types of function literals which do not name their parameters (something like `(int) {}`). The confusion arises from the fact that the inferred type sometimes is `void` (might be the case, because the function literal is inferred to be a template) and sometimes it is something like `void function(bool _param_0) pure nothrow @nogc @safe`. What is really weir is that seems to depend on the type of the parameter. Here is small example showing what happens for different parameter types: https://run.dlang.io/is/xSMZZu

Also note that this only happens for function literals. For regular functions and member functions, `void` is never inferred, but only types like `pure nothrow @nogc @safe void(MyClass _param_0)`.

Has anybody any idea what is going on here? Is this a bug?

Reply via email to