==== tests/cases/compiler/callGenericFunctionWithIncorrectNumberOfTypeArguments.ts (14 errors) ====
    // type parameter lists must exactly match type argument lists
    // all of these invocations are errors
    
    function f<T, U>(x: T, y: U): T { return null; }
    var r1 = f<number>(1, '');
             ~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(5,10): error TS4027: Signature expected 2 type arguments, got 1 instead.
    var r1b = f<number, string, number>(1, '');
              ~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(6,11): error TS4027: Signature expected 2 type arguments, got 3 instead.
    
    var f2 = <T, U>(x: T, y: U): T => { return null; }
    var r2 = f2<number>(1, '');
             ~~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(9,10): error TS4027: Signature expected 2 type arguments, got 1 instead.
    var r2b = f2<number, string, number>(1, '');
              ~~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(10,11): error TS4027: Signature expected 2 type arguments, got 3 instead.
    
    var f3: { <T, U>(x: T, y: U): T; }
    var r3 = f3<number>(1, '');
             ~~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(13,10): error TS4027: Signature expected 2 type arguments, got 1 instead.
    var r3b = f3<number, string, number>(1, '');
              ~~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(14,11): error TS4027: Signature expected 2 type arguments, got 3 instead.
    
    class C {
        f<T, U>(x: T, y: U): T {
            return null;
        }
    }
    var r4 = (new C()).f<number>(1, '');
                       ~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(21,20): error TS4027: Signature expected 2 type arguments, got 1 instead.
    var r4b = (new C()).f<number, string, number>(1, '');
                        ~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(22,21): error TS4027: Signature expected 2 type arguments, got 3 instead.
    
    interface I {
        f<T, U>(x: T, y: U): T;
    }
    var i: I;
    var r5 = i.f<number>(1, '');
               ~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(28,12): error TS4027: Signature expected 2 type arguments, got 1 instead.
    var r5b = i.f<number, string, number>(1, '');
                ~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(29,13): error TS4027: Signature expected 2 type arguments, got 3 instead.
    
    class C2<T, U> {
        f(x: T, y: U): T {
            return null;
        }
    }
    var r6 = (new C2()).f<number>(1, '');
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(36,10): error TS2087: Could not select overload for 'call' expression.
    var r6b = (new C2()).f<number, string, number>(1, '');
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(37,11): error TS2087: Could not select overload for 'call' expression.
    
    interface I2<T, U> {
        f(x: T, y: U): T;
    }
    var i2: I2<number, string>;
    var r7 = i2.f<number>(1, '');
             ~~~~~~~~~~~~~~~~~~~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(43,10): error TS2087: Could not select overload for 'call' expression.
    var r7b = i2.f<number, string, number>(1, '');
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! callGenericFunctionWithIncorrectNumberOfTypeArguments.ts(44,11): error TS2087: Could not select overload for 'call' expression.