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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
/// <reference path="fourslash.ts" />
////export function fn(m: number, n: number) {
//// const mode = m >= 0 ? "a" : "b";
//// let result: number = 0;
////
//// if (mode === "a") {
//// /*a*/for (let i = 0; i < n; i++) {
//// const rand = Math.random();
//// switch (rand) {
//// case 0.5:
//// result = rand;
//// break;
//// default:
//// result = 1;
//// break;
//// }
//// }/*b*/
//// }
//// else {
//// result = 0;
//// }
//// return result;
////}
goTo.select("a", "b");
edit.applyRefactor({
refactorName: "Extract Symbol",
actionName: "function_scope_1",
actionDescription: "Extract to function in module scope",
newContent:
`export function fn(m: number, n: number) {
const mode = m >= 0 ? "a" : "b";
let result: number = 0;
if (mode === "a") {
result = /*RENAME*/newFunction(n, result);
}
else {
result = 0;
}
return result;
}
function newFunction(n: number, result: number) {
for (let i = 0; i < n; i++) {
const rand = Math.random();
switch (rand) {
case 0.5:
result = rand;
break;
default:
result = 1;
break;
}
}
return result;
}
`
});
|