///
//// interface IPromise {
//// then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): IPromise;
//// then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): IPromise;
//// then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): IPromise;
//// then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): IPromise;
//// done? (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void ): void;
//// }
//// var p1: IPromise = null;
//// p/*1*/1.then(function (x/*2*/x) { });
//// var p/*3*/2 = p1.then(function (x/*4*/x) { return "hello"; })
//// var p/*5*/3 = p2.then(function (x/*6*/x) {
//// return x/*7*/x;
//// });
goTo.marker("1");
verify.quickInfoIs('(var) p1: IPromise');
goTo.marker("2");
verify.quickInfoIs('(parameter) xx: number');
goTo.marker("3");
verify.quickInfoIs('(var) p2: IPromise');
goTo.marker("4");
verify.quickInfoIs('(parameter) xx: number');
goTo.marker("5");
verify.quickInfoIs('(var) p3: IPromise');
goTo.marker("6");
verify.quickInfoIs('(parameter) xx: string');
goTo.marker("7");
verify.quickInfoIs('(parameter) xx: string');