private static async Task <Document> MakeClassSealed(Document document, TypeDeclarationSyntax typeDecl, CancellationToken cancellationToken) { var newModifiers = typeDecl.AddModifiers(SyntaxFactory.Token(SyntaxKind.SealedKeyword)); var syntaxRoot = await document.GetSyntaxRootAsync(cancellationToken); var syntaxRootWithReplacedModifiers = syntaxRoot.ReplaceNode(typeDecl, newModifiers); return(document.WithSyntaxRoot(syntaxRootWithReplacedModifiers)); }
public override void GenerateCode(List <MemberDeclarationSyntax> newMembers, GenerationContext context) { List <MemberDeclarationSyntax> nestedMembers = new List <MemberDeclarationSyntax>(); foreach (SourceItem item in Items) { item.GenerateCode(nestedMembers, context); } TypeDeclarationSyntax type = Declaration switch { ClassDeclarationSyntax @class => (TypeDeclarationSyntax)ClassDeclaration(Declaration.Identifier), InterfaceDeclarationSyntax @interface => InterfaceDeclaration(Declaration.Identifier), _ => throw new NotImplementedException() }; newMembers.Add(type .AddModifiers(SyntaxFactory.Token(SyntaxKind.PartialKeyword)) .WithMembers(List(nestedMembers))); }