# NOTE: Requires **VS2019 16.7** or later

# 'Performance' Rules from '6.0' release with 'None' analysis mode escalated to 'error' severity
# Description: 'Performance' Rules with enabled-by-default state from '6.0' release with 'None' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.

is_global = true

global_level = -99


# CA1805: Do not initialize unnecessarily
dotnet_diagnostic.CA1805.severity = none

# CA1806: Do not ignore method results
dotnet_diagnostic.CA1806.severity = none

# CA1821: Remove empty Finalizers
dotnet_diagnostic.CA1821.severity = none

# CA1822: Mark members as static
dotnet_diagnostic.CA1822.severity = none

# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
dotnet_diagnostic.CA1824.severity = none

# CA1825: Avoid zero-length array allocations
dotnet_diagnostic.CA1825.severity = none

# CA1826: Do not use Enumerable methods on indexable collections
dotnet_diagnostic.CA1826.severity = none

# CA1827: Do not use Count() or LongCount() when Any() can be used
dotnet_diagnostic.CA1827.severity = none

# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
dotnet_diagnostic.CA1828.severity = none

# CA1829: Use Length/Count property instead of Count() when available
dotnet_diagnostic.CA1829.severity = none

# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
dotnet_diagnostic.CA1830.severity = none

# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
dotnet_diagnostic.CA1831.severity = none

# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
dotnet_diagnostic.CA1832.severity = none

# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
dotnet_diagnostic.CA1833.severity = none

# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
dotnet_diagnostic.CA1834.severity = none

# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
dotnet_diagnostic.CA1835.severity = none

# CA1836: Prefer IsEmpty over Count
dotnet_diagnostic.CA1836.severity = none

# CA1837: Use 'Environment.ProcessId'
dotnet_diagnostic.CA1837.severity = none

# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
dotnet_diagnostic.CA1838.severity = none

# CA1839: Use 'Environment.ProcessPath'
dotnet_diagnostic.CA1839.severity = none

# CA1840: Use 'Environment.CurrentManagedThreadId'
dotnet_diagnostic.CA1840.severity = none

# CA1841: Prefer Dictionary.Contains methods
dotnet_diagnostic.CA1841.severity = none

# CA1842: Do not use 'WhenAll' with a single task
dotnet_diagnostic.CA1842.severity = none

# CA1843: Do not use 'WaitAll' with a single task
dotnet_diagnostic.CA1843.severity = none

# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
dotnet_diagnostic.CA1844.severity = none

# CA1845: Use span-based 'string.Concat'
dotnet_diagnostic.CA1845.severity = none

# CA1846: Prefer 'AsSpan' over 'Substring'
dotnet_diagnostic.CA1846.severity = none

# CA1847: Use char literal for a single character lookup
dotnet_diagnostic.CA1847.severity = none

# CA1848: Use the LoggerMessage delegates
dotnet_diagnostic.CA1848.severity = none

# CA1850: Prefer static 'HashData' method over 'ComputeHash'
dotnet_diagnostic.CA1850.severity = none

# CA1852: Seal internal types
dotnet_diagnostic.CA1852.severity = none

# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
dotnet_diagnostic.CA1853.severity = none

# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
dotnet_diagnostic.CA1854.severity = none

# CA1855: Prefer 'Clear' over 'Fill'
dotnet_diagnostic.CA1855.severity = none

# CA1856: Incorrect usage of ConstantExpected attribute
dotnet_diagnostic.CA1856.severity = none

# CA1857: A constant is expected for the parameter
dotnet_diagnostic.CA1857.severity = none

# CA1858: Use 'StartsWith' instead of 'IndexOf'
dotnet_diagnostic.CA1858.severity = none

# CA1859: Use concrete types when possible for improved performance
dotnet_diagnostic.CA1859.severity = none

# CA1860: Avoid using 'Enumerable.Any()' extension method
dotnet_diagnostic.CA1860.severity = none

# CA1861: Avoid constant arrays as arguments
dotnet_diagnostic.CA1861.severity = none

# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
dotnet_diagnostic.CA1862.severity = none

# CA1863: Use 'CompositeFormat'
dotnet_diagnostic.CA1863.severity = none

# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
dotnet_diagnostic.CA1864.severity = none

# CA1865: Use char overload
dotnet_diagnostic.CA1865.severity = none

# CA1866: Use char overload
dotnet_diagnostic.CA1866.severity = none

# CA1868: Unnecessary call to 'Contains(item)'
dotnet_diagnostic.CA1868.severity = none

# CA1869: Cache and reuse 'JsonSerializerOptions' instances
dotnet_diagnostic.CA1869.severity = none

# CA1870: Use a cached 'SearchValues' instance
dotnet_diagnostic.CA1870.severity = none

# CA1871: Do not pass a nullable struct to 'ArgumentNullException.ThrowIfNull'
dotnet_diagnostic.CA1871.severity = none

# CA1872: Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString'
dotnet_diagnostic.CA1872.severity = none
