/// ////interface Collection { //// length: number; //// add(x: T, y: U): void ; //// remove(x: T, y: U): boolean; ////} //// ////interface Combinators { //// map(c: Collection, f: (x: T, y: U) => V): Collection; //// map(c: Collection, f: (x: T, y: U) => any): Collection; ////} //// ////class A { //// foo(): T { return null; } ////} //// ////class B { //// foo(x: T): T { return null; } ////} //// ////var c1: Collection; ////var c2: Collection; ////var c3: Collection, string>; ////var c4: Collection; ////var c5: Collection>; //// ////var _: Combinators; ////// param help on open paren for arg 2 should show 'number' not T or 'any' ////// x should be contextually typed to number ////var rf1 = (x: number, y: string) => { return x.toFixed() }; ////var rf2 = (x: Collection, y: string) => { return x.length }; ////var rf3 = (x: number, y: A) => { return y.foo() }; //// ////var /*9*/r1a = _.map/*1c*/(c2, (/*1a*/x, /*1b*/y) => { return x.toFixed() }); ////var /*10*/r1b = _.map(c2, rf1); //// ////var /*11*/r2a = _.map(c3, (/*2a*/x, /*2b*/y) => { return x.length }); ////var /*12*/r2b = _.map(c3, rf2); //// ////var /*13*/r3a = _.map(c4, (/*3a*/x, /*3b*/y) => { return y.foo() }); ////var /*14*/r3b = _.map(c4, rf3); //// ////var /*15*/r4a = _.map(c5, (/*4a*/x, /*4b*/y) => { return y.foo() }); //// ////var /*17*/r5a = _.map(c2, /*17error1*/(/*5a*/x, /*5b*/y) => { return x.toFixed() }/*17error2*/); ////var rf1b = (x: number, y: string) => { return new Date() }; ////var /*18*/r5b = _.map(c2, rf1b); //// ////var /*19*/r6a = _.map, string, Date>(c3, (/*6a*/x,/*6b*/y) => { return new Date(); }); ////var rf2b = (x: Collection, y: string) => { return new Date(); }; ////var /*20*/r6b = _.map, string, Date>(c3, rf2b); //// ////var /*21*/r7a = _.map(c4, (/*7a*/x,/*7b*/y) => { return y.foo() }); ////var /*22*/r7b = _.map(c4, /*22error1*/rf3/*22error2*/); //// ////var /*23*/r8a = _.map(c5, (/*8a*/x,/*8b*/y) => { return y.foo() }); verify.quickInfos({ "2a": "(parameter) x: Collection", "2b": "(parameter) y: string", "3a": "(parameter) x: number", "3b": "(parameter) y: A", "4a": "(parameter) x: number", "4b": "(parameter) y: B", "5a": "(parameter) x: number", "5b": "(parameter) y: string", "6a": "(parameter) x: Collection", "6b": "(parameter) y: string", "7a": "(parameter) x: number", "7b": "(parameter) y: A", "8a": "(parameter) x: number", "8b": "(parameter) y: any", // Specialized to any because no type argument was specified 9: "var r1a: Collection", 10: "var r1b: Collection", 11: "var r2a: Collection, number>", 12: "var r2b: Collection, number>", 13: "var r3a: Collection", 14: "var r3b: Collection", 15: "var r4a: Collection", 17: "var r5a: Collection", 18: "var r5b: Collection", 19: "var r6a: Collection, Date>", 20: "var r6b: Collection, Date>", 21: "var r7a: Collection", 22: "var r7b: Collection", 23: "var r8a: Collection" }); verify.errorExistsBetweenMarkers('error1', 'error2'); verify.errorExistsBetweenMarkers('17error1', '17error2'); verify.errorExistsBetweenMarkers('22error1', '22error2');