/// <nodoc/>
 public ValueTask <Possible <IReadOnlyCollection <ModuleDescriptor> > > TryGetModuleDescriptorsAsync(ModuleReferenceWithProvenance moduleReference)
 {
     return
         (ValueTask.FromResult(
              new Possible <IReadOnlyCollection <ModuleDescriptor> >(
                  m_moduleDefinitions.Keys.Where(moduleDescriptor => moduleDescriptor.Name.Equals(moduleReference.Name))
                  .ToList())));
 }
Esempio n. 2
0
        public async ValueTask <Possible <IReadOnlyCollection <ModuleDescriptor> > > TryGetModuleDescriptorsAsync(ModuleReferenceWithProvenance moduleReference)
        {
            Possible <IReadOnlyCollection <ModuleDescriptor> > result = (await m_graph.Value).Then(
                parsedResult =>
                (IReadOnlyCollection <ModuleDescriptor>)(
                    parsedResult.ModuleDefinition.Descriptor.Name == moduleReference.Name ?
                    new[] { parsedResult.ModuleDefinition.Descriptor }
                            : CollectionUtilities.EmptyArray <ModuleDescriptor>()));

            return(result);
        }
        /// <inheritdoc />
        public ValueTask <Possible <IReadOnlyCollection <ModuleDescriptor> > > TryGetModuleDescriptorsAsync(ModuleReferenceWithProvenance moduleReference)
        {
            Contract.Assume(m_descriptorsByName != null, "Init must have been called");

            IReadOnlyCollection <ModuleDescriptor> result;

            if (m_descriptorsByName.TryGetValue(moduleReference.Name, out var descriptors))
            {
                result = descriptors;
            }
            else
            {
                result = CollectionUtilities.EmptyArray <ModuleDescriptor>();
            }

            return(ValueTaskFactory.FromResult(Possible.Create(result)));
        }