==== tests/cases/compiler/assignmentCompatWithOverloads.ts (4 errors) ====
    function f1(x: string): number { return null; }
    
    function f2(x: string): string { return null; }
    
    function f3(x: number): number { return null; }
    
    function f4(x: string): string;
    
    function f4(x: number): number;
    
    function f4(x: any): any { return undefined; }
    
    var g: (s1: string) => number;
    
    g = f1; // OK 
    
    g = f2; // Error
    ~
!!! assignmentCompatWithOverloads.ts(17,1): error TS2012: Cannot convert 'typeof f2' to '(s1: string) => number':
!!! 	Call signatures of types 'typeof f2' and '(s1: string) => number' are incompatible.
    
    g = f3; // Error
    ~
!!! assignmentCompatWithOverloads.ts(19,1): error TS2012: Cannot convert 'typeof f3' to '(s1: string) => number':
!!! 	Call signatures of types 'typeof f3' and '(s1: string) => number' are incompatible.
    
    g = f4; // Error
    ~
!!! assignmentCompatWithOverloads.ts(21,1): error TS2012: Cannot convert 'typeof f4' to '(s1: string) => number':
!!! 	Call signatures of types 'typeof f4' and '(s1: string) => number' are incompatible.
    
    class C {
        constructor(x: string);
    constructor(x: any) {}
    }
    
    var d: new(x: number) => void;
    
    d = C; // Error
    ~
!!! assignmentCompatWithOverloads.ts(30,1): error TS2012: Cannot convert 'typeof C' to 'new(x: number) => void':
!!! 	Construct signatures of types 'typeof C' and 'new(x: number) => void' are incompatible.