public static SourceText GeneratePrintMembersText( RecordDeclarationSyntax recordDeclaration, INamedTypeSymbol recordSymbol, Dictionary <SymbolClassification, List <ISymbol> > groups) { MemberDeclarationSyntax printMembersMethod = SyntaxFactory.MethodDeclaration( attributeLists: s_emptyAttributeList, modifiers: GetPrintMembersModifiers(recordSymbol), returnType: SyntaxFactory.PredefinedType(SyntaxFactory.Token(SyntaxKind.BoolKeyword)), explicitInterfaceSpecifier: null, identifier: s_printMembersIdentifier, typeParameterList: null, parameterList: SyntaxFactory.ParameterList( SyntaxFactory.SeparatedList <ParameterSyntax>( new[] { SyntaxFactory.Parameter(s_emptyAttributeList, s_emptyTokenList, s_stringBuilderType, s_builderIdentifier, null) } ) ), constraintClauses: s_emptyConstraintList, body: GenerateBody(recordDeclaration, recordSymbol, groups), expressionBody: null ); string namespaceFullyQualifiedName = GetFullyQualifiedNameOfNamespace(recordSymbol.ContainingNamespace); recordDeclaration = recordDeclaration.WithMembers(new SyntaxList <MemberDeclarationSyntax>(printMembersMethod)); if (namespaceFullyQualifiedName.Length == 0) { return(recordDeclaration.NormalizeWhitespace().GetText(Encoding.UTF8)); } NamespaceDeclarationSyntax namespaceDeclaration = SyntaxFactory.NamespaceDeclaration(SyntaxFactory.IdentifierName(namespaceFullyQualifiedName)); return(namespaceDeclaration.WithMembers(new SyntaxList <MemberDeclarationSyntax>(recordDeclaration)).NormalizeWhitespace().GetText(Encoding.UTF8)); }