This project is read-only.
1
Vote

Mismatch between ISymbol.GetDocumentationCommentId() and ids in documentation XML files.

description

In VS 2015 Preview, type: 'Console.WriteLine(' and scroll through the method overloads in the parameter info popup.
You'll notice that the 19th overload doesn't have any documentation information.

This is because that particular method Console.WriteLine (String, Object, Object, Object, Object) has varargs in its signature which C# doesn't support.

The code in DocumentationCommentIDVisitor.PartVisitor.VisitParameters() (DocumentationCommentIDVisitor.PartVisitor.cs) appends an extra comma if the symbol has varargs in its signature.
The result from GetDocumentationCommentId() for that symbol is "M:System.Console.WriteLine(System.String,System.Object,System.Object,System.Object,System.Object,)".

The id in the XML file for that method doesn't have the extra comma, and so the documentation for that symbol is not found.

This issue doesn't occur in pre-Roslyn VS 2013. It seems like the way to fix this is to use the same algorithm the older compiler used in producing symbol documentation ids.

On a slightly related note, the documentation comment for the new (.NET v4.5.3) unsafe StringBuilder.Append(System.Char*,System.Int32) method is not in the mscorlib.xml file, resulting in no documentation for that symbol in VS 2015 Preview.

comments