https://issues.dlang.org/show_bug.cgi?id=21436
Issue ID: 21436
Summary: `-preview=dip1000` breaks type inference for function
taking delegate
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
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.
--