2using System.Collections.Immutable;
10 internal abstract class ModuleFinder : IModuleFinder
16 public static IModuleFinder Empty => EmptyModuleFinder.Instance;
109 public static IModuleFinder Create(ImmutableArray<string> entries)
111 if (entries.IsDefault)
112 throw new ArgumentNullException(nameof(entries));
114 if (entries.Length == 0)
115 return EmptyModuleFinder.Instance;
117 return ModulePath.Create(entries);
130 public static IModuleFinder Compose(ImmutableArray<IModuleFinder> finders)
132 if (finders.Length == 0)
133 return EmptyModuleFinder.Instance;
135 return new ComposableModuleFinder(finders);
139 public abstract ModuleReference? Find(
string name);
142 public abstract ImmutableHashSet<ModuleReference> FindAll();