diff --git a/src/vs/base/node/stats.ts b/src/vs/base/node/stats.ts index e733e308e70309374e341432bf68007b380ee1e9..925b07211fb3e426be5f2100854febf7f3e2059e 100644 --- a/src/vs/base/node/stats.ts +++ b/src/vs/base/node/stats.ts @@ -116,32 +116,32 @@ export function collectWorkspaceStats(folder: string, filter: string[]): Promise if (--pending === 0) { return done(results); } - } - - if (stats.isDirectory()) { - if (filter.indexOf(file) === -1) { - walk(join(dir, file), filter, token, (res: string[]) => { - results = results.concat(res); + } else { + if (stats.isDirectory()) { + if (filter.indexOf(file) === -1) { + walk(join(dir, file), filter, token, (res: string[]) => { + results = results.concat(res); + if (--pending === 0) { + return done(results); + } + }); + } else { if (--pending === 0) { - return done(results); + done(results); } - }); + } } else { - if (--pending === 0) { - done(results); + if (token.count >= MAX_FILES) { + token.maxReached = true; } - } - } else { - if (token.count >= MAX_FILES) { - token.maxReached = true; - } - token.count++; - results.push(file); + token.count++; + results.push(file); - if (--pending === 0) { - done(results); + if (--pending === 0) { + done(results); + } } } });