(fileInfo: SourceFileInfo, recursionMap: { [path: string ]: boolean })
| 510 | } |
| 511 | |
| 512 | private _isImportNeededRecursive(fileInfo: SourceFileInfo, recursionMap: { [path: string ]: boolean }) { |
| 513 | if (fileInfo.isTracked || fileInfo.isOpenByClient) { |
| 514 | return true; |
| 515 | } |
| 516 | |
| 517 | const filePath = fileInfo.sourceFile.getFilePath(); |
| 518 | |
| 519 | // Avoid infinite recursion. |
| 520 | if (recursionMap[filePath]) { |
| 521 | return false; |
| 522 | } |
| 523 | |
| 524 | recursionMap[filePath] = true; |
| 525 | |
| 526 | for (let importerInfo of fileInfo.importedBy) { |
| 527 | if (this._isImportNeededRecursive(importerInfo, recursionMap)) { |
| 528 | return true; |
| 529 | } |
| 530 | } |
| 531 | |
| 532 | return false; |
| 533 | } |
| 534 | |
| 535 | private _updateSourceFileImports(sourceFileInfo: SourceFileInfo): SourceFileInfo[] { |
| 536 | let filesAdded: SourceFileInfo[] = []; |
no test coverage detected