Closed

Description
TypeScript Version: 2.9.0-dev.20180411
Code
declare function provide<T>(cb: (x: T) => void): void;
declare function provide<T>(cb: (x: T[keyof T]) => void): void;
declare function provider<T>(provide: (cb: (x: T) => void) => void): void;
provider(provide);
Expected behavior:
No error.
Actual behavior:
src/a.ts(4,10): error TS2345: Argument of type '{ <T>(cb: (x: T) => void): void; <T>(cb: (x: T[keyof T]) => void): void; }' is not assignable to parameter of type '(cb: (x: never) => void) => void'.
Types of parameters 'cb' and 'cb' are incompatible.
Types of parameters 'x' and 'x' are incompatible.
Type 'any' is not assignable to type 'never'.
Worked in typescript@2.9.0-dev.20180327
, broken in typescript@2.9.0-dev.20180328
.