public void UpdateNode()
{
string text = "class C { void M() { } }";
var tree = SyntaxTree.ParseText(text);
var root = (CompilationUnitSyntax)tree.GetRoot();
MethodDeclarationSyntax method = root
.DescendantNodes()
.OfType<MethodDeclarationSyntax>()
.First();
var newMethod = method.Update(
method.AttributeLists,
method.Modifiers,
method.ReturnType,
method.ExplicitInterfaceSpecifier,
Syntax.Identifier("NewMethodName"),
method.TypeParameterList,
method.ParameterList,
method.ConstraintClauses,
method.Body,
method.SemicolonToken);
root = root.ReplaceNode(method, newMethod);
tree = SyntaxTree.Create(root, tree.FilePath, tree.Options);
Assert.AreEqual("class C { void NewMethodName() { } }", tree.GetText().ToString());
}