==== tests/cases/compiler/untypedFunctionCallsWithTypeParameters1.ts (10 errors) ====
    // none of these function calls should be allowed
    var x = function () { return; };
    var r1 = x<number>();
             ~~~~~~~~~~~
!!! untypedFunctionCallsWithTypeParameters1.ts(3,10): error TS2087: Could not select overload for 'call' expression.
    var y: any = x;
    var r2 = y<string>();
             ~
!!! untypedFunctionCallsWithTypeParameters1.ts(5,10): error TS2158: Untyped function calls may not accept type arguments.
    
    var c: Function;
    var r3 = c<number>(); // should be an error
             ~
!!! untypedFunctionCallsWithTypeParameters1.ts(8,10): error TS2159: Non-generic functions may not accept type arguments.
    
    class C implements Function {
          ~
!!! untypedFunctionCallsWithTypeParameters1.ts(10,7): error TS2137: Class C declares interface Function but does not implement it:
!!! 	Type 'C' is missing property 'apply' from type 'Function'.
        prototype = null;
        length = 1;
        arguments = null;
        caller = () => { };
    }
    
    var c2: C;
    var r4 = c2<number>(); // should be an error
             ~~~~~~~~~~~~
!!! untypedFunctionCallsWithTypeParameters1.ts(18,10): error TS2088: Cannot invoke an expression whose type lacks a call signature.
    
    class C2 extends Function { } // error
                     ~~~~~~~~
!!! untypedFunctionCallsWithTypeParameters1.ts(20,18): error TS2073: A class may only extend another class.
    var c3: C2;
    var r5 = c3<number>(); // error
             ~~~~~~~~~~~~
!!! untypedFunctionCallsWithTypeParameters1.ts(22,10): error TS2088: Cannot invoke an expression whose type lacks a call signature.
    
    interface I {
        (number): number;
    }
    var z: I;
    var r6 = z<string>(1); // error
             ~~~~~~~~~~~~
!!! untypedFunctionCallsWithTypeParameters1.ts(28,10): error TS2087: Could not select overload for 'call' expression.
    
    interface callable2<T> {
        (a: T): T;
    }
    
    var c4: callable2<number>;
    c4<number>(1);
    ~~~~~~~~~~~~~
!!! untypedFunctionCallsWithTypeParameters1.ts(35,1): error TS2087: Could not select overload for 'call' expression.
    interface callable3<T> {
        (a: T): T;
    }
    
    var c5: callable3<number>;
    c5<string>(1); // error
    ~~~~~~~~~~~~~
!!! untypedFunctionCallsWithTypeParameters1.ts(41,1): error TS2087: Could not select overload for 'call' expression.
    
    