internal static ImmutableArray <string> GetAllCompilationAssemblies(ReferenceInfo reference) { var transitiveCompilationAssemblies = reference.Dependencies .SelectMany(dependency => GetAllCompilationAssemblies(dependency)); return(reference.CompilationAssemblies .Concat(transitiveCompilationAssemblies) .ToImmutableArray()); }
internal static bool ContainsAnyCompilationAssembly(ReferenceInfo reference, HashSet <string> usedAssemblyFilePaths) { if (reference.CompilationAssemblies.Any(usedAssemblyFilePaths.Contains)) { return(true); } return(reference.Dependencies.Any(dependency => ContainsAnyCompilationAssembly(dependency, usedAssemblyFilePaths))); }
internal static void RemoveAllCompilationAssemblies(ReferenceInfo reference, HashSet <string> usedAssemblyFilePaths) { usedAssemblyFilePaths.ExceptWith(reference.CompilationAssemblies); foreach (var dependency in reference.Dependencies) { RemoveAllCompilationAssemblies(dependency, usedAssemblyFilePaths); } }
internal static bool HasAnyCompilationAssembly(ReferenceInfo reference) { if (reference.CompilationAssemblies.Length > 0) { return(true); } return(reference.Dependencies.Any(HasAnyCompilationAssembly)); }