=== tests/cases/compiler/ipromise2.ts === declare module Windows.Foundation { >Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) >Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) export interface IPromise { >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >T : Symbol(T, Decl(ipromise2.ts, 1, 30)) then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) >U : Symbol(U, Decl(ipromise2.ts, 2, 13)) >success : Symbol(success, Decl(ipromise2.ts, 2, 16)) >value : Symbol(value, Decl(ipromise2.ts, 2, 27)) >T : Symbol(T, Decl(ipromise2.ts, 1, 30)) >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >U : Symbol(U, Decl(ipromise2.ts, 2, 13)) >error : Symbol(error, Decl(ipromise2.ts, 2, 52)) >error : Symbol(error, Decl(ipromise2.ts, 2, 62)) >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >U : Symbol(U, Decl(ipromise2.ts, 2, 13)) >progress : Symbol(progress, Decl(ipromise2.ts, 2, 89)) >progress : Symbol(progress, Decl(ipromise2.ts, 2, 102)) >Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) >Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >U : Symbol(U, Decl(ipromise2.ts, 2, 13)) then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) >U : Symbol(U, Decl(ipromise2.ts, 3, 13)) >success : Symbol(success, Decl(ipromise2.ts, 3, 16)) >value : Symbol(value, Decl(ipromise2.ts, 3, 27)) >T : Symbol(T, Decl(ipromise2.ts, 1, 30)) >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >U : Symbol(U, Decl(ipromise2.ts, 3, 13)) >error : Symbol(error, Decl(ipromise2.ts, 3, 52)) >error : Symbol(error, Decl(ipromise2.ts, 3, 62)) >U : Symbol(U, Decl(ipromise2.ts, 3, 13)) >progress : Symbol(progress, Decl(ipromise2.ts, 3, 79)) >progress : Symbol(progress, Decl(ipromise2.ts, 3, 92)) >Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) >Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >U : Symbol(U, Decl(ipromise2.ts, 3, 13)) then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) >U : Symbol(U, Decl(ipromise2.ts, 4, 13)) >success : Symbol(success, Decl(ipromise2.ts, 4, 16)) >value : Symbol(value, Decl(ipromise2.ts, 4, 27)) >T : Symbol(T, Decl(ipromise2.ts, 1, 30)) >U : Symbol(U, Decl(ipromise2.ts, 4, 13)) >error : Symbol(error, Decl(ipromise2.ts, 4, 42)) >error : Symbol(error, Decl(ipromise2.ts, 4, 52)) >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >U : Symbol(U, Decl(ipromise2.ts, 4, 13)) >progress : Symbol(progress, Decl(ipromise2.ts, 4, 79)) >progress : Symbol(progress, Decl(ipromise2.ts, 4, 92)) >Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) >Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >U : Symbol(U, Decl(ipromise2.ts, 4, 13)) then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) >U : Symbol(U, Decl(ipromise2.ts, 5, 13)) >success : Symbol(success, Decl(ipromise2.ts, 5, 16)) >value : Symbol(value, Decl(ipromise2.ts, 5, 27)) >T : Symbol(T, Decl(ipromise2.ts, 1, 30)) >U : Symbol(U, Decl(ipromise2.ts, 5, 13)) >error : Symbol(error, Decl(ipromise2.ts, 5, 42)) >error : Symbol(error, Decl(ipromise2.ts, 5, 52)) >U : Symbol(U, Decl(ipromise2.ts, 5, 13)) >progress : Symbol(progress, Decl(ipromise2.ts, 5, 69)) >progress : Symbol(progress, Decl(ipromise2.ts, 5, 82)) >Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) >Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) >IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) >U : Symbol(U, Decl(ipromise2.ts, 5, 13)) done(success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void ): void; >done : Symbol(done, Decl(ipromise2.ts, 5, 139)) >U : Symbol(U, Decl(ipromise2.ts, 6, 13)) >success : Symbol(success, Decl(ipromise2.ts, 6, 16)) >value : Symbol(value, Decl(ipromise2.ts, 6, 27)) >T : Symbol(T, Decl(ipromise2.ts, 1, 30)) >error : Symbol(error, Decl(ipromise2.ts, 6, 44)) >error : Symbol(error, Decl(ipromise2.ts, 6, 54)) >progress : Symbol(progress, Decl(ipromise2.ts, 6, 73)) >progress : Symbol(progress, Decl(ipromise2.ts, 6, 86)) value: T; >value : Symbol(value, Decl(ipromise2.ts, 6, 117)) >T : Symbol(T, Decl(ipromise2.ts, 1, 30)) } } var p: Windows.Foundation.IPromise; >p : Symbol(p, Decl(ipromise2.ts, 11, 3)) >Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) >Foundation : Symbol(Windows.Foundation, Decl(ipromise2.ts, 0, 23)) >IPromise : Symbol(Windows.Foundation.IPromise, Decl(ipromise2.ts, 0, 35)) var p2 = p.then(function (s) { >p2 : Symbol(p2, Decl(ipromise2.ts, 13, 3)) >p.then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) >p : Symbol(p, Decl(ipromise2.ts, 11, 3)) >then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) >s : Symbol(s, Decl(ipromise2.ts, 13, 26)) return 34; } ); var x: number = p2.value; >x : Symbol(x, Decl(ipromise2.ts, 18, 3)) >p2.value : Symbol(Windows.Foundation.IPromise.value, Decl(ipromise2.ts, 6, 117)) >p2 : Symbol(p2, Decl(ipromise2.ts, 13, 3)) >value : Symbol(Windows.Foundation.IPromise.value, Decl(ipromise2.ts, 6, 117))