private static void BuildType(INamedTypeSymbol source, INamedTypeSymbol destination, ImmutableArray <string> propertyNames, Compilation compilation, IndentedTextWriter indentWriter, NamespaceGatherer namespaces) { indentWriter.WriteLine($"public static partial class {source.Name}MapToExtensions"); indentWriter.WriteLine("{"); indentWriter.Indent++; var constructors = destination.Constructors.Where(_ => _.DeclaredAccessibility == Accessibility.Public || destination.ContainingAssembly.ExposesInternalsTo(compilation.Assembly) && _.DeclaredAccessibility == Accessibility.Friend).ToArray(); for (var i = 0; i < constructors.Length; i++) { var constructor = constructors[i]; MappingBuilder.BuildMapExtensionMethod(source, destination, propertyNames, constructor, namespaces, indentWriter); if (i < constructors.Length - 1) { indentWriter.WriteLine(); } } indentWriter.Indent--; indentWriter.WriteLine("}"); }