This code compiles with no error with `dmd app.d` but breaks with `dmd -preview=dip1000 app.d`:
```
void callIt(T)(T a, scope void delegate(T) cb) {
cb(a);
}
void main() {
callIt(0, (int x) {});
}
```
With `-preview=dip1000` it fails with:
```
app.d(6): Error: template app.callIt cannot deduce function from argument types !()(int, void function(int x) pure nothrow @nogc @safe), candidates are:
app.d(1): callIt(T)(T a, scope void delegate(T) cb)
```
The code compiles without error (with or without `-preview=dip1000`) if a type argument `!int` is provided.
Comment #1 by robert.schadek — 2024-12-13T19:13:04Z