//// [tests/cases/conformance/types/typeParameters/typeArgumentLists/callNonGenericFunctionWithTypeArguments.ts] ////

=== callNonGenericFunctionWithTypeArguments.ts ===
// it is always illegal to provide type arguments to a non-generic function
// all invocations here are illegal

function f(x: number) { return null; }
>f : Symbol(f, Decl(callNonGenericFunctionWithTypeArguments.ts, 0, 0))
>x : Symbol(x, Decl(callNonGenericFunctionWithTypeArguments.ts, 3, 11))

var r = f<string>(1);
>r : Symbol(r, Decl(callNonGenericFunctionWithTypeArguments.ts, 4, 3))
>f : Symbol(f, Decl(callNonGenericFunctionWithTypeArguments.ts, 0, 0))

var f2 = (x: number) => { return null; }
>f2 : Symbol(f2, Decl(callNonGenericFunctionWithTypeArguments.ts, 6, 3))
>x : Symbol(x, Decl(callNonGenericFunctionWithTypeArguments.ts, 6, 10))

var r2 = f2<string>(1);
>r2 : Symbol(r2, Decl(callNonGenericFunctionWithTypeArguments.ts, 7, 3))
>f2 : Symbol(f2, Decl(callNonGenericFunctionWithTypeArguments.ts, 6, 3))

declare var f3: { (x: number): any; }
>f3 : Symbol(f3, Decl(callNonGenericFunctionWithTypeArguments.ts, 9, 11))
>x : Symbol(x, Decl(callNonGenericFunctionWithTypeArguments.ts, 9, 19))

var r3 = f3<string>(1);
>r3 : Symbol(r3, Decl(callNonGenericFunctionWithTypeArguments.ts, 10, 3))
>f3 : Symbol(f3, Decl(callNonGenericFunctionWithTypeArguments.ts, 9, 11))

class C {
>C : Symbol(C, Decl(callNonGenericFunctionWithTypeArguments.ts, 10, 23))

    f(x: number) {
>f : Symbol(C.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 12, 9))
>x : Symbol(x, Decl(callNonGenericFunctionWithTypeArguments.ts, 13, 6))

        return null;
    }
}
var r4 = (new C()).f<string>(1);
>r4 : Symbol(r4, Decl(callNonGenericFunctionWithTypeArguments.ts, 17, 3))
>(new C()).f : Symbol(C.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 12, 9))
>C : Symbol(C, Decl(callNonGenericFunctionWithTypeArguments.ts, 10, 23))
>f : Symbol(C.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 12, 9))

interface I {
>I : Symbol(I, Decl(callNonGenericFunctionWithTypeArguments.ts, 17, 32))

    f(x: number): any;
>f : Symbol(I.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 19, 13))
>x : Symbol(x, Decl(callNonGenericFunctionWithTypeArguments.ts, 20, 6))
}
declare var i: I;
>i : Symbol(i, Decl(callNonGenericFunctionWithTypeArguments.ts, 22, 11))
>I : Symbol(I, Decl(callNonGenericFunctionWithTypeArguments.ts, 17, 32))

var r5 = i.f<string>(1);
>r5 : Symbol(r5, Decl(callNonGenericFunctionWithTypeArguments.ts, 23, 3))
>i.f : Symbol(I.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 19, 13))
>i : Symbol(i, Decl(callNonGenericFunctionWithTypeArguments.ts, 22, 11))
>f : Symbol(I.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 19, 13))

class C2 {
>C2 : Symbol(C2, Decl(callNonGenericFunctionWithTypeArguments.ts, 23, 24))

    f(x: number) {
>f : Symbol(C2.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 25, 10))
>x : Symbol(x, Decl(callNonGenericFunctionWithTypeArguments.ts, 26, 6))

        return null;
    }
}
var r6 = (new C2()).f<string>(1);
>r6 : Symbol(r6, Decl(callNonGenericFunctionWithTypeArguments.ts, 30, 3))
>(new C2()).f : Symbol(C2.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 25, 10))
>C2 : Symbol(C2, Decl(callNonGenericFunctionWithTypeArguments.ts, 23, 24))
>f : Symbol(C2.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 25, 10))

interface I2 {
>I2 : Symbol(I2, Decl(callNonGenericFunctionWithTypeArguments.ts, 30, 33))

    f(x: number);
>f : Symbol(I2.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 32, 14))
>x : Symbol(x, Decl(callNonGenericFunctionWithTypeArguments.ts, 33, 6))
}
declare var i2: I2;
>i2 : Symbol(i2, Decl(callNonGenericFunctionWithTypeArguments.ts, 35, 11))
>I2 : Symbol(I2, Decl(callNonGenericFunctionWithTypeArguments.ts, 30, 33))

var r7 = i2.f<string>(1);
>r7 : Symbol(r7, Decl(callNonGenericFunctionWithTypeArguments.ts, 36, 3))
>i2.f : Symbol(I2.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 32, 14))
>i2 : Symbol(i2, Decl(callNonGenericFunctionWithTypeArguments.ts, 35, 11))
>f : Symbol(I2.f, Decl(callNonGenericFunctionWithTypeArguments.ts, 32, 14))

declare var a;
>a : Symbol(a, Decl(callNonGenericFunctionWithTypeArguments.ts, 38, 11))

var r8 = a<number>();
>r8 : Symbol(r8, Decl(callNonGenericFunctionWithTypeArguments.ts, 39, 3), Decl(callNonGenericFunctionWithTypeArguments.ts, 42, 3))
>a : Symbol(a, Decl(callNonGenericFunctionWithTypeArguments.ts, 38, 11))

declare var a2: any;
>a2 : Symbol(a2, Decl(callNonGenericFunctionWithTypeArguments.ts, 41, 11))

var r8 = a2<number>();
>r8 : Symbol(r8, Decl(callNonGenericFunctionWithTypeArguments.ts, 39, 3), Decl(callNonGenericFunctionWithTypeArguments.ts, 42, 3))
>a2 : Symbol(a2, Decl(callNonGenericFunctionWithTypeArguments.ts, 41, 11))

