From cd2896e3e9989d092419aea92bd8417eb7e2e485 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sun, 12 Aug 2018 16:20:16 +0200 Subject: [PATCH] Fix MethodToString and TypeToString output for generic types and methods in base Language implementation. --- ILSpy/Languages/Language.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/ILSpy/Languages/Language.cs b/ILSpy/Languages/Language.cs index a900e9279..5c253e0fd 100644 --- a/ILSpy/Languages/Language.cs +++ b/ILSpy/Languages/Language.cs @@ -249,12 +249,21 @@ namespace ICSharpCode.ILSpy } public override IType VisitOtherType(IType type) + { + WriteType(type); + return type; + } + + private void WriteType(IType type) { if (includeNamespace) builder.Append(type.FullName); else builder.Append(type.Name); - return type; + if (type.TypeParameterCount > 0) { + builder.Append('`'); + builder.Append(type.TypeParameterCount); + } } public override IType VisitTypeDefinition(ITypeDefinition type) @@ -315,10 +324,7 @@ namespace ICSharpCode.ILSpy builder.Append("typedref"); break; default: - if (includeNamespace) - builder.Append(type.FullName); - else - builder.Append(type.Name); + WriteType(type); break; } return type; @@ -359,6 +365,8 @@ namespace ICSharpCode.ILSpy buffer.Append(GetDisplayName(method, includeDeclaringTypeName, includeNamespace, includeNamespaceOfDeclaringTypeName)); var typeParameters = method.TypeParameters; if (typeParameters.Count > 0) { + buffer.Append("``"); + buffer.Append(typeParameters.Count); buffer.Append('<'); foreach (var tp in typeParameters) { if (i > 0)