| File: Utilities\CompilerFeatureRequiredAttribute.cs | Web Access |
| Project: src\sdk\src\Dotnet.Watch\DotNetWatchTasks\DotNetWatchTasks.csproj (DotNetWatchTasks) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // Copied from: // https://github.com/dotnet/runtime/blob/fdd104ec5e1d0d2aa24a6723995a98d0124f724b/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/CompilerFeatureRequiredAttribute.cs #if NET7_0_OR_GREATER using System.Runtime.CompilerServices; #pragma warning disable RS0016 // Add public types and members to the declared API (this is a supporting forwarder for an internal polyfill API) [assembly: TypeForwardedTo(typeof(CompilerFeatureRequiredAttribute))] #pragma warning restore RS0016 // Add public types and members to the declared API #else namespace System.Runtime.CompilerServices; /// <summary> /// Indicates that compiler support for a particular feature is required for the location where this attribute is applied. /// </summary> [AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = false)] internal sealed class CompilerFeatureRequiredAttribute : Attribute { public CompilerFeatureRequiredAttribute(string featureName) { FeatureName = featureName; } /// <summary> /// The name of the compiler feature. /// </summary> public string FeatureName { get; } /// <summary> /// If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand <see cref="FeatureName"/>. /// </summary> public bool IsOptional { get; init; } /// <summary> /// The <see cref="FeatureName"/> used for the ref structs C# feature. /// </summary> public const string RefStructs = nameof(RefStructs); /// <summary> /// The <see cref="FeatureName"/> used for the required members C# feature. /// </summary> public const string RequiredMembers = nameof(RequiredMembers); } #endif