| File: Symbols\Attributes\ObsoleteAttributeData.cs | Web Access |
| Project: src\roslyn\src\Compilers\Core\Portable\Microsoft.CodeAnalysis.csproj (Microsoft.CodeAnalysis) |
// 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. using System; namespace Microsoft.CodeAnalysis { internal enum ObsoleteAttributeKind { None, Uninitialized, Obsolete, Deprecated, WindowsExperimental, Experimental, } /// <summary> /// Information decoded from <see cref="ObsoleteAttribute"/>. /// </summary> internal sealed class ObsoleteAttributeData { public static readonly ObsoleteAttributeData Uninitialized = new ObsoleteAttributeData(ObsoleteAttributeKind.Uninitialized, message: null, isError: false, diagnosticId: null, urlFormat: null); public static readonly ObsoleteAttributeData WindowsExperimental = new ObsoleteAttributeData(ObsoleteAttributeKind.WindowsExperimental, message: null, isError: false, diagnosticId: null, urlFormat: null); public const string DiagnosticIdPropertyName = "DiagnosticId"; public const string UrlFormatPropertyName = "UrlFormat"; public const string MessagePropertyName = "Message"; public ObsoleteAttributeData(ObsoleteAttributeKind kind, string? message, bool isError, string? diagnosticId, string? urlFormat) { Kind = kind; Message = message; IsError = isError; DiagnosticId = diagnosticId; UrlFormat = urlFormat; } public readonly ObsoleteAttributeKind Kind; /// <summary> /// True if an error should be thrown for the <see cref="ObsoleteAttribute"/>. Default is false in which case /// a warning is thrown. /// </summary> public readonly bool IsError; /// <summary> /// The message that will be shown when an error/warning is created for <see cref="ObsoleteAttribute"/>. /// </summary> public readonly string? Message; /// <summary> /// The custom diagnostic ID to use for obsolete diagnostics. /// If null, diagnostics are produced using the compiler default diagnostic IDs. /// </summary> public readonly string? DiagnosticId; /// <summary> /// <para> /// The custom help URL format string for obsolete diagnostics. /// Expected to contain zero or one format items. /// </para> /// <para> /// When specified, the obsolete diagnostic's <see cref="DiagnosticDescriptor.HelpLinkUri"/> will be produced /// by formatting this string using the <see cref="DiagnosticId"/> as the single argument. /// </para> /// /// <example> /// e.g. with a <see cref="DiagnosticId"/> value <c>"TEST1"</c>, /// and a <see cref="UrlFormat"/> value <a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/{0}/"/>,<br/> /// the diagnostic will have the HelpLinkUri <a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/TEST1/"/>. /// </example> /// </summary> public readonly string? UrlFormat; internal bool IsUninitialized { get { return ReferenceEquals(this, Uninitialized); } } } }