Beispiel #1
0
        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);
        }