private static RecordDeclarationSyntax GetNewNode( RecordDeclarationSyntax recordDeclaration, TypeParameterConstraintSyntax constraint, SemanticModel semanticModel) { int position = (recordDeclaration.OpenBraceToken != default) ? recordDeclaration.OpenBraceToken.SpanStart : recordDeclaration.SemicolonToken.SpanStart; string name = GetTypeParameterName(position, semanticModel); RecordDeclarationSyntax newNode = recordDeclaration.AddTypeParameterListParameters(TypeParameter(Identifier(name).WithRenameAnnotation())); if (constraint != null) { newNode = newNode.AddConstraintClauses(TypeParameterConstraintClause(name, constraint)); } return(newNode); }