public IEnumerable <AbsolutePath> EnumeratePipGraphFilesUnderDirectory(AbsolutePath directory) { foreach (var path in PipGraph.EnumerateImmediateChildPaths(directory)) { var latestFile = PipGraph.TryGetLatestFileArtifactForPath(path); if (latestFile.IsValid) { if (latestFile.IsSourceFile) { yield return(path); } continue; } foreach (var childPath in EnumeratePipGraphFilesUnderDirectory(path)) { yield return(childPath); } } }