private static (ImmutableArray <Diagnostic> diagnostics, string?name, SourceText?text) GenerateMapping( ITypeSymbol sourceType, AttributeData attributeData, ConfigurationValues configurationValues) { var information = new MappingInformation(sourceType, attributeData); if (!information.Diagnostics.Any(_ => _.Severity == DiagnosticSeverity.Error)) { var text = new MappingBuilder(information, configurationValues).Text; return(information.Diagnostics, $"{sourceType.Name}_To_{information.DestinationType.Name}_Map.g.cs", text); } return(information.Diagnostics, null, null); }
private static ImmutableArray <(ImmutableArray <Diagnostic> diagnostics, string?name, SourceText?text)> GenerateMappings( MapReceiver receiver, Compilation compilation, AnalyzerConfigOptionsProvider optionsProvider) { var results = ImmutableArray.CreateBuilder <(ImmutableArray <Diagnostic> diagnostics, string?name, SourceText?text)>(); var information = new MappingInformation(receiver, compilation); foreach (var mapPair in information.Maps) { if (!mapPair.Value.diagnostics.Any(_ => _.Severity == DiagnosticSeverity.Error)) { var text = new MappingBuilder(mapPair.Key.source, mapPair.Key.destination, mapPair.Value.maps, new ConfigurationValues(optionsProvider, mapPair.Value.node.SyntaxTree)).Text; results.Add((mapPair.Value.diagnostics, $"{mapPair.Key.source.Name}_To_{mapPair.Key.destination.Name}_Map.g.cs", text)); } else { results.Add((mapPair.Value.diagnostics, null, null)); } } return(results.ToImmutable()); }