/// <summary> /// Same as GetTypeString, but without containing type/namespace. /// </summary> private string BuildTypeStringHelper(TypeSymbol symbol, out string typeArgumentsOpt, out string assemblyNameSuffix) { if (symbol.GetMemberArity() > 0) { PooledStringBuilder pool = PooledStringBuilder.GetInstance(); StringBuilder builder = pool.Builder; bool first = true; foreach (TypeSymbol typeArg in symbol.GetMemberTypeArgumentsNoUseSiteDiagnostics()) { if (!first) { builder.Append(","); } first = false; builder.Append(BuildTypeArgumentString(typeArg)); } typeArgumentsOpt = pool.ToStringAndFree(); } else { typeArgumentsOpt = null; } assemblyNameSuffix = ", " + symbol.ContainingAssembly.Identity.GetDisplayName(); return(symbol.MetadataName); //should include backtick+arity if required }
/// <summary> /// Same as GetTypeString, but without containing type/namespace. /// </summary> private string BuildTypeStringHelper(TypeSymbol symbol, out string typeArgumentsOpt, out string assemblyNameSuffix) { if (symbol.GetMemberArity() > 0) { PooledStringBuilder pool = PooledStringBuilder.GetInstance(); StringBuilder builder = pool.Builder; bool first = true; foreach (TypeSymbol typeArg in symbol.GetMemberTypeArgumentsNoUseSiteDiagnostics()) { if (!first) { builder.Append(","); } first = false; builder.Append(BuildTypeArgumentString(typeArg)); } typeArgumentsOpt = pool.ToStringAndFree(); } else { typeArgumentsOpt = null; } assemblyNameSuffix = ", " + symbol.ContainingAssembly.Identity.GetDisplayName(); return symbol.MetadataName; //should include backtick+arity if required }