File: src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SymbolDisplayPartExtensions.cs
Web Access
Project: src\src\Workspaces\CSharp\Portable\Microsoft.CodeAnalysis.CSharp.Workspaces.csproj (Microsoft.CodeAnalysis.CSharp.Workspaces)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
namespace Microsoft.CodeAnalysis.CSharp.Extensions;
 
internal static class SymbolDisplayPartExtensions
{
    public static SymbolDisplayPart MassageErrorTypeNames(this SymbolDisplayPart part, string? replacement = null)
    {
        if (part.Kind == SymbolDisplayPartKind.ErrorTypeName)
        {
            var text = part.ToString();
            if (text == string.Empty)
            {
                return replacement == null
                    ? new SymbolDisplayPart(SymbolDisplayPartKind.Keyword, null, "object")
                    : new SymbolDisplayPart(SymbolDisplayPartKind.Text, null, replacement);
            }
 
            if (SyntaxFacts.GetKeywordKind(text) != SyntaxKind.None)
            {
                return new SymbolDisplayPart(SymbolDisplayPartKind.ErrorTypeName, null, string.Format("@{0}", text));
            }
        }
 
        return part;
    }
}