Skip to content

Commit 67bbd18

Browse files
committed
Fix XmlSyntaxFactory's handling of generic type and member names
1 parent 7fdbcef commit 67bbd18

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

OpenStackNetAnalyzers/OpenStackNetAnalyzers/DocumentDelegatingApiCallCodeFix.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,14 @@ private async Task<ConstructorDeclarationSyntax> DocumentConstructorAsync(CodeFi
120120
XmlSyntaxFactory.Text(" class"),
121121
XmlSyntaxFactory.NewLine(),
122122
XmlSyntaxFactory.Text("with the behavior provided by another "),
123-
XmlSyntaxFactory.SeeElement(SyntaxFactory.TypeCref(SyntaxFactory.ParseTypeName("global::OpenStack.Net.IHttpApiCall{T}"))),
123+
XmlSyntaxFactory.SeeElement(SyntaxFactory.TypeCref(SyntaxFactory.ParseTypeName("global::OpenStack.Net.IHttpApiCall<T>"))),
124124
XmlSyntaxFactory.Text(" instance.")),
125125
XmlSyntaxFactory.NewLine(),
126126
XmlSyntaxFactory.ParamElement(
127127
parameterName,
128128
XmlSyntaxFactory.List(
129129
XmlSyntaxFactory.Text("The "),
130-
XmlSyntaxFactory.SeeElement(SyntaxFactory.TypeCref(SyntaxFactory.ParseTypeName("global::OpenStack.Net.IHttpApiCall{T}"))),
130+
XmlSyntaxFactory.SeeElement(SyntaxFactory.TypeCref(SyntaxFactory.ParseTypeName("global::OpenStack.Net.IHttpApiCall<T>"))),
131131
XmlSyntaxFactory.Text(" providing the behavior for the API call."))),
132132
XmlSyntaxFactory.NewLine(),
133133
XmlSyntaxFactory.ExceptionElement(

OpenStackNetAnalyzers/OpenStackNetAnalyzers/XmlSyntaxFactory.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ public static XmlCrefAttributeSyntax CrefAttribute(CrefSyntax cref)
103103

104104
public static XmlCrefAttributeSyntax CrefAttribute(CrefSyntax cref, SyntaxKind quoteKind)
105105
{
106+
cref = cref.ReplaceTokens(cref.DescendantTokens(), ReplaceBracketTokens);
106107
return SyntaxFactory.XmlCrefAttribute(
107108
SyntaxFactory.XmlName("cref"),
108109
SyntaxFactory.Token(quoteKind),
@@ -275,5 +276,16 @@ public static XmlEmptyElementSyntax PreliminaryElement()
275276
{
276277
return EmptyElement("preliminary");
277278
}
279+
280+
private static SyntaxToken ReplaceBracketTokens(SyntaxToken originalToken, SyntaxToken rewrittenToken)
281+
{
282+
if (rewrittenToken.IsKind(SyntaxKind.LessThanToken) && string.Equals("<", rewrittenToken.Text, StringComparison.Ordinal))
283+
return SyntaxFactory.Token(rewrittenToken.LeadingTrivia, SyntaxKind.LessThanToken, "{", rewrittenToken.ValueText, rewrittenToken.TrailingTrivia);
284+
285+
if (rewrittenToken.IsKind(SyntaxKind.GreaterThanToken) && string.Equals(">", rewrittenToken.Text, StringComparison.Ordinal))
286+
return SyntaxFactory.Token(rewrittenToken.LeadingTrivia, SyntaxKind.GreaterThanToken, "}", rewrittenToken.ValueText, rewrittenToken.TrailingTrivia);
287+
288+
return rewrittenToken;
289+
}
278290
}
279291
}

0 commit comments

Comments
 (0)