| File: CommandLine\Feature.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.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; namespace Microsoft.CodeAnalysis; internal static class Feature { internal const string Strict = "strict"; internal const string UseLegacyStrongNameProvider = "UseLegacyStrongNameProvider"; internal const string UpdatedMemorySafetyRules = "updated-memory-safety-rules"; internal const string EnableGeneratorCache = "enable-generator-cache"; internal const string PdbPathDeterminism = "pdb-path-determinism"; internal const string DebugDeterminism = "debug-determinism"; internal const string DebugAnalyzers = "debug-analyzers"; internal const string RuntimeAsync = "runtime-async"; internal const string PEVerifyCompat = "peverify-compat"; internal const string FileBasedProgram = "FileBasedProgram"; internal const string NullablePublicOnly = "nullablePublicOnly"; internal const string RunNullableAnalysis = "run-nullable-analysis"; internal const string InterceptorsNamespaces = "InterceptorsNamespaces"; internal const string NoRefSafetyRulesAttribute = "noRefSafetyRulesAttribute"; internal const string DisableLengthBasedSwitch = "disable-length-based-switch"; internal const string ExperimentalDataSectionStringLiterals = "experimental-data-section-string-literals"; // For testing internal const string Experiment = "Experiment"; internal const string Test = "Test"; [Conditional("DEBUG")] internal static void AssertValidFeature(string s) { IEnumerable<string> flags = typeof(Feature) .GetFields(BindingFlags.NonPublic | BindingFlags.Static) .Where(f => f.FieldType == typeof(string) && f.IsLiteral) .Select(f => (string)f.GetRawConstantValue()!); Debug.Assert(flags.Contains(s), $"Unknown feature flag: {s}"); } }