Split contextual typing test for substitution expressions into two tests.

This commit is contained in:
Daniel Rosenwasser 2014-12-15 15:01:33 -08:00
parent e68c53f708
commit 0263d60071
6 changed files with 87 additions and 80 deletions

View File

@ -1,4 +1,4 @@
//// [taggedTemplateContextualTyping.ts]
//// [taggedTemplateContextualTyping1.ts]
function tempTag1<T>(templateStrs: TemplateStringsArray, f: (x: T) => T, x: T): T;
function tempTag1<T>(templateStrs: TemplateStringsArray, f: (x: T) => T, h: (y: T) => T, x: T): T;
@ -10,18 +10,9 @@ tempTag1 `${ x => x }${ 10 }`;
tempTag1 `${ x => x }${ y => y }${ 10 }`;
tempTag1 `${ x => x }${ (y: number) => y }${ undefined }`;
tempTag1 `${ (x: number) => x }${ y => y }${ undefined }`;
function tempTag2(templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number;
function tempTag2(templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string;
function tempTag2(...rest: any[]): any {
return undefined;
}
tempTag2 `${ x => x }${ 0 }`;
tempTag2 `${ x => x }${ y => y }${ "hello" }`;
tempTag2 `${ x => x }${ 0 }`;
//// [taggedTemplateContextualTyping.js]
//// [taggedTemplateContextualTyping1.js]
function tempTag1() {
var rest = [];
for (var _i = 0; _i < arguments.length; _i++) {
@ -33,13 +24,3 @@ tempTag1 `${function (x) { return x; }}${10}`;
tempTag1 `${function (x) { return x; }}${function (y) { return y; }}${10}`;
tempTag1 `${function (x) { return x; }}${function (y) { return y; }}${undefined}`;
tempTag1 `${function (x) { return x; }}${function (y) { return y; }}${undefined}`;
function tempTag2() {
var rest = [];
for (var _i = 0; _i < arguments.length; _i++) {
rest[_i - 0] = arguments[_i];
}
return undefined;
}
tempTag2 `${function (x) { return x; }}${0}`;
tempTag2 `${function (x) { return x; }}${function (y) { return y; }}${"hello"}`;
tempTag2 `${function (x) { return x; }}${0}`;

View File

@ -1,4 +1,4 @@
=== tests/cases/conformance/expressions/contextualTyping/taggedTemplateContextualTyping.ts ===
=== tests/cases/conformance/expressions/contextualTyping/taggedTemplateContextualTyping1.ts ===
function tempTag1<T>(templateStrs: TemplateStringsArray, f: (x: T) => T, x: T): T;
>tempTag1 : { <T>(templateStrs: TemplateStringsArray, f: (x: T) => T, x: T): T; <T>(templateStrs: TemplateStringsArray, f: (x: T) => T, h: (y: T) => T, x: T): T; }
@ -75,50 +75,3 @@ tempTag1 `${ (x: number) => x }${ y => y }${ undefined }`;
>y : number
>undefined : undefined
function tempTag2(templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>templateStrs : TemplateStringsArray
>TemplateStringsArray : TemplateStringsArray
>f : (x: number) => number
>x : number
>x : number
function tempTag2(templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>templateStrs : TemplateStringsArray
>TemplateStringsArray : TemplateStringsArray
>f : (x: string) => string
>x : string
>h : (y: string) => string
>y : string
>x : string
function tempTag2(...rest: any[]): any {
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>rest : any[]
return undefined;
>undefined : undefined
}
tempTag2 `${ x => x }${ 0 }`;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>x => x : (x: number) => number
>x : number
>x : number
tempTag2 `${ x => x }${ y => y }${ "hello" }`;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>x => x : (x: string) => string
>x : string
>x : string
>y => y : (y: string) => string
>y : string
>y : string
tempTag2 `${ x => x }${ 0 }`;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>x => x : (x: number) => number
>x : number
>x : number

View File

@ -0,0 +1,23 @@
//// [taggedTemplateContextualTyping2.ts]
function tempTag2(templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number;
function tempTag2(templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string;
function tempTag2(...rest: any[]): any {
return undefined;
}
tempTag2 `${ x => x }${ 0 }`;
tempTag2 `${ x => x }${ y => y }${ "hello" }`;
tempTag2 `${ x => x }${ 0 }`;
//// [taggedTemplateContextualTyping2.js]
function tempTag2() {
var rest = [];
for (var _i = 0; _i < arguments.length; _i++) {
rest[_i - 0] = arguments[_i];
}
return undefined;
}
tempTag2 `${function (x) { return x; }}${0}`;
tempTag2 `${function (x) { return x; }}${function (y) { return y; }}${"hello"}`;
tempTag2 `${function (x) { return x; }}${0}`;

View File

@ -0,0 +1,49 @@
=== tests/cases/conformance/expressions/contextualTyping/taggedTemplateContextualTyping2.ts ===
function tempTag2(templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>templateStrs : TemplateStringsArray
>TemplateStringsArray : TemplateStringsArray
>f : (x: number) => number
>x : number
>x : number
function tempTag2(templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>templateStrs : TemplateStringsArray
>TemplateStringsArray : TemplateStringsArray
>f : (x: string) => string
>x : string
>h : (y: string) => string
>y : string
>x : string
function tempTag2(...rest: any[]): any {
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>rest : any[]
return undefined;
>undefined : undefined
}
tempTag2 `${ x => x }${ 0 }`;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>x => x : (x: number) => number
>x : number
>x : number
tempTag2 `${ x => x }${ y => y }${ "hello" }`;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>x => x : (x: string) => string
>x : string
>x : string
>y => y : (y: string) => string
>y : string
>y : string
tempTag2 `${ x => x }${ 0 }`;
>tempTag2 : { (templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number; (templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string; }
>x => x : (x: number) => number
>x : number
>x : number

View File

@ -10,13 +10,3 @@ tempTag1 `${ x => x }${ 10 }`;
tempTag1 `${ x => x }${ y => y }${ 10 }`;
tempTag1 `${ x => x }${ (y: number) => y }${ undefined }`;
tempTag1 `${ (x: number) => x }${ y => y }${ undefined }`;
function tempTag2(templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number;
function tempTag2(templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string;
function tempTag2(...rest: any[]): any {
return undefined;
}
tempTag2 `${ x => x }${ 0 }`;
tempTag2 `${ x => x }${ y => y }${ "hello" }`;
tempTag2 `${ x => x }${ 0 }`;

View File

@ -0,0 +1,11 @@
// @target: ES6
function tempTag2(templateStrs: TemplateStringsArray, f: (x: number) => number, x: number): number;
function tempTag2(templateStrs: TemplateStringsArray, f: (x: string) => string, h: (y: string) => string, x: string): string;
function tempTag2(...rest: any[]): any {
return undefined;
}
tempTag2 `${ x => x }${ 0 }`;
tempTag2 `${ x => x }${ y => y }${ "hello" }`;
tempTag2 `${ x => x }${ 0 }`;