TypeScript/tests/baselines/reference/parenthesizedContexualTyping3.types

166 lines
5.3 KiB
Plaintext
Raw Normal View History

=== tests/cases/conformance/expressions/contextualTyping/parenthesizedContexualTyping3.ts ===
// Contextual typing for parenthesized substitution expressions in tagged templates.
/**
* tempFun - Can't have fun for too long.
*/
function tempFun<T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T;
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
>T : T
>tempStrs : TemplateStringsArray
>TemplateStringsArray : TemplateStringsArray
>g : (x: T) => T
>x : T
>T : T
>T : T
>x : T
>T : T
>T : T
function tempFun<T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T;
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
>T : T
>tempStrs : TemplateStringsArray
>TemplateStringsArray : TemplateStringsArray
>g : (x: T) => T
>x : T
>T : T
>T : T
>h : (y: T) => T
>y : T
>T : T
>T : T
>x : T
>T : T
>T : T
function tempFun<T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T {
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
>T : T
>tempStrs : TemplateStringsArray
>TemplateStringsArray : TemplateStringsArray
>g : (x: T) => T
>x : T
>T : T
>T : T
>x : T
>T : T
>T : T
return g(x);
>g(x) : T
>g : (x: T) => T
>x : T
}
var a = tempFun `${ x => x } ${ 10 }`
>a : number
2015-04-13 21:36:11 +02:00
>tempFun `${ x => x } ${ 10 }` : number
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
2015-04-13 21:36:11 +02:00
>`${ x => x } ${ 10 }` : string
>x => x : (x: number) => number
>x : number
>x : number
2015-04-13 21:36:11 +02:00
>10 : number
var b = tempFun `${ (x => x) } ${ 10 }`
>b : number
2015-04-13 21:36:11 +02:00
>tempFun `${ (x => x) } ${ 10 }` : number
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
2015-04-13 21:36:11 +02:00
>`${ (x => x) } ${ 10 }` : string
>(x => x) : (x: number) => number
>x => x : (x: number) => number
>x : number
>x : number
2015-04-13 21:36:11 +02:00
>10 : number
var c = tempFun `${ ((x => x)) } ${ 10 }`
>c : number
2015-04-13 21:36:11 +02:00
>tempFun `${ ((x => x)) } ${ 10 }` : number
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
2015-04-13 21:36:11 +02:00
>`${ ((x => x)) } ${ 10 }` : string
>((x => x)) : (x: number) => number
>(x => x) : (x: number) => number
>x => x : (x: number) => number
>x : number
>x : number
2015-04-13 21:36:11 +02:00
>10 : number
var d = tempFun `${ x => x } ${ x => x } ${ 10 }`
>d : number
2015-04-13 21:36:11 +02:00
>tempFun `${ x => x } ${ x => x } ${ 10 }` : number
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
2015-04-13 21:36:11 +02:00
>`${ x => x } ${ x => x } ${ 10 }` : string
>x => x : (x: number) => number
>x : number
>x : number
>x => x : (x: number) => number
>x : number
>x : number
2015-04-13 21:36:11 +02:00
>10 : number
var e = tempFun `${ x => x } ${ (x => x) } ${ 10 }`
>e : number
2015-04-13 21:36:11 +02:00
>tempFun `${ x => x } ${ (x => x) } ${ 10 }` : number
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
2015-04-13 21:36:11 +02:00
>`${ x => x } ${ (x => x) } ${ 10 }` : string
>x => x : (x: number) => number
>x : number
>x : number
>(x => x) : (x: number) => number
>x => x : (x: number) => number
>x : number
>x : number
2015-04-13 21:36:11 +02:00
>10 : number
var f = tempFun `${ x => x } ${ ((x => x)) } ${ 10 }`
>f : number
2015-04-13 21:36:11 +02:00
>tempFun `${ x => x } ${ ((x => x)) } ${ 10 }` : number
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
2015-04-13 21:36:11 +02:00
>`${ x => x } ${ ((x => x)) } ${ 10 }` : string
>x => x : (x: number) => number
>x : number
>x : number
>((x => x)) : (x: number) => number
>(x => x) : (x: number) => number
>x => x : (x: number) => number
>x : number
>x : number
2015-04-13 21:36:11 +02:00
>10 : number
var g = tempFun `${ (x => x) } ${ (((x => x))) } ${ 10 }`
>g : number
2015-04-13 21:36:11 +02:00
>tempFun `${ (x => x) } ${ (((x => x))) } ${ 10 }` : number
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
2015-04-13 21:36:11 +02:00
>`${ (x => x) } ${ (((x => x))) } ${ 10 }` : string
>(x => x) : (x: number) => number
>x => x : (x: number) => number
>x : number
>x : number
>(((x => x))) : (x: number) => number
>((x => x)) : (x: number) => number
>(x => x) : (x: number) => number
>x => x : (x: number) => number
>x : number
>x : number
2015-04-13 21:36:11 +02:00
>10 : number
var h = tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }`
>h : any
2015-04-13 21:36:11 +02:00
>tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }` : any
>tempFun : { <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; <T>(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }
2015-04-13 21:36:11 +02:00
>`${ (x => x) } ${ (((x => x))) } ${ undefined }` : string
>(x => x) : (x: any) => any
>x => x : (x: any) => any
>x : any
>x : any
>(((x => x))) : (x: any) => any
>((x => x)) : (x: any) => any
>(x => x) : (x: any) => any
>x => x : (x: any) => any
>x : any
>x : any
>undefined : undefined