1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
// ==ORIGINAL==
function F<T>(t1: T) {
function G<U extends T[]>(t2: U) {
/*[#|*/t2.toString();/*|]*/
}
}
// ==SCOPE::Extract to inner function in function 'G'==
function F<T>(t1: T) {
function G<U extends T[]>(t2: U) {
/*RENAME*/newFunction();
function newFunction() {
t2.toString();
}
}
}
// ==SCOPE::Extract to inner function in function 'F'==
function F<T>(t1: T) {
function G<U extends T[]>(t2: U) {
/*RENAME*/newFunction<U>(t2);
}
function newFunction<U extends T[]>(t2: U) {
t2.toString();
}
}
// ==SCOPE::Extract to function in global scope==
function F<T>(t1: T) {
function G<U extends T[]>(t2: U) {
/*RENAME*/newFunction<T, U>(t2);
}
}
function newFunction<T, U extends T[]>(t2: U) {
t2.toString();
}
|