public static void AddOptionMapping(string diagnosticId, ImmutableHashSet <IPerLanguageOption> perLanguageOptions) { diagnosticId = diagnosticId ?? throw new ArgumentNullException(nameof(diagnosticId)); perLanguageOptions = perLanguageOptions ?? throw new ArgumentNullException(nameof(perLanguageOptions)); var options = perLanguageOptions.Cast <IOption>().ToImmutableHashSet(); AddOptionMapping(s_diagnosticIdToOptionMap, diagnosticId, options); }
public static void AddOptionMapping(string diagnosticId, ImmutableHashSet <ILanguageSpecificOption> languageSpecificOptions, string language) { diagnosticId = diagnosticId ?? throw new ArgumentNullException(nameof(diagnosticId)); languageSpecificOptions = languageSpecificOptions ?? throw new ArgumentNullException(nameof(languageSpecificOptions)); language = language ?? throw new ArgumentNullException(nameof(language)); var map = s_diagnosticIdToLanguageSpecificOptionsMap.GetOrAdd(language, _ => new ConcurrentDictionary <string, ImmutableHashSet <IOption> >()); var options = languageSpecificOptions.Cast <IOption>().ToImmutableHashSet(); AddOptionMapping(map, diagnosticId, options); }
public async Task <ImmutableHashSet <IChromosome> > Operate(ImmutableHashSet <IChromosome> chromosomes, PopulationCapacity capacity, CancellationToken token = default) { var offspring = await Operate(chromosomes.Cast <IChromosome <T> >(), capacity, token); return(offspring.Cast <IChromosome>().ToImmutableHashSet()); }