().Where(): Replace with OfType(Of ..)().Where(..)",
"enabled": true,
"description": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Where(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)"
},
{
"shortName": "VBReplaceWithSingleAssignment.1",
"displayName": "Replace with single assignment: Replace with single assignment",
"enabled": true,
"description": "Dim $x$ = False\r\nIf($bool1$) Then $x$ = True\r\n"
},
{
"shortName": "VBReplaceWithSingleAssignment.2",
"displayName": "Replace with single assignment: Replace with single assignment",
"enabled": true,
"description": "Dim $x$ = True\r\nIf($bool1$) Then $x$ = False\r\n"
},
{
"shortName": "VBReplaceWithSingleCallToAny",
"displayName": "Replace with single call to Any(..): Replace with single call to Any(..)",
"enabled": true,
"description": "$seq$.Where(Function ($x$) $expr$).Any()"
},
{
"shortName": "VBReplaceWithSingleCallToCount",
"displayName": "Replace with single call to Count(..): Replace with single call to Count(..)",
"enabled": true,
"description": "$seq$.Where(Function ($x$) $expr$).Count()"
},
{
"shortName": "VBReplaceWithSingleCallToFirst",
"displayName": "Replace with single call to First(..): Replace with single call to First(..)",
"enabled": true,
"description": "$seq$.Where(Function ($x$) $expr$).First()"
},
{
"shortName": "VBReplaceWithSingleCallToFirstOrDefault",
"displayName": "Replace with single call to FirstOrDefault(..): Replace with single call to FirstOrDefault(..)",
"enabled": true,
"description": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()"
},
{
"shortName": "VBReplaceWithSingleCallToLast",
"displayName": "Replace with single call to Last(..): Replace with single call to Last(..)",
"enabled": true,
"description": "$seq$.Where(Function ($x$) $expr$).Last()"
},
{
"shortName": "VBReplaceWithSingleCallToLastOrDefault",
"displayName": "Replace with single call to LastOrDefault(..): Replace with single call to LastOrDefault(..)",
"enabled": true,
"description": "$seq$.Where(Function ($x$) $expr$).LastOrDefault()"
},
{
"shortName": "VBReplaceWithSingleCallToSingle",
"displayName": "Replace with single call to Single(..): Replace with single call to Single(..)",
"enabled": true,
"description": "$seq$.Where(Function ($x$) $expr$).Single()"
},
{
"shortName": "VBReplaceWithSingleCallToSingleOrDefault",
"displayName": "Replace with single call to SingleOrDefault(..): Replace with single call to SingleOrDefault(..)",
"enabled": true,
"description": "$seq$.Where(Function ($x$) $expr$).SingleOrDefault()"
},
{
"shortName": "VBReplaceWithSingleOrDefault",
"displayName": "Replace with SingleOrDefault($args$): Replace with SingleOrDefault($args$)",
"enabled": true,
"description": "If ($seq$.Any($args$), $seq$.Single($args$), Nothing)"
},
{
"shortName": "VBSimplifyLinqExpression.1",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.Any(Function ($x$) Not $expr$)"
},
{
"shortName": "VBSimplifyLinqExpression.10",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.All(Function ($x$) $expr$ = $expr2$)"
},
{
"shortName": "VBSimplifyLinqExpression.2",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.All(Function ($x$) Not $expr$)"
},
{
"shortName": "VBSimplifyLinqExpression.3",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)"
},
{
"shortName": "VBSimplifyLinqExpression.4",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.Any(Function ($x$) $expr$ <> $expr2$)"
},
{
"shortName": "VBSimplifyLinqExpression.5",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)"
},
{
"shortName": "VBSimplifyLinqExpression.6",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.All(Function ($x$) $expr$ <> $expr2$)"
},
{
"shortName": "VBSimplifyLinqExpression.7",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)"
},
{
"shortName": "VBSimplifyLinqExpression.8",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)"
},
{
"shortName": "VBSimplifyLinqExpression.9",
"displayName": "Simplify expression: Simplify expression",
"enabled": true,
"description": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)"
},
{
"shortName": "VBStringCompareIsCultureSpecific.1",
"displayName": "String.Compare is culture-specific: String.Compare(string, string) is culture-specific",
"enabled": true,
"description": "$s$.Compare($s1$, $s2$)"
},
{
"shortName": "VBStringCompareIsCultureSpecific.2",
"displayName": "String.Compare is culture-specific: String.Compare(string, string, bool) is culture-specific",
"enabled": true,
"description": "$string$.Compare($s1$, $s2$, false)"
},
{
"shortName": "VBStringCompareIsCultureSpecific.3",
"displayName": "String.Compare is culture-specific: String.Compare(string, string, bool) is culture-specific",
"enabled": true,
"description": "$string$.Compare($s1$, $s2$, true)"
},
{
"shortName": "VBStringCompareIsCultureSpecific.4",
"displayName": "String.Compare is culture-specific: String.Compare(string, int, string, int) is culture-specific",
"enabled": true,
"description": "$s$.Compare($s1$, $i1$, $s2$, $i2$)"
},
{
"shortName": "VBStringCompareIsCultureSpecific.5",
"displayName": "String.Compare is culture-specific: String.Compare(string, int, string, int, bool) is culture-specific",
"enabled": true,
"description": "$s$.Compare($s1$, $i1$, $s2$, $i2$, false)"
},
{
"shortName": "VBStringCompareIsCultureSpecific.6",
"displayName": "String.Compare is culture-specific: String.Compare(string, int, string, int, bool) is culture-specific",
"enabled": true,
"description": "$s$.Compare($s1$, $i1$, $s2$, $i2$, true)"
},
{
"shortName": "VBStringCompareToIsCultureSpecific",
"displayName": "String.CompareTo is culture-specific: String.CompareTo is culture-specific",
"enabled": true,
"description": "$s1$.CompareTo($s2$)"
},
{
"shortName": "VBStringEndsWithIsCultureSpecific",
"displayName": "String.EndsWith is culture-specific: String.EndsWith(string) is culture-specific",
"enabled": true,
"description": "$s$.EndsWith($sarg$)"
},
{
"shortName": "VBStringIndexOfIsCultureSpecific.1",
"displayName": "String.IndexOf is culture-specific: String.IndexOf(string) is culture-specific",
"enabled": true,
"description": "$s$.IndexOf($sarg$)"
},
{
"shortName": "VBStringIndexOfIsCultureSpecific.2",
"displayName": "String.IndexOf is culture-specific: String.IndexOf(string, int) is culture-specific",
"enabled": true,
"description": "$s$.IndexOf($sarg$, $iarg1$)"
},
{
"shortName": "VBStringIndexOfIsCultureSpecific.3",
"displayName": "String.IndexOf is culture-specific: String.IndexOf(string, int) is culture-specific",
"enabled": true,
"description": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$)"
},
{
"shortName": "VBStringLastIndexOfIsCultureSpecific.1",
"displayName": "String.LastIndexOf is culture-specific: String.LastIndexOf(string) is culture-specific",
"enabled": true,
"description": "$s$.LastIndexOf($sarg$)"
},
{
"shortName": "VBStringLastIndexOfIsCultureSpecific.2",
"displayName": "String.LastIndexOf is culture-specific: String.LastIndexOf(string, int) is culture-specific",
"enabled": true,
"description": "$s$.LastIndexOf($sarg$, $iarg1$)"
},
{
"shortName": "VBStringLastIndexOfIsCultureSpecific.3",
"displayName": "String.LastIndexOf is culture-specific: String.LastIndexOf(string, int) is culture-specific",
"enabled": true,
"description": "$s$.LastIndexOf($sarg$, $iarg1$, $iarg2$)"
},
{
"shortName": "VBStringStartsWithIsCultureSpecific",
"displayName": "String.StartsWith is culture-specific: String.StartsWith(string) is culture-specific",
"enabled": true,
"description": "$s$.StartsWith($sarg$)"
},
{
"shortName": "VBUseArrayCreationExpression.1",
"displayName": "Use array creation expression: Use array creation expression",
"enabled": true,
"description": "Array.CreateInstance(GetType($T$), $long$)"
},
{
"shortName": "VBUseArrayCreationExpression.2",
"displayName": "Use array creation expression: Use array creation expression",
"enabled": true,
"description": "Array.CreateInstance(GetType($T$), $long$, $long2$)"
},
{
"shortName": "VBUseFirstInstead",
"displayName": "Use First() instead: Use First() instead",
"enabled": true,
"description": "$enumerable$.FirstOrDefault().$method$(...)"
},
{
"shortName": "VBUseMethodAny.1",
"displayName": "Use method Any(): Use method Any()",
"enabled": true,
"description": "$seq$.Count() > 0"
},
{
"shortName": "VBUseMethodAny.2",
"displayName": "Use method Any(): Use method Any()",
"enabled": true,
"description": "$seq$.Count() >= 1"
},
{
"shortName": "VBUseMethodAny.3",
"displayName": "Use method Any(): Use method Any()",
"enabled": true,
"description": "$seq$.Count() = 0"
},
{
"shortName": "VBUseMethodAny.4",
"displayName": "Use method Any(): Use method Any()",
"enabled": true,
"description": "$seq$.Count() <= 0"
},
{
"shortName": "VBUseMethodAny.5",
"displayName": "Use method Any(): Use method Any()",
"enabled": true,
"description": "$seq$.Count() < 1"
},
{
"shortName": "VBUseMethodIsInstanceOfType",
"displayName": "Use method IsInstanceOfType(..): Use method IsInstanceOfType(..)",
"enabled": true,
"description": "$type$.IsAssignableFrom($expr$.GetType())"
},
{
"shortName": "VBUseTypeOfIsOperator.1",
"displayName": "Use 'TypeOf .. Is ..' operator: Use 'TypeOf .. Is ..' operator",
"enabled": true,
"description": "GetType($T$).IsAssignableFrom($expr$.GetType())"
},
{
"shortName": "VBUseTypeOfIsOperator.2",
"displayName": "Use 'TypeOf .. Is ..' operator: Use 'TypeOf .. Is ..' operator",
"enabled": true,
"description": "GetType($T$).IsInstanceOfType($expr$)"
}
]
},
{
"name": "Compiler Warnings",
"categoryPath": [
{
"id": "CSHARP",
"name": "C#"
},
{
"id": "CSHARP.CompilerWarnings",
"name": "Compiler Warnings"
}
],
"inspections": [
{
"shortName": "CSharpWarnings::CA2252",
"displayName": "Opt in to preview features before using them.",
"enabled": true,
"description": "Opt in to preview features before using them."
},
{
"shortName": "CSharpWarnings::CA2254",
"displayName": "Template should be a static expression",
"enabled": true,
"description": "Template should be a static expression"
},
{
"shortName": "CSharpWarnings::CS0078",
"displayName": "The 'l' suffix is easily confused with the digit '1'",
"enabled": true,
"description": "The 'l' suffix is easily confused with the digit '1'"
},
{
"shortName": "CSharpWarnings::CS0108,CS0114",
"displayName": "Keyword 'new' is required",
"enabled": true,
"description": "Keyword 'new' is required"
},
{
"shortName": "CSharpWarnings::CS0109",
"displayName": "Keyword 'new' is redundant",
"enabled": true,
"description": "Keyword 'new' is redundant"
},
{
"shortName": "CSharpWarnings::CS0162",
"displayName": "Code is unreachable",
"enabled": true,
"description": "Code is unreachable"
},
{
"shortName": "CSharpWarnings::CS0183",
"displayName": "Given expression is always of the provided type",
"enabled": true,
"description": "Given expression is always of the provided type"
},
{
"shortName": "CSharpWarnings::CS0184",
"displayName": "Given expression is never of the provided type",
"enabled": true,
"description": "Given expression is never of the provided type"
},
{
"shortName": "CSharpWarnings::CS0197",
"displayName": "Taking address of marshal-by-reference class field",
"enabled": true,
"description": "Taking address of marshal-by-reference class field"
},
{
"shortName": "CSharpWarnings::CS0252,CS0253",
"displayName": "Possible unintended reference comparison",
"enabled": true,
"description": "Possible unintended reference comparison"
},
{
"shortName": "CSharpWarnings::CS0282",
"displayName": "There is no defined ordering between fields in multiple declarations of partial struct. To specify an ordering, all instance fields must be in the same declaration.",
"enabled": true,
"description": "There is no defined ordering between fields in multiple declarations of partial struct. To specify an ordering, all instance fields must be in the same declaration."
},
{
"shortName": "CSharpWarnings::CS0420",
"displayName": "Reference to a volatile field will not be treated as volatile",
"enabled": true,
"description": "Reference to a volatile field will not be treated as volatile"
},
{
"shortName": "CSharpWarnings::CS0458",
"displayName": "The result of the expression is always 'null' of nullable type",
"enabled": true,
"description": "The result of the expression is always 'null' of nullable type"
},
{
"shortName": "CSharpWarnings::CS0464",
"displayName": "Comparing with null of nullable value type always produces 'false'",
"enabled": true,
"description": "Comparing with null of nullable value type always produces 'false'"
},
{
"shortName": "CSharpWarnings::CS0465",
"displayName": "Introducing a 'Finalize' method can interfere with destructor invocation",
"enabled": true,
"description": "Introducing a 'Finalize' method can interfere with destructor invocation"
},
{
"shortName": "CSharpWarnings::CS0469",
"displayName": "'goto case' value is not implicitly convertible to required type",
"enabled": true,
"description": "'goto case' value is not implicitly convertible to required type"
},
{
"shortName": "CSharpWarnings::CS0472",
"displayName": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'",
"enabled": true,
"description": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'"
},
{
"shortName": "CSharpWarnings::CS0612",
"displayName": "Use of obsolete symbol (without message)",
"enabled": true,
"description": "Use of obsolete symbol (without message)"
},
{
"shortName": "CSharpWarnings::CS0618",
"displayName": "Use of obsolete symbol",
"enabled": true,
"description": "Use of obsolete symbol"
},
{
"shortName": "CSharpWarnings::CS0628",
"displayName": "Declaring new protected member in sealed class is the same as declaring it as private",
"enabled": true,
"description": "Declaring new protected member in sealed class is the same as declaring it as private"
},
{
"shortName": "CSharpWarnings::CS0642",
"displayName": "Possible mistaken empty statement",
"enabled": true,
"description": "Possible mistaken empty statement"
},
{
"shortName": "CSharpWarnings::CS0652",
"displayName": "Comparison to integral constant is useless; the constant is outside the range of type 'type'.",
"enabled": true,
"description": "Comparison to integral constant is useless; the constant is outside the range of type 'type'."
},
{
"shortName": "CSharpWarnings::CS0657",
"displayName": "'attribute modifier' is not a valid attribute location for this declaration. All attributes in this block will be ignored",
"enabled": true,
"description": "'attribute modifier' is not a valid attribute location for this declaration. All attributes in this block will be ignored"
},
{
"shortName": "CSharpWarnings::CS0658",
"displayName": "'attribute modifier' is not a recognized attribute location. All attributes in this block will be ignored",
"enabled": true,
"description": "'attribute modifier' is not a recognized attribute location. All attributes in this block will be ignored"
},
{
"shortName": "CSharpWarnings::CS0659",
"displayName": "Class overrides Object.Equals(object o) but not Object.GetHashCode()",
"enabled": true,
"description": "Class overrides Object.Equals(object o) but not Object.GetHashCode()"
},
{
"shortName": "CSharpWarnings::CS0660,CS0661",
"displayName": "Operator '==' or operator '!=' with 'Object.Equals(object o)' and 'Object.GetHashCode()' not overridden",
"enabled": true,
"description": "Operator '==' or operator '!=' with 'Object.Equals(object o)' and 'Object.GetHashCode()' not overridden"
},
{
"shortName": "CSharpWarnings::CS0665",
"displayName": "Assignment in conditional expression",
"enabled": true,
"description": "Assignment in conditional expression"
},
{
"shortName": "CSharpWarnings::CS0672",
"displayName": "Member overrides obsolete member",
"enabled": true,
"description": "Member overrides obsolete member"
},
{
"shortName": "CSharpWarnings::CS0675",
"displayName": "Bitwise-or operator used on a sign-extended operand.",
"enabled": true,
"description": "Bitwise-or operator used on a sign-extended operand."
},
{
"shortName": "CSharpWarnings::CS0693",
"displayName": "Type parameter has the same name as a type parameter from the outer type",
"enabled": true,
"description": "Type parameter has the same name as a type parameter from the outer type"
},
{
"shortName": "CSharpWarnings::CS0728",
"displayName": "Possibly incorrect assignment to local which is the argument to a 'using' or 'lock' statement",
"enabled": true,
"description": "Possibly incorrect assignment to local which is the argument to a 'using' or 'lock' statement"
},
{
"shortName": "CSharpWarnings::CS0809",
"displayName": "Obsolete member overrides non-obsolete member",
"enabled": true,
"description": "Obsolete member overrides non-obsolete member"
},
{
"shortName": "CSharpWarnings::CS1030",
"displayName": "'#warning' directive",
"enabled": true,
"description": "'#warning' directive"
},
{
"shortName": "CSharpWarnings::CS1058",
"displayName": "A previous catch clause already catches all exceptions",
"enabled": true,
"description": "A previous catch clause already catches all exceptions"
},
{
"shortName": "CSharpWarnings::CS1066",
"displayName": "Default value specified for parameter will have no effect because it applies to a member that is used in contexts that do not allow optional arguments",
"enabled": true,
"description": "Default value specified for parameter will have no effect because it applies to a member that is used in contexts that do not allow optional arguments"
},
{
"shortName": "CSharpWarnings::CS1522",
"displayName": "Empty switch block",
"enabled": true,
"description": "Empty switch block"
},
{
"shortName": "CSharpWarnings::CS1570",
"displayName": "Invalid XML in XML comment",
"enabled": true,
"description": "Invalid XML in XML comment"
},
{
"shortName": "CSharpWarnings::CS1571",
"displayName": "Duplicate param tag in XML comment",
"enabled": true,
"description": "Duplicate param tag in XML comment"
},
{
"shortName": "CSharpWarnings::CS1572",
"displayName": "XML comment has a 'param' tag for 'Parameter', but there is no parameter by that name",
"enabled": true,
"description": "XML comment has a 'param' tag for 'Parameter', but there is no parameter by that name"
},
{
"shortName": "CSharpWarnings::CS1573",
"displayName": "Parameter has no matching param tag in the XML comment",
"enabled": true,
"description": "Parameter has no matching param tag in the XML comment"
},
{
"shortName": "CSharpWarnings::CS1574",
"displayName": "Ambiguous reference in XML comment",
"enabled": true,
"description": "Ambiguous reference in XML comment"
},
{
"shortName": "CSharpWarnings::CS1574,CS1584,CS1581,CS1580",
"displayName": "Cannot resolve reference in XML comment",
"enabled": true,
"description": "Cannot resolve reference in XML comment"
},
{
"shortName": "CSharpWarnings::CS1580",
"displayName": "Incorrect signature in XML comment",
"enabled": true,
"description": "Incorrect signature in XML comment"
},
{
"shortName": "CSharpWarnings::CS1584",
"displayName": "Syntax error in XML comment",
"enabled": true,
"description": "Syntax error in XML comment"
},
{
"shortName": "CSharpWarnings::CS1587",
"displayName": "XML comment is not placed on a valid language element",
"enabled": true,
"description": "XML comment is not placed on a valid language element"
},
{
"shortName": "CSharpWarnings::CS1589",
"displayName": "Unable to include XML fragment",
"enabled": true,
"description": "Unable to include XML fragment"
},
{
"shortName": "CSharpWarnings::CS1590",
"displayName": "Invalid XML include element",
"enabled": true,
"description": "Invalid XML include element"
},
{
"shortName": "CSharpWarnings::CS1591",
"displayName": "Missing XML comment for publicly visible type or member",
"enabled": true,
"description": "Compiler only produces XML documentation related warnings when 'XML Documentation' output generation option is enabled in project configuration settings (Project | Properties)"
},
{
"shortName": "CSharpWarnings::CS1592",
"displayName": "Badly formed XML in included comments file",
"enabled": true,
"description": "Badly formed XML in included comments file"
},
{
"shortName": "CSharpWarnings::CS1687",
"displayName": "Source file has exceeded the limit of 16,707,565 lines representable in the PDB; debug information will be incorrect",
"enabled": true,
"description": "Source file has exceeded the limit of 16,707,565 lines representable in the PDB; debug information will be incorrect"
},
{
"shortName": "CSharpWarnings::CS1710",
"displayName": "Duplicate typeparam tag in XML comment",
"enabled": true,
"description": "Duplicate typeparam tag in XML comment"
},
{
"shortName": "CSharpWarnings::CS1711",
"displayName": "XML comment has a 'typeparam' tag for 'TypeParameter', but there is no type parameter by that name",
"enabled": true,
"description": "XML comment has a 'typeparam' tag for 'TypeParameter', but there is no type parameter by that name"
},
{
"shortName": "CSharpWarnings::CS1712",
"displayName": "Type parameter has no matching typeparam tag in the XML comment",
"enabled": true,
"description": "Type parameter has no matching typeparam tag in the XML comment"
},
{
"shortName": "CSharpWarnings::CS1717",
"displayName": "Assignment made to same variable",
"enabled": true,
"description": "Assignment made to same variable"
},
{
"shortName": "CSharpWarnings::CS1723",
"displayName": "XML comment has cref attribute that refers to a type parameter",
"enabled": true,
"description": "XML comment has cref attribute that refers to a type parameter"
},
{
"shortName": "CSharpWarnings::CS1911",
"displayName": "Access to a member through 'base' keyword from anonymous method, lambda expression, query expression or iterator results in unverifiable code",
"enabled": true,
"description": "Access to a member through 'base' keyword from anonymous method, lambda expression, query expression or iterator results in unverifiable code"
},
{
"shortName": "CSharpWarnings::CS1957",
"displayName": "Multiple override candidates at run-time",
"enabled": true,
"description": "Multiple override candidates at run-time"
},
{
"shortName": "CSharpWarnings::CS1981",
"displayName": "Using 'is' to test compatibility with 'dynamic' is essentially identical to testing compatibility with 'Object' and will succeed for all non-null values",
"enabled": true,
"description": "Using 'is' to test compatibility with 'dynamic' is essentially identical to testing compatibility with 'Object' and will succeed for all non-null values"
},
{
"shortName": "CSharpWarnings::CS1998",
"displayName": "Async function without await expression",
"enabled": true,
"description": "Async function without await expression"
},
{
"shortName": "CSharpWarnings::CS4014",
"displayName": "Async method invocation without await expression",
"enabled": true,
"description": "Async method invocation without await expression"
},
{
"shortName": "CSharpWarnings::CS4024",
"displayName": "The CallerLineNumberAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments",
"enabled": true,
"description": "The CallerLineNumberAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments"
},
{
"shortName": "CSharpWarnings::CS4025",
"displayName": "The CallerFilePathAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments",
"enabled": true,
"description": "The CallerFilePathAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments"
},
{
"shortName": "CSharpWarnings::CS4026",
"displayName": "The CallerMemberNameAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments",
"enabled": true,
"description": "The CallerMemberNameAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments"
},
{
"shortName": "CSharpWarnings::CS7022",
"displayName": "The 'Main' method will not be used as an entry point because compilation unit with top-level statements was found.",
"enabled": true,
"description": "The 'Main' method will not be used as an entry point because compilation unit with top-level statements was found."
},
{
"shortName": "CSharpWarnings::CS7023",
"displayName": "Static type in 'is' or 'as' operator.",
"enabled": true,
"description": "Static type in 'is' or 'as' operator."
},
{
"shortName": "CSharpWarnings::CS7080",
"displayName": "The CallerMemberNameAttribute will have no effect; it is overridden by the CallerFilePathAttribute",
"enabled": true,
"description": "The CallerMemberNameAttribute will have no effect; it is overridden by the CallerFilePathAttribute"
},
{
"shortName": "CSharpWarnings::CS7081",
"displayName": "The CallerMemberNameAttribute will have no effect; it is overridden by the CallerLineNumberAttribute",
"enabled": true,
"description": "The CallerMemberNameAttribute will have no effect; it is overridden by the CallerLineNumberAttribute"
},
{
"shortName": "CSharpWarnings::CS7082",
"displayName": "The CallerFilePathAttribute will have no effect; it is overridden by the CallerLineNumberAttribute",
"enabled": true,
"description": "The CallerFilePathAttribute will have no effect; it is overridden by the CallerLineNumberAttribute"
},
{
"shortName": "CSharpWarnings::CS7095",
"displayName": "Filter expression is a constant, consider removing the filter",
"enabled": true,
"description": "Filter expression is a constant, consider removing the filter"
},
{
"shortName": "CSharpWarnings::CS8073",
"displayName": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'",
"enabled": true,
"description": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'"
},
{
"shortName": "CSharpWarnings::CS8094",
"displayName": "Alignment value 'value' has a magnitude greater than 'magnitude limit' and may result in a large formatted string.",
"enabled": true,
"description": "Alignment value 'value' has a magnitude greater than 'magnitude limit' and may result in a large formatted string."
},
{
"shortName": "CSharpWarnings::CS8123",
"displayName": "The tuple element name is ignored because a different name or no name is specified by the target type.",
"enabled": true,
"description": "The tuple element name is ignored because a different name or no name is specified by the target type."
},
{
"shortName": "CSharpWarnings::CS8305",
"displayName": "Type is for evaluation purposes only and is subject to change or removal in future updates.",
"enabled": true,
"description": "Type is for evaluation purposes only and is subject to change or removal in future updates."
},
{
"shortName": "CSharpWarnings::CS8383",
"displayName": "The tuple element name is ignored because a different name or no name is specified on the other side of the tuple == or != operator.",
"enabled": true,
"description": "The tuple element name is ignored because a different name or no name is specified on the other side of the tuple == or != operator."
},
{
"shortName": "CSharpWarnings::CS8424",
"displayName": "The 'EnumeratorCancellation' attribute is only effective on a parameter of type 'CancellationToken' in an async-iterator method returning 'IAsyncEnumerable<>'.",
"enabled": true,
"description": "The 'EnumeratorCancellation' attribute is only effective on a parameter of type 'CancellationToken' in an async-iterator method returning 'IAsyncEnumerable<>'."
},
{
"shortName": "CSharpWarnings::CS8425",
"displayName": "Async-iterator has one or more parameters of type 'CancellationToken' but none of them is annotated with the 'EnumeratorCancellation' attribute.",
"enabled": true,
"description": "Async-iterator has one or more parameters of type 'CancellationToken' but none of them is annotated with the 'EnumeratorCancellation' attribute."
},
{
"shortName": "CSharpWarnings::CS8500",
"displayName": "This takes the address of, gets the size of, or declares a pointer to a managed type.",
"enabled": true,
"description": "This takes the address of, gets the size of, or declares a pointer to a managed type."
},
{
"shortName": "CSharpWarnings::CS8509",
"displayName": "The switch expression does not handle all possible inputs (it is not exhaustive).",
"enabled": true,
"description": "The switch expression does not handle all possible inputs (it is not exhaustive)."
},
{
"shortName": "CSharpWarnings::CS8519",
"displayName": "The given expression never matches the provided pattern.",
"enabled": true,
"description": "The given expression never matches the provided pattern."
},
{
"shortName": "CSharpWarnings::CS8520",
"displayName": "The given expression always matches the provided constant.",
"enabled": true,
"description": "The given expression always matches the provided constant."
},
{
"shortName": "CSharpWarnings::CS8524",
"displayName": "The switch expression does not handle some values of its input type (it is not exhaustive) involving an unnamed enum value.",
"enabled": true,
"description": "The switch expression does not handle some values of its input type (it is not exhaustive) involving an unnamed enum value."
},
{
"shortName": "CSharpWarnings::CS8597",
"displayName": "Thrown value may be null.",
"enabled": true,
"description": "Thrown value may be null."
},
{
"shortName": "CSharpWarnings::CS8600",
"displayName": "Converting null literal or possible null value to non-nullable type.",
"enabled": true,
"description": "Converting null literal or possible null value to non-nullable type."
},
{
"shortName": "CSharpWarnings::CS8601",
"displayName": "Possible null reference assignment.",
"enabled": true,
"description": "Possible null reference assignment."
},
{
"shortName": "CSharpWarnings::CS8602",
"displayName": "Dereference of a possibly null reference.",
"enabled": true,
"description": "Dereference of a possibly null reference."
},
{
"shortName": "CSharpWarnings::CS8603",
"displayName": "Possible null reference return.",
"enabled": true,
"description": "Possible null reference return."
},
{
"shortName": "CSharpWarnings::CS8604",
"displayName": "Possible null reference argument for a parameter.",
"enabled": true,
"description": "Possible null reference argument for a parameter."
},
{
"shortName": "CSharpWarnings::CS8605",
"displayName": "Unboxing a possibly null value.",
"enabled": true,
"description": "Unboxing a possibly null value."
},
{
"shortName": "CSharpWarnings::CS8607",
"displayName": "A possible null value may not be used for a type marked with [NotNull] or [DisallowNull].",
"enabled": true,
"description": "A possible null value may not be used for a type marked with [NotNull] or [DisallowNull]."
},
{
"shortName": "CSharpWarnings::CS8608",
"displayName": "Nullability of reference types in type doesn't match overridden member.",
"enabled": true,
"description": "Nullability of reference types in type doesn't match overridden member."
},
{
"shortName": "CSharpWarnings::CS8609",
"displayName": "Nullability of reference types in return type doesn't match overridden member.",
"enabled": true,
"description": "Nullability of reference types in return type doesn't match overridden member."
},
{
"shortName": "CSharpWarnings::CS8610",
"displayName": "Nullability of reference types in type of parameter doesn't match overridden member.",
"enabled": true,
"description": "Nullability of reference types in type of parameter doesn't match overridden member."
},
{
"shortName": "CSharpWarnings::CS8611",
"displayName": "Nullability of reference types in type of parameter doesn't match partial member declaration.",
"enabled": true,
"description": "Nullability of reference types in type of parameter doesn't match partial member declaration."
},
{
"shortName": "CSharpWarnings::CS8612",
"displayName": "Nullability of reference types in type doesn't match implicitly implemented member.",
"enabled": true,
"description": "Nullability of reference types in type doesn't match implicitly implemented member."
},
{
"shortName": "CSharpWarnings::CS8613",
"displayName": "Nullability of reference types in return type doesn't match implicitly implemented member.",
"enabled": true,
"description": "Nullability of reference types in return type doesn't match implicitly implemented member."
},
{
"shortName": "CSharpWarnings::CS8614",
"displayName": "Nullability of reference types in type of parameter doesn't match implicitly implemented member.",
"enabled": true,
"description": "Nullability of reference types in type of parameter doesn't match implicitly implemented member."
},
{
"shortName": "CSharpWarnings::CS8615",
"displayName": "Nullability of reference types in type doesn't match implemented member.",
"enabled": true,
"description": "Nullability of reference types in type doesn't match implemented member."
},
{
"shortName": "CSharpWarnings::CS8616",
"displayName": "Nullability of reference types in return type doesn't match implemented member.",
"enabled": true,
"description": "Nullability of reference types in return type doesn't match implemented member."
},
{
"shortName": "CSharpWarnings::CS8617",
"displayName": "Nullability of reference types in type of parameter doesn't match implemented member.",
"enabled": true,
"description": "Nullability of reference types in type of parameter doesn't match implemented member."
},
{
"shortName": "CSharpWarnings::CS8618",
"displayName": "Non-nullable member is uninitialized.",
"enabled": true,
"description": "Non-nullable member is uninitialized."
},
{
"shortName": "CSharpWarnings::CS8619",
"displayName": "Nullability of reference types in source type doesn't match target type.",
"enabled": true,
"description": "Nullability of reference types in source type doesn't match target type."
},
{
"shortName": "CSharpWarnings::CS8620",
"displayName": "Argument cannot be used for corresponding parameter due to differences in the nullability of reference types.",
"enabled": true,
"description": "Argument cannot be used for corresponding parameter due to differences in the nullability of reference types."
},
{
"shortName": "CSharpWarnings::CS8621",
"displayName": "Nullability of reference types in return type doesn't match the target delegate (possibly because of nullability attributes).",
"enabled": true,
"description": "Nullability of reference types in return type doesn't match the target delegate (possibly because of nullability attributes)."
},
{
"shortName": "CSharpWarnings::CS8622",
"displayName": "Nullability of reference types in type of a parameter doesn't match the target delegate (possibly because of nullability attributes).",
"enabled": true,
"description": "Nullability of reference types in type of a parameter doesn't match the target delegate (possibly because of nullability attributes)."
},
{
"shortName": "CSharpWarnings::CS8624",
"displayName": "Argument cannot be used as an output for parameter due to differences in the nullability of reference types.",
"enabled": true,
"description": "Argument cannot be used as an output for parameter due to differences in the nullability of reference types."
},
{
"shortName": "CSharpWarnings::CS8625",
"displayName": "Cannot convert null literal to non-nullable reference type.",
"enabled": true,
"description": "Cannot convert null literal to non-nullable reference type."
},
{
"shortName": "CSharpWarnings::CS8629",
"displayName": "Nullable value type may be null.",
"enabled": true,
"description": "Nullable value type may be null."
},
{
"shortName": "CSharpWarnings::CS8631",
"displayName": "Nullability of type argument doesn't match constraint type.",
"enabled": true,
"description": "Nullability of type argument doesn't match constraint type."
},
{
"shortName": "CSharpWarnings::CS8632",
"displayName": "The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.",
"enabled": true,
"description": "The annotation for nullable reference types should only be used in code within a '#nullable' annotations context."
},
{
"shortName": "CSharpWarnings::CS8633",
"displayName": "Nullability mismatch in constraints for type parameter.",
"enabled": true,
"description": "Nullability mismatch in constraints for type parameter."
},
{
"shortName": "CSharpWarnings::CS8634",
"displayName": "Nullability of type argument doesn't match 'class' constraint.",
"enabled": true,
"description": "Nullability of type argument doesn't match 'class' constraint."
},
{
"shortName": "CSharpWarnings::CS8643",
"displayName": "Nullability of reference types in explicit interface specifier doesn't match interface implemented by the type.",
"enabled": true,
"description": "Nullability of reference types in explicit interface specifier doesn't match interface implemented by the type."
},
{
"shortName": "CSharpWarnings::CS8644",
"displayName": "Nullability of reference types in interface implemented by the base type doesn't match.",
"enabled": true,
"description": "Nullability of reference types in interface implemented by the base type doesn't match."
},
{
"shortName": "CSharpWarnings::CS8645",
"displayName": "Type is already listed in the interface list with different nullability of reference types.",
"enabled": true,
"description": "Type is already listed in the interface list with different nullability of reference types."
},
{
"shortName": "CSharpWarnings::CS8655",
"displayName": "The switch expression does not handle some null inputs (it is not exhaustive).",
"enabled": true,
"description": "The switch expression does not handle some null inputs (it is not exhaustive)."
},
{
"shortName": "CSharpWarnings::CS8656",
"displayName": "Call to a non-readonly member from a 'readonly' member results in an implicit copy of 'this'",
"enabled": true,
"description": "Call to a non-readonly member from a 'readonly' member results in an implicit copy of 'this'"
},
{
"shortName": "CSharpWarnings::CS8667",
"displayName": "Partial method declarations have inconsistent nullability for type parameter.",
"enabled": true,
"description": "Partial method declarations have inconsistent nullability for type parameter."
},
{
"shortName": "CSharpWarnings::CS8669",
"displayName": "The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. Auto-generated code requires an explicit '#nullable' directive in source.",
"enabled": true,
"description": "The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. Auto-generated code requires an explicit '#nullable' directive in source."
},
{
"shortName": "CSharpWarnings::CS8670",
"displayName": "Object or collection initializer implicitly dereferences possibly null member.",
"enabled": true,
"description": "Object or collection initializer implicitly dereferences possibly null member."
},
{
"shortName": "CSharpWarnings::CS8714",
"displayName": "Nullability of type argument doesn't match 'notnull' constraint.",
"enabled": true,
"description": "Nullability of type argument doesn't match 'notnull' constraint."
},
{
"shortName": "CSharpWarnings::CS8762",
"displayName": "Parameter must conditionally have a non-null value when exiting a function.",
"enabled": true,
"description": "Parameter must conditionally have a non-null value when exiting a function."
},
{
"shortName": "CSharpWarnings::CS8763",
"displayName": "A method marked [DoesNotReturn] should not return.",
"enabled": true,
"description": "A method marked [DoesNotReturn] should not return."
},
{
"shortName": "CSharpWarnings::CS8764",
"displayName": "Nullability of return type doesn't match overridden member (possibly because of nullability attributes).",
"enabled": true,
"description": "Nullability of return type doesn't match overridden member (possibly because of nullability attributes)."
},
{
"shortName": "CSharpWarnings::CS8765",
"displayName": "Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes).",
"enabled": true,
"description": "Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes)."
},
{
"shortName": "CSharpWarnings::CS8766",
"displayName": "Nullability of return type doesn't match implicitly implemented member (possibly because of nullability attributes).",
"enabled": true,
"description": "Nullability of return type doesn't match implicitly implemented member (possibly because of nullability attributes)."
},
{
"shortName": "CSharpWarnings::CS8767",
"displayName": "Nullability of type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes).",
"enabled": true,
"description": "Nullability of type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes)."
},
{
"shortName": "CSharpWarnings::CS8768",
"displayName": "Nullability of return type doesn't match implemented member (possibly because of nullability attributes).",
"enabled": true,
"description": "Nullability of return type doesn't match implemented member (possibly because of nullability attributes)."
},
{
"shortName": "CSharpWarnings::CS8769",
"displayName": "Nullability of type of parameter doesn't match implemented member (possibly because of nullability attributes).",
"enabled": true,
"description": "Nullability of type of parameter doesn't match implemented member (possibly because of nullability attributes)."
},
{
"shortName": "CSharpWarnings::CS8770",
"displayName": "Method lacks '[DoesNotReturn]' annotation in order to match implemented or overridden member.",
"enabled": true,
"description": "Method lacks '[DoesNotReturn]' annotation in order to match implemented or overridden member."
},
{
"shortName": "CSharpWarnings::CS8774",
"displayName": "Member must have a non-null value when exiting.",
"enabled": true,
"description": "Member must have a non-null value when exiting."
},
{
"shortName": "CSharpWarnings::CS8775",
"displayName": "Member must conditionally have a non-null value when exiting a function.",
"enabled": true,
"description": "Member must conditionally have a non-null value when exiting a function."
},
{
"shortName": "CSharpWarnings::CS8776",
"displayName": "Member cannot be used in this attribute.",
"enabled": true,
"description": "Member cannot be used in this attribute."
},
{
"shortName": "CSharpWarnings::CS8777",
"displayName": "Parameter must have a non-null value when exiting.",
"enabled": true,
"description": "Parameter must have a non-null value when exiting."
},
{
"shortName": "CSharpWarnings::CS8794",
"displayName": "Given expression always matches the provided pattern",
"enabled": true,
"description": "Given expression always matches the provided pattern"
},
{
"shortName": "CSharpWarnings::CS8819",
"displayName": "Nullability of reference types in return type doesn't match partial method declaration.",
"enabled": true,
"description": "Nullability of reference types in return type doesn't match partial method declaration."
},
{
"shortName": "CSharpWarnings::CS8824",
"displayName": "Parameter must have a non-null value when exiting because parameter mentioned in [NotNullIfNotNull] annotation is non-null.",
"enabled": true,
"description": "Parameter must have a non-null value when exiting because parameter mentioned in [NotNullIfNotNull] annotation is non-null."
},
{
"shortName": "CSharpWarnings::CS8825",
"displayName": "Return value must be non-null because parameter mentioned in [NotNullIfNotNull] annotation is non-null.",
"enabled": true,
"description": "Return value must be non-null because parameter mentioned in [NotNullIfNotNull] annotation is non-null."
},
{
"shortName": "CSharpWarnings::CS8846",
"displayName": "The switch expression does not handle all possible values of its input type (it is not exhaustive). However, a pattern with a 'when' clause might successfully match this value.",
"enabled": true,
"description": "The switch expression does not handle all possible values of its input type (it is not exhaustive). However, a pattern with a 'when' clause might successfully match this value."
},
{
"shortName": "CSharpWarnings::CS8847",
"displayName": "The switch expression does not handle some null inputs (it is not exhaustive). However, a pattern with a 'when' clause might successfully match this value.",
"enabled": true,
"description": "The switch expression does not handle some null inputs (it is not exhaustive). However, a pattern with a 'when' clause might successfully match this value."
},
{
"shortName": "CSharpWarnings::CS8851",
"displayName": "Record defined 'Equals' but not 'GetHashCode'",
"enabled": true,
"description": "Record defined 'Equals' but not 'GetHashCode'"
},
{
"shortName": "CSharpWarnings::CS8860",
"displayName": "Types and aliases should not be named 'record'",
"enabled": true,
"description": "Types and aliases should not be named 'record'"
},
{
"shortName": "CSharpWarnings::CS8892",
"displayName": "Asynchronous 'Main' method will not be used as an entry point because a synchronous entry point was found.",
"enabled": true,
"description": "Asynchronous 'Main' method will not be used as an entry point because a synchronous entry point was found."
},
{
"shortName": "CSharpWarnings::CS8947",
"displayName": "Parameter occurs after interpolated string handler parameter in the parameter list.",
"enabled": true,
"description": "Parameter occurs after interpolated string handler parameter in the parameter list."
},
{
"shortName": "CSharpWarnings::CS8960",
"displayName": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerLineNumberAttribute",
"enabled": true,
"description": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerLineNumberAttribute"
},
{
"shortName": "CSharpWarnings::CS8961",
"displayName": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerFilePathAttribute",
"enabled": true,
"description": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerFilePathAttribute"
},
{
"shortName": "CSharpWarnings::CS8962",
"displayName": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerMemberNameAttribute",
"enabled": true,
"description": "The CallerArgumentExpressionAttribute will have no effect; it is overridden by the CallerMemberNameAttribute"
},
{
"shortName": "CSharpWarnings::CS8963",
"displayName": "The CallerArgumentExpressionAttribute is applied with an invalid parameter name.",
"enabled": true,
"description": "The CallerArgumentExpressionAttribute is applied with an invalid parameter name."
},
{
"shortName": "CSharpWarnings::CS8965",
"displayName": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential",
"enabled": true,
"description": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential"
},
{
"shortName": "CSharpWarnings::CS8966",
"displayName": "The CallerArgumentExpressionAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments",
"enabled": true,
"description": "The CallerArgumentExpressionAttribute will have no effect because it applies to a member that is used in contexts that do not allow optional arguments"
},
{
"shortName": "CSharpWarnings::CS8971",
"displayName": "[InterpolatedStringHandlerArgument] has no effect when applied to lambda parameters and will be ignored at the call site.",
"enabled": true,
"description": "[InterpolatedStringHandlerArgument] has no effect when applied to lambda parameters and will be ignored at the call site."
},
{
"shortName": "CSharpWarnings::CS8974",
"displayName": "Converting method group to non-delegate type 'object'.",
"enabled": true,
"description": "Converting method group to non-delegate type 'object'."
},
{
"shortName": "CSharpWarnings::CS8981",
"displayName": "The type name only contains lower-cased ASCII characters. Such names may become reserved for the language",
"enabled": true,
"description": "The type name only contains lower-cased ASCII characters. Such names may become reserved for the language"
},
{
"shortName": "CSharpWarnings::CS9042",
"displayName": "Obsolete members should not be required.",
"enabled": true,
"description": "Obsolete members should not be required."
},
{
"shortName": "CSharpWarnings::CS9073",
"displayName": "The 'scoped' modifier of a parameter doesn't match target delegate.",
"enabled": true,
"description": "The 'scoped' modifier of a parameter doesn't match target delegate."
},
{
"shortName": "CSharpWarnings::CS9074",
"displayName": "The 'scoped' modifier of parameter doesn't match overridden or implemented member.",
"enabled": true,
"description": "The 'scoped' modifier of parameter doesn't match overridden or implemented member."
},
{
"shortName": "CSharpWarnings::CS9080",
"displayName": "Use of a variable in this context may expose referenced variables outside of their declaration scope.",
"enabled": true,
"description": "Use of a variable in this context may expose referenced variables outside of their declaration scope."
},
{
"shortName": "CSharpWarnings::CS9081",
"displayName": "A result of a stackalloc expression in this context may be exposed outside of the containing method.",
"enabled": true,
"description": "A result of a stackalloc expression in this context may be exposed outside of the containing method."
},
{
"shortName": "CSharpWarnings::CS9082",
"displayName": "A local variable is returned by reference but was initialized to a value that cannot be returned by reference.",
"enabled": true,
"description": "A local variable is returned by reference but was initialized to a value that cannot be returned by reference."
},
{
"shortName": "CSharpWarnings::CS9083",
"displayName": "A member of a variable is returned by reference but was initialized to a value that cannot be returned by reference",
"enabled": true,
"description": "A member of a variable is returned by reference but was initialized to a value that cannot be returned by reference"
},
{
"shortName": "CSharpWarnings::CS9084",
"displayName": "Struct member returns 'this' or other instance members by reference.",
"enabled": true,
"description": "Struct member returns 'this' or other instance members by reference."
},
{
"shortName": "CSharpWarnings::CS9085",
"displayName": "This ref-assigns an expression to a variable with a narrower escape scope.",
"enabled": true,
"description": "This ref-assigns an expression to a variable with a narrower escape scope."
},
{
"shortName": "CSharpWarnings::CS9086",
"displayName": "The branches of the ref conditional operator refer to variables with incompatible declaration scopes.",
"enabled": true,
"description": "The branches of the ref conditional operator refer to variables with incompatible declaration scopes."
},
{
"shortName": "CSharpWarnings::CS9087",
"displayName": "This returns a parameter by reference but it is not a ref parameter.",
"enabled": true,
"description": "This returns a parameter by reference but it is not a ref parameter."
},
{
"shortName": "CSharpWarnings::CS9088",
"displayName": "This returns a parameter by reference but it is scoped to the current method.",
"enabled": true,
"description": "This returns a parameter by reference but it is scoped to the current method."
},
{
"shortName": "CSharpWarnings::CS9089",
"displayName": "This returns by reference a member of parameter that is not a ref or out parameter.",
"enabled": true,
"description": "This returns by reference a member of parameter that is not a ref or out parameter."
},
{
"shortName": "CSharpWarnings::CS9090",
"displayName": "This returns by reference a member of parameter that is scoped to the current method.",
"enabled": true,
"description": "This returns by reference a member of parameter that is scoped to the current method."
},
{
"shortName": "CSharpWarnings::CS9091",
"displayName": "This returns local by reference but it is not a ref local.",
"enabled": true,
"description": "This returns local by reference but it is not a ref local."
},
{
"shortName": "CSharpWarnings::CS9092",
"displayName": "This returns a member of local by reference but it is not a ref local.",
"enabled": true,
"description": "This returns a member of local by reference but it is not a ref local."
},
{
"shortName": "CSharpWarnings::CS9093",
"displayName": "This ref-assigns a value that can only escape the current method through a return statement.",
"enabled": true,
"description": "This ref-assigns a value that can only escape the current method through a return statement."
},
{
"shortName": "CSharpWarnings::CS9094",
"displayName": "This returns a parameter by reference through a ref parameter; but it can only safely be returned in a return statement.",
"enabled": true,
"description": "This returns a parameter by reference through a ref parameter; but it can only safely be returned in a return statement."
},
{
"shortName": "CSharpWarnings::CS9095",
"displayName": "This returns by reference a member of parameter through a ref parameter; but it can only safely be returned in a return statement.",
"enabled": true,
"description": "This returns by reference a member of parameter through a ref parameter; but it can only safely be returned in a return statement."
},
{
"shortName": "CSharpWarnings::CS9097",
"displayName": "This ref-assigns a value that has a wider value escape scope than the target allowing assignment through the target of values with narrower escapes scopes.",
"enabled": true,
"description": "This ref-assigns a value that has a wider value escape scope than the target allowing assignment through the target of values with narrower escapes scopes."
},
{
"shortName": "CSharpWarnings::CS9099",
"displayName": "The default parameter value does not match in the target delegate type.",
"enabled": true,
"description": "The default parameter value does not match in the target delegate type."
},
{
"shortName": "CSharpWarnings::CS9100",
"displayName": "Parameter has params modifier in lambda but not in target delegate type.",
"enabled": true,
"description": "Parameter has params modifier in lambda but not in target delegate type."
},
{
"shortName": "CSharpWarnings::CS9107",
"displayName": "Parameter is captured into the state of the enclosing type and its value is also passed to the base constructor. The value might be captured by the base class as well.",
"enabled": true,
"description": "Parameter is captured into the state of the enclosing type and its value is also passed to the base constructor. The value might be captured by the base class as well."
},
{
"shortName": "CSharpWarnings::CS9123",
"displayName": "The '&' operator should not be used on parameters or local variables in async methods.",
"enabled": true,
"description": "The '&' operator should not be used on parameters or local variables in async methods."
},
{
"shortName": "CSharpWarnings::CS9124",
"displayName": "Parameter is captured into the state of the enclosing type and its value is also used to initialize a field, property, or event.",
"enabled": true,
"description": "Parameter is captured into the state of the enclosing type and its value is also used to initialize a field, property, or event."
},
{
"shortName": "CSharpWarnings::CS9154",
"displayName": "Signatures of interceptable and interceptor methods do not match",
"enabled": true,
"description": "Signatures of interceptable and interceptor methods do not match"
},
{
"shortName": "CSharpWarnings::CS9158",
"displayName": "Nullability of reference types in type of parameter doesn't match interceptable method",
"enabled": true,
"description": "Nullability of reference types in type of parameter doesn't match interceptable method"
},
{
"shortName": "CSharpWarnings::CS9159",
"displayName": "Nullability of reference types in return type in interceptor method doesn't match interceptable method'",
"enabled": true,
"description": "Nullability of reference types in return type in interceptor method doesn't match interceptable method'"
},
{
"shortName": "CSharpWarnings::CS9179",
"displayName": "Primary constructor parameter is shadowed by a member from base type.",
"enabled": true,
"description": "Primary constructor parameter is shadowed by a member from base type."
},
{
"shortName": "CSharpWarnings::CS9181",
"displayName": "Inline array indexer will not be used for element access expression.",
"enabled": true,
"description": "Inline array indexer will not be used for element access expression."
},
{
"shortName": "CSharpWarnings::CS9182",
"displayName": "Inline array 'Slice' method will not be used for element access expression.",
"enabled": true,
"description": "Inline array 'Slice' method will not be used for element access expression."
},
{
"shortName": "CSharpWarnings::CS9183",
"displayName": "Inline array conversion operator will not be used for conversion from expression of the declaring type.",
"enabled": true,
"description": "Inline array conversion operator will not be used for conversion from expression of the declaring type."
},
{
"shortName": "CSharpWarnings::CS9184",
"displayName": "'Inline arrays' language feature is not supported for inline array types with element field which is either a 'ref' field, or has type that is not valid as a type argument.",
"enabled": true,
"description": "'Inline arrays' language feature is not supported for inline array types with element field which is either a 'ref' field, or has type that is not valid as a type argument."
},
{
"shortName": "CSharpWarnings::CS9191",
"displayName": "The 'ref' modifier for an argument corresponding to 'in' parameter is equivalent to 'in'. Consider using 'in' instead.",
"enabled": true,
"description": "The 'ref' modifier for an argument corresponding to 'in' parameter is equivalent to 'in'. Consider using 'in' instead."
},
{
"shortName": "CSharpWarnings::CS9192",
"displayName": "The 'ref' modifier for an argument corresponding to 'in' parameter is equivalent to 'in'. Consider using 'in' instead.",
"enabled": true,
"description": "The 'ref' modifier for an argument corresponding to 'in' parameter is equivalent to 'in'. Consider using 'in' instead."
},
{
"shortName": "CSharpWarnings::CS9193",
"displayName": "Argument should be a variable because it is passed to a 'ref readonly' parameter.",
"enabled": true,
"description": "Argument should be a variable because it is passed to a 'ref readonly' parameter."
},
{
"shortName": "CSharpWarnings::CS9195",
"displayName": "Argument should be passed with the 'in' keyword.",
"enabled": true,
"description": "Argument should be passed with the 'in' keyword."
},
{
"shortName": "CSharpWarnings::CS9196",
"displayName": "Reference kind modifier of parameter doesn't match the corresponding parameter in overridden or implemented member.",
"enabled": true,
"description": "Reference kind modifier of parameter doesn't match the corresponding parameter in overridden or implemented member."
},
{
"shortName": "CSharpWarnings::CS9197",
"displayName": "Reference kind modifier of parameter doesn't match the corresponding parameter in hidden member.",
"enabled": true,
"description": "Reference kind modifier of parameter doesn't match the corresponding parameter in hidden member."
},
{
"shortName": "CSharpWarnings::CS9198",
"displayName": "Reference kind modifier of parameter doesn't match the corresponding parameter in target.",
"enabled": true,
"description": "Reference kind modifier of parameter doesn't match the corresponding parameter in target."
},
{
"shortName": "CSharpWarnings::CS9200",
"displayName": "A default value is specified for 'ref readonly' parameter, but 'ref readonly' should be used only for references. Consider declaring the parameter as 'in'.",
"enabled": true,
"description": "A default value is specified for 'ref readonly' parameter, but 'ref readonly' should be used only for references. Consider declaring the parameter as 'in'."
},
{
"shortName": "CSharpWarnings::CS9204",
"displayName": "Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed.",
"enabled": true,
"description": "Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed."
},
{
"shortName": "CSharpWarnings::CS9208",
"displayName": "Collection expression may incur unexpected heap allocations",
"enabled": true,
"description": "Collection expression may incur unexpected heap allocations"
},
{
"shortName": "CSharpWarnings::CS9209",
"displayName": "Collection expression may incur unexpected heap allocations due to the use of '..' spreads",
"enabled": true,
"description": "Collection expression may incur unexpected heap allocations due to the use of '..' spreads"
},
{
"shortName": "CSharpWarnings::CS9216",
"displayName": "A value of type 'System.Threading.Lock' converted to a different type will use likely unintended monitor-based locking in 'lock' statement",
"enabled": true,
"description": "A value of type 'System.Threading.Lock' converted to a different type will use likely unintended monitor-based locking in 'lock' statement"
},
{
"shortName": "CSharpWarnings::CS9256",
"displayName": "Partial member declarations have signature differences.",
"enabled": true,
"description": "Partial member declarations have signature differences."
},
{
"shortName": "CSharpWarnings::CS9258",
"displayName": "In language version preview, the 'field' keyword binds to a synthesized backing field for the property",
"enabled": true,
"description": "In language version preview, the 'field' keyword binds to a synthesized backing field for the property"
},
{
"shortName": "CSharpWarnings::CS9264",
"displayName": "Non-nullable backing field is uninitialized.",
"enabled": true,
"description": "Non-nullable backing field is uninitialized."
},
{
"shortName": "CSharpWarnings::CS9266",
"displayName": "This accessor should use 'field' because the other accessor is using it.",
"enabled": true,
"description": "This accessor should use 'field' because the other accessor is using it."
},
{
"shortName": "CSharpWarnings::SYSLIB1014",
"displayName": "A template in the logging message doesn't have a matching parameter in the logging method definition",
"enabled": true,
"description": "A template in the logging message doesn't have a matching parameter in the logging method definition"
},
{
"shortName": "CSharpWarnings::WME006",
"displayName": "Namespace should be default namespace of this project",
"enabled": true,
"description": "Namespace should be default namespace of this project"
},
{
"shortName": "NotAccessedField.Compiler",
"displayName": "Non-accessed field",
"enabled": true,
"description": "Field is assigned but its value is never used (compiler warning)"
},
{
"shortName": "NotAccessedVariable.Compiler",
"displayName": "Non-accessed local variable",
"enabled": true,
"description": "Local variable is assigned but its value is never used (compiler warning)"
},
{
"shortName": "UnassignedField.Compiler",
"displayName": "Unassigned field",
"enabled": true,
"description": "Field is never assigned (compiler warning)"
},
{
"shortName": "UnassignedReadonlyField.Compiler",
"displayName": "Unassigned readonly field",
"enabled": true,
"description": "Readonly field is never assigned (compiler warning)"
},
{
"shortName": "UnusedField.Compiler",
"displayName": "Field is never used",
"enabled": true,
"description": "Field is never used (compiler warning)"
},
{
"shortName": "UnusedVariable.Compiler",
"displayName": "Unused local variable",
"enabled": true,
"description": "Local variable is never used (compiler warning)"
}
]
},
{
"name": "Compiler Warnings",
"categoryPath": [
{
"id": "CPP",
"name": "C/C++"
},
{
"id": "CPP.CompilerWarnings",
"name": "Compiler Warnings"
}
],
"inspections": [
{
"shortName": "CppAwaiterTypeIsNotClass",
"displayName": "Awaiter type is not a class",
"enabled": true,
"description": "The awaiter type must be a a class according to the C++20 standard"
},
{
"shortName": "CppClassIsIncomplete",
"displayName": "Use of an incomplete type inside a template",
"enabled": true,
"description": "An incomplete type is used inside a template declaration or definition"
},
{
"shortName": "CppCoroutineCallResolveError",
"displayName": "Cannot resolve a required coroutine function",
"enabled": true,
"description": "A coroutine-related function which is required by the C++20 standard cannot be resolved"
},
{
"shortName": "CppDefaultInitializationWithNoUserConstructor",
"displayName": "Default initialization of a const-qualified object of a type without a user-provided default constructor",
"enabled": true,
"description": "Default initialization of a const-qualified object of a type without a user-provided default constructor"
},
{
"shortName": "CppExplicitSpecializationInNonNamespaceScope",
"displayName": "Explicit specialization in non-namespace scope",
"enabled": true,
"description": "Explicit specializations of a template in non-namespace scope"
},
{
"shortName": "CppMutableSpecifierOnReferenceMember",
"displayName": "Reference class member with 'mutable' specifier",
"enabled": true,
"description": "Reference class members cannot have 'mutable' specifier"
},
{
"shortName": "CppOutParameterMustBeWritten",
"displayName": "The 'out' parameter must be assigned",
"enabled": true,
"description": "In HLSL 'out' parameters must be assigned before exiting the function"
},
{
"shortName": "CppPrecompiledHeaderIsNotIncluded",
"displayName": "Precompiled header is not included",
"enabled": true,
"description": "Precompiled header must be included at the top of source file"
},
{
"shortName": "CppPrecompiledHeaderNotFound",
"displayName": "Precompiled header is not found",
"enabled": true,
"description": "No corresponding file with the 'Precompiled Header' property set to 'Create' (/Yc) is found"
},
{
"shortName": "CppStaticAssertFailure",
"displayName": "static_assert failed",
"enabled": true,
"description": "static_assert failed"
},
{
"shortName": "CppTemplateParameterShadowing",
"displayName": "Redeclaration of a template parameter from an outer scope",
"enabled": true,
"description": "A template parameter from an outer scope is shadowed by a declaration with the same name"
},
{
"shortName": "CppUninitializedDependentBaseClass",
"displayName": "Uninitialized dependent base class",
"enabled": true,
"description": "Possibly uninitialized dependent base class"
},
{
"shortName": "CppUnionMemberOfReferenceType",
"displayName": "Union member of reference type",
"enabled": true,
"description": "Unions cannot contain non-static data members of reference types"
},
{
"shortName": "CppUserDefinedLiteralSuffixDoesNotStartWithUnderscore",
"displayName": "User-defined literal suffixes must start with an underscore",
"enabled": true,
"description": "User-defined literal suffixes must start with an underscore. The suffixes that do not begin with an underscore are reserved for the literal operators provided by the standard library."
},
{
"shortName": "CppWarningDirective",
"displayName": "#warning directive",
"enabled": true,
"description": "#warning preprocessor directive"
}
]
},
{
"name": "Compiler Warnings",
"categoryPath": [
{
"id": "XAML",
"name": "XAML"
},
{
"id": "XAML.CompilerWarnings",
"name": "Compiler Warnings"
}
],
"inspections": [
{
"shortName": "ObsoleteElement",
"displayName": "Use of obsolete type or type member",
"enabled": true,
"description": "Use of obsolete type or type member in XAML markup"
},
{
"shortName": "ObsoleteElementError",
"displayName": "Use of obsolete type or type member (error)",
"enabled": true,
"description": "Use of obsolete type or type member in XAML markup (error)"
}
]
},
{
"name": "Compiler Warnings",
"categoryPath": [
{
"id": "VBASIC",
"name": "VB.NET"
},
{
"id": "VBASIC.CompilerWarnings",
"name": "Compiler Warnings"
}
],
"inspections": [
{
"shortName": "VBWarnings::BC40000",
"displayName": "Use obsolete member",
"enabled": true,
"description": "Use obsolete member"
},
{
"shortName": "VBWarnings::BC400005",
"displayName": "Member shadows an overriable member",
"enabled": true,
"description": "Member shadows an overriable member"
},
{
"shortName": "VBWarnings::BC40008",
"displayName": "Use obsolete member (without message)",
"enabled": true,
"description": "Use obsolete member (without message)"
},
{
"shortName": "VBWarnings::BC40056",
"displayName": "Namespace or type specified in the Imports 'name' doesn't contain any public member or cannot be found",
"enabled": true,
"description": "Namespace or type specified in the Imports 'name' doesn't contain any public member or cannot be found"
},
{
"shortName": "VBWarnings::BC42016",
"displayName": "Runtime errors might occur when converting X to Y",
"enabled": true,
"description": "Runtime errors might occur when converting X to Y"
},
{
"shortName": "VBWarnings::BC42025",
"displayName": "Access of shared member through an instance",
"enabled": true,
"description": "Access of shared member through an instance"
},
{
"shortName": "VBWarnings::BC42104",
"displayName": "Variable is used before it has been assigned a value",
"enabled": true,
"description": "Variable is used before it has been assigned a value"
},
{
"shortName": "VBWarnings::BC42105,BC42106,BC42107",
"displayName": "Function doesn't return a reference type value on all code paths",
"enabled": true,
"description": "Function doesn't return a reference type value on all code paths"
},
{
"shortName": "VBWarnings::BC42304",
"displayName": "Syntax error in XML comment",
"enabled": true,
"description": "Syntax error in XML comment"
},
{
"shortName": "VBWarnings::BC42309",
"displayName": "XML comment has a tag with a 'cref' attribute that could not be resolved",
"enabled": true,
"description": "XML comment has a tag with a 'cref' attribute that could not be resolved"
},
{
"shortName": "VBWarnings::BC42322",
"displayName": "Runtime errors are likely to occur when converting X to Y",
"enabled": true,
"description": "Runtime errors are likely to occur when converting X to Y"
},
{
"shortName": "VBWarnings::BC42349",
"displayName": "Redundant DirectCast to the equals value type",
"enabled": true,
"description": "Redundant DirectCast to the equals value type"
},
{
"shortName": "VBWarnings::BC42353,BC42354,BC42355",
"displayName": "Function doesn't return a struct value on all code paths",
"enabled": true,
"description": "Function doesn't return a struct value on all code paths"
},
{
"shortName": "VBWarnings::BC42356",
"displayName": "Async method lacks 'Await' operators",
"enabled": true,
"description": "Async method lacks 'Await' operators"
},
{
"shortName": "VBWarnings::BC42358",
"displayName": "Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'Await' operator to the result of the call.",
"enabled": true,
"description": "Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'Await' operator to the result of the call."
},
{
"shortName": "VBWarnings::BC42380",
"displayName": "Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed.",
"enabled": true,
"description": "Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed."
},
{
"shortName": "VBWarnings::BC42504",
"displayName": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential",
"enabled": true,
"description": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential"
},
{
"shortName": "VBWarnings::BC42505",
"displayName": "The CallerArgumentExpressionAttribute applied to parameter will have no effect. It is applied with an invalid parameter name.",
"enabled": true,
"description": "The CallerArgumentExpressionAttribute applied to parameter will have no effect. It is applied with an invalid parameter name."
},
{
"shortName": "VBWarnings::WME006",
"displayName": "Namespace should be default namespace of this project",
"enabled": true,
"description": "Namespace should be default namespace of this project"
}
]
},
{
"name": "Constraints Violations",
"categoryPath": [
{
"id": "CSHARP",
"name": "C#"
},
{
"id": "CSHARP.ConstraintViolation",
"name": "Constraints Violations"
}
],
"inspections": [
{
"shortName": "AssignNullToNotNullAttribute",
"displayName": "Possible 'null' assignment to non-nullable entity",
"enabled": true,
"description": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute."
},
{
"shortName": "CannotApplyEqualityOperatorToType",
"displayName": "Values of types marked with 'CannotApplyEqualityOperatorAttribute' should be compared using 'Equals()'",
"enabled": true,
"description": "Type is marked by 'CannotApplyEqualityOperatorAttribute' attribute but it is compared using '==' or '!=' operators"
},
{
"shortName": "CheckNamespace",
"displayName": "Namespace does not correspond to file location",
"enabled": true,
"description": "Namespace in file does not have a form of 'project Default Namespace plus folder names in the path to the file'. You can configure which folders form the namespace on the folder's Properties page."
},
{
"shortName": "ContractAnnotationNotParsed",
"displayName": "Problem in contract annotation definition",
"enabled": true,
"description": "Input string in ContractAnnotation attribute could not be parsed"
},
{
"shortName": "InconsistentNaming",
"displayName": "Inconsistent Naming",
"enabled": true,
"description": "Name doesn't match naming style defined for this kind of symbol"
},
{
"shortName": "NotNullOrRequiredMemberIsNotInitialized",
"displayName": "Non-nullable or required member is not initialized at constructor exit",
"enabled": true,
"description": "Non-nullable or required type member is not initialized in any execution path of the constructor"
},
{
"shortName": "RequiredBaseTypesConflict",
"displayName": "Required base type conflicting another type",
"enabled": true,
"description": "Type required by some attribute (marked with BaseTypeRequired) conflicting type from another attribute"
},
{
"shortName": "RequiredBaseTypesDirectConflict",
"displayName": "Type specified in '[BaseTypeRequired]' attribute conflicts another type",
"enabled": true,
"description": "Type specified in '[BaseTypeRequired]' attribute conflicts with another type"
},
{
"shortName": "RequiredBaseTypesIsNotInherited",
"displayName": "Base type is required",
"enabled": true,
"description": "Concrete base type is required by '[BaseTypeRequired]' attribute"
},
{
"shortName": "UnsupportedRequiredBaseType",
"displayName": "BaseTypeRequired attribute supports only classes and interfaces",
"enabled": true,
"description": "Invalid type specified in '[BaseTypeRequired]' attribute usage. Only classes and interfaces are supported."
},
{
"shortName": "ValueRangeAttributeViolation",
"displayName": "Possible violation of 'ValueRange'/'NonNegativeValue' attribute",
"enabled": true,
"description": "Integer value assigned to this entity doesn't lie in the interval specified in the attribute"
}
]
},
{
"name": "Constraints Violations",
"categoryPath": [
{
"id": "CPP",
"name": "C/C++"
},
{
"id": "CPP.ConstraintViolation",
"name": "Constraints Violations"
}
],
"inspections": [
{
"shortName": "CppInconsistentNaming",
"displayName": "Inconsistent Naming",
"enabled": true,
"description": "Name doesn't match naming style defined for this kind of symbol"
}
]
},
{
"name": "Constraints Violations",
"categoryPath": [
{
"id": "XAML",
"name": "XAML"
},
{
"id": "XAML.ConstraintViolation",
"name": "Constraints Violations"
}
],
"inspections": [
{
"shortName": "Xaml.AssignNullToNotNullAttribute",
"displayName": "Possible 'null' assignment to non-nullable entity",
"enabled": true,
"description": "An expression which can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute."
}
]
},
{
"name": "Formatting",
"categoryPath": [
{
"id": "CSHARP",
"name": "C#"
},
{
"id": "CSHARP.FormattingIssues",
"name": "Formatting"
}
],
"inspections": [
{
"shortName": "BadAttributeBracketsSpaces",
"displayName": "Incorrect spacing: Around attributes",
"enabled": true,
"description": "Incorrect spacing: Around attributes"
},
{
"shortName": "BadBracesSpaces",
"displayName": "Incorrect spacing: Around braces",
"enabled": true,
"description": "Incorrect spacing: Around braces"
},
{
"shortName": "BadChildStatementIndent",
"displayName": "Incorrect indent: Around child statement",
"enabled": true,
"description": "Incorrect indent: Around child statement"
},
{
"shortName": "BadColonSpaces",
"displayName": "Incorrect spacing: Around colon",
"enabled": true,
"description": "Incorrect spacing: Around colon"
},
{
"shortName": "BadCommaSpaces",
"displayName": "Incorrect spacing: Around comma",
"enabled": true,
"description": "Incorrect spacing: Around comma"
},
{
"shortName": "BadControlBracesIndent",
"displayName": "Incorrect indent: Around statement braces",
"enabled": true,
"description": "Incorrect indent: Around statement braces"
},
{
"shortName": "BadControlBracesLineBreaks",
"displayName": "Incorrect line breaks: Around statement braces",
"enabled": true,
"description": "Incorrect line breaks: Around statement braces"
},
{
"shortName": "BadDeclarationBracesIndent",
"displayName": "Incorrect indent: Around declaration braces",
"enabled": true,
"description": "Incorrect indent: Around declaration braces"
},
{
"shortName": "BadDeclarationBracesLineBreaks",
"displayName": "Incorrect line breaks: Around declaration braces",
"enabled": true,
"description": "Incorrect line breaks: Around declaration braces"
},
{
"shortName": "BadEmptyBracesLineBreaks",
"displayName": "Incorrect line breaks: Around empty braces",
"enabled": true,
"description": "Incorrect line breaks: Around empty braces"
},
{
"shortName": "BadExpressionBracesIndent",
"displayName": "Incorrect indent: Around expression braces",
"enabled": true,
"description": "Incorrect indent: Around expression braces"
},
{
"shortName": "BadExpressionBracesLineBreaks",
"displayName": "Incorrect line breaks: Around expression braces",
"enabled": true,
"description": "Incorrect line breaks: Around expression braces"
},
{
"shortName": "BadGenericBracketsSpaces",
"displayName": "Incorrect spacing: Around generic brackets",
"enabled": true,
"description": "Incorrect spacing: Around generic brackets"
},
{
"shortName": "BadIndent",
"displayName": "Incorrect indent: Redundant indent/outdent elsewhere",
"enabled": true,
"description": "Incorrect indent: Redundant indent/outdent elsewhere"
},
{
"shortName": "BadLinqLineBreaks",
"displayName": "Incorrect line breaks: Around LINQ queries",
"enabled": true,
"description": "Incorrect line breaks: Around LINQ queries"
},
{
"shortName": "BadListLineBreaks",
"displayName": "Incorrect line breaks: Around comma in lists",
"enabled": true,
"description": "Incorrect line breaks: Around comma in lists"
},
{
"shortName": "BadMemberAccessSpaces",
"displayName": "Incorrect spacing: Around member access symbols",
"enabled": true,
"description": "Incorrect spacing: Around member access symbols"
},
{
"shortName": "BadNamespaceBracesIndent",
"displayName": "Incorrect indent: Around namespace braces",
"enabled": true,
"description": "Incorrect indent: Around namespace braces"
},
{
"shortName": "BadParensLineBreaks",
"displayName": "Incorrect line breaks: Around parenthesis",
"enabled": true,
"description": "Incorrect line breaks: Around parenthesis"
},
{
"shortName": "BadParensSpaces",
"displayName": "Incorrect spacing: Around parenthesis",
"enabled": true,
"description": "Incorrect spacing: Around parenthesis"
},
{
"shortName": "BadPreprocessorIndent",
"displayName": "Incorrect indent: Around preprocessor directive",
"enabled": true,
"description": "Incorrect indent: Around preprocessor directive"
},
{
"shortName": "BadSemicolonSpaces",
"displayName": "Incorrect spacing: Around semicolon",
"enabled": true,
"description": "Incorrect spacing: Around semicolon"
},
{
"shortName": "BadSpacesAfterKeyword",
"displayName": "Incorrect spacing: Between keyword and parenthesis",
"enabled": true,
"description": "Incorrect spacing: Between keyword and parenthesis"
},
{
"shortName": "BadSquareBracketsSpaces",
"displayName": "Incorrect spacing: Around square brackets within a statement",
"enabled": true,
"description": "Incorrect spacing: Around square brackets within a statement"
},
{
"shortName": "BadSwitchBracesIndent",
"displayName": "Incorrect indent: Around switch statement",
"enabled": true,
"description": "Incorrect indent: Around switch statement"
},
{
"shortName": "BadSymbolSpaces",
"displayName": "Incorrect spacing: Around operator symbols",
"enabled": true,
"description": "Incorrect spacing: Around operator symbols"
},
{
"shortName": "IncorrectBlankLinesNearBraces",
"displayName": "Incorrect blank lines: Incorrect number of blank lines near braces",
"enabled": true,
"description": "Incorrect blank lines: Incorrect number of blank lines near braces"
},
{
"shortName": "MissingBlankLines",
"displayName": "Incorrect blank lines: Blank lines are missing elsewhere",
"enabled": true,
"description": "Incorrect blank lines: Blank lines are missing elsewhere"
},
{
"shortName": "MissingIndent",
"displayName": "Incorrect indent: Missing indent/outdent elsewhere",
"enabled": true,
"description": "Incorrect indent: Missing indent/outdent elsewhere"
},
{
"shortName": "MissingLinebreak",
"displayName": "Incorrect line breaks: Line break is missing elsewhere",
"enabled": true,
"description": "Incorrect line breaks: Line break is missing elsewhere"
},
{
"shortName": "MissingSpace",
"displayName": "Incorrect spacing: Space is missing elsewhere",
"enabled": true,
"description": "Incorrect spacing: Space is missing elsewhere"
},
{
"shortName": "MultipleSpaces",
"displayName": "Incorrect spacing: Multiple spaces are prohibited",
"enabled": true,
"description": "Incorrect spacing: Multiple spaces are prohibited"
},
{
"shortName": "MultipleStatementsOnOneLine",
"displayName": "Incorrect line breaks: Multiple statements on one line",
"enabled": true,
"description": "Incorrect line breaks: Multiple statements on one line"
},
{
"shortName": "MultipleTypeMembersOnOneLine",
"displayName": "Incorrect line breaks: Multiple type members on one line",
"enabled": true,
"description": "Incorrect line breaks: Multiple type members on one line"
},
{
"shortName": "OutdentIsOffPrevLevel",
"displayName": "Incorrect indent: Indent level is not restored",
"enabled": true,
"description": "Incorrect indent: Indent level is not restored"
},
{
"shortName": "RedundantBlankLines",
"displayName": "Incorrect blank lines: Blank lines are redundant elsewhere",
"enabled": true,
"description": "Incorrect blank lines: Blank lines are redundant elsewhere"
},
{
"shortName": "RedundantLinebreak",
"displayName": "Incorrect line breaks: Line break is redundant elsewhere",
"enabled": true,
"description": "Incorrect line breaks: Line break is redundant elsewhere"
},
{
"shortName": "RedundantSpace",
"displayName": "Incorrect spacing: Space is redundant elsewhere",
"enabled": true,
"description": "Incorrect spacing: Space is redundant elsewhere"
},
{
"shortName": "TabsAndSpacesMismatch",
"displayName": "Incorrect indent: Tabs/spaces mismatch",
"enabled": true,
"description": "Incorrect indent: Tabs/spaces mismatch"
},
{
"shortName": "TabsOutsideIndent",
"displayName": "Incorrect spacing: Tabs are prohibited here",
"enabled": true,
"description": "Incorrect spacing: Tabs are prohibited here"
},
{
"shortName": "WrongIndentSize",
"displayName": "Incorrect indent: Incorrect indent size",
"enabled": true,
"description": "Incorrect indent: Incorrect indent size"
}
]
},
{
"name": "Formatting",
"categoryPath": [
{
"id": "CPP",
"name": "C/C++"
},
{
"id": "CPP.FormattingIssues",
"name": "Formatting"
}
],
"inspections": [
{
"shortName": "CppBadAngleBracketsSpaces",
"displayName": "Incorrect spacing: Around angle brackets",
"enabled": true,
"description": "Incorrect spacing: Around angle brackets"
},
{
"shortName": "CppBadBracesSpaces",
"displayName": "Incorrect spacing: Around braces",
"enabled": true,
"description": "Incorrect spacing: Around braces"
},
{
"shortName": "CppBadChildStatementIndent",
"displayName": "Incorrect indent: Around child statement",
"enabled": true,
"description": "Incorrect indent: Around child statement"
},
{
"shortName": "CppBadColonSpaces",
"displayName": "Incorrect spacing: Around colon",
"enabled": true,
"description": "Incorrect spacing: Around colon"
},
{
"shortName": "CppBadCommaSpaces",
"displayName": "Incorrect spacing: Around comma",
"enabled": true,
"description": "Incorrect spacing: Around comma"
},
{
"shortName": "CppBadControlBracesIndent",
"displayName": "Incorrect indent: Around statement braces",
"enabled": true,
"description": "Incorrect indent: Around statement braces"
},
{
"shortName": "CppBadControlBracesLineBreaks",
"displayName": "Incorrect line breaks: Around statement braces",
"enabled": true,
"description": "Incorrect line breaks: Around statement braces"
},
{
"shortName": "CppBadDeclarationBracesIndent",
"displayName": "Incorrect indent: Around declaration braces",
"enabled": true,
"description": "Incorrect indent: Around declaration braces"
},
{
"shortName": "CppBadDeclarationBracesLineBreaks",
"displayName": "Incorrect line breaks: Around declaration braces",
"enabled": true,
"description": "Incorrect line breaks: Around declaration braces"
},
{
"shortName": "CppBadEmptyBracesLineBreaks",
"displayName": "Incorrect line breaks: Around empty braces",
"enabled": true,
"description": "Incorrect line breaks: Around empty braces"
},
{
"shortName": "CppBadExpressionBracesIndent",
"displayName": "Incorrect indent: Around expression braces",
"enabled": true,
"description": "Incorrect indent: Around expression braces"
},
{
"shortName": "CppBadExpressionBracesLineBreaks",
"displayName": "Incorrect line breaks: Around expression braces",
"enabled": true,
"description": "Incorrect line breaks: Around expression braces"
},
{
"shortName": "CppBadIndent",
"displayName": "Incorrect indent: Redundant indent/outdent elsewhere",
"enabled": true,
"description": "Incorrect indent: Redundant indent/outdent elsewhere"
},
{
"shortName": "CppBadListLineBreaks",
"displayName": "Incorrect line breaks: Around comma in lists",
"enabled": true,
"description": "Incorrect line breaks: Around comma in lists"
},
{
"shortName": "CppBadMemberAccessSpaces",
"displayName": "Incorrect spacing: Around member access symbols",
"enabled": true,
"description": "Incorrect spacing: Around member access symbols"
},
{
"shortName": "CppBadNamespaceBracesIndent",
"displayName": "Incorrect indent: Around namespace braces",
"enabled": true,
"description": "Incorrect indent: Around namespace braces"
},
{
"shortName": "CppBadParensLineBreaks",
"displayName": "Incorrect line breaks: Around parenthesis",
"enabled": true,
"description": "Incorrect line breaks: Around parenthesis"
},
{
"shortName": "CppBadParensSpaces",
"displayName": "Incorrect spacing: Around parenthesis",
"enabled": true,
"description": "Incorrect spacing: Around parenthesis"
},
{
"shortName": "CppBadSemicolonSpaces",
"displayName": "Incorrect spacing: Around semicolon",
"enabled": true,
"description": "Incorrect spacing: Around semicolon"
},
{
"shortName": "CppBadSpacesAfterKeyword",
"displayName": "Incorrect spacing: Between keyword and parenthesis",
"enabled": true,
"description": "Incorrect spacing: Between keyword and parenthesis"
},
{
"shortName": "CppBadSquareBracketsSpaces",
"displayName": "Incorrect spacing: Around square brackets within a statement",
"enabled": true,
"description": "Incorrect spacing: Around square brackets within a statement"
},
{
"shortName": "CppBadSwitchBracesIndent",
"displayName": "Incorrect indent: Around switch statement",
"enabled": true,
"description": "Incorrect indent: Around switch statement"
},
{
"shortName": "CppBadSymbolSpaces",
"displayName": "Incorrect spacing: Around operator symbols",
"enabled": true,
"description": "Incorrect spacing: Around operator symbols"
},
{
"shortName": "CppIncorrectBlankLinesNearBraces",
"displayName": "Incorrect blank lines: Incorrect number of blank lines near braces",
"enabled": true,
"description": "Incorrect blank lines: Incorrect number of blank lines near braces"
},
{
"shortName": "CppMissingBlankLines",
"displayName": "Incorrect blank lines: Blank lines are missing elsewhere",
"enabled": true,
"description": "Incorrect blank lines: Blank lines are missing elsewhere"
},
{
"shortName": "CppMissingIndent",
"displayName": "Incorrect indent: Missing indent/outdent elsewhere",
"enabled": true,
"description": "Incorrect indent: Missing indent/outdent elsewhere"
},
{
"shortName": "CppMissingLinebreak",
"displayName": "Incorrect line breaks: Line break is missing elsewhere",
"enabled": true,
"description": "Incorrect line breaks: Line break is missing elsewhere"
},
{
"shortName": "CppMissingSpace",
"displayName": "Incorrect spacing: Space is missing elsewhere",
"enabled": true,
"description": "Incorrect spacing: Space is missing elsewhere"
},
{
"shortName": "CppMultipleSpaces",
"displayName": "Incorrect spacing: Multiple spaces are prohibited",
"enabled": true,
"description": "Incorrect spacing: Multiple spaces are prohibited"
},
{
"shortName": "CppOutdentIsOffPrevLevel",
"displayName": "Incorrect indent: Indent level is not restored",
"enabled": true,
"description": "Incorrect indent: Indent level is not restored"
},
{
"shortName": "CppRedundantBlankLines",
"displayName": "Incorrect blank lines: Blank lines are redundant elsewhere",
"enabled": true,
"description": "Incorrect blank lines: Blank lines are redundant elsewhere"
},
{
"shortName": "CppRedundantLinebreak",
"displayName": "Incorrect line breaks: Line break is redundant elsewhere",
"enabled": true,
"description": "Incorrect line breaks: Line break is redundant elsewhere"
},
{
"shortName": "CppRedundantSpace",
"displayName": "Incorrect spacing: Space is redundant elsewhere",
"enabled": true,
"description": "Incorrect spacing: Space is redundant elsewhere"
},
{
"shortName": "CppTabsAndSpacesMismatch",
"displayName": "Incorrect indent: Tabs/spaces mismatch",
"enabled": true,
"description": "Incorrect indent: Tabs/spaces mismatch"
},
{
"shortName": "CppTabsAreDisallowed",
"displayName": "Incorrect spacing: Tabs are prohibited",
"enabled": true,
"description": "Prohibits the use of tabulation character everywhere in file"
},
{
"shortName": "CppTabsOutsideIndent",
"displayName": "Incorrect spacing: Tabs are prohibited except for indentation",
"enabled": true,
"description": "Incorrect spacing: Tabs are prohibited except for indentation"
},
{
"shortName": "CppUnnecessaryWhitespace",
"displayName": "Incorrect spacing: Redundant whitespaces at the end of a line",
"enabled": true,
"description": "Redundant whitespace characters at the end of a line"
},
{
"shortName": "CppWrongIndentSize",
"displayName": "Incorrect indent: Incorrect indent size",
"enabled": true,
"description": "Incorrect indent: Incorrect indent size"
}
]
},
{
"name": "General",
"categoryPath": [
{
"id": "General",
"name": "General"
}
],
"inspections": [
{
"shortName": "CppEvaluationFailure",
"displayName": "Compile-time evaluation failure",
"enabled": true,
"description": "Expression or declarator value did not evaluate to a constant due to the error during 'constexpr' calculations."
},
{
"shortName": "CppEvaluationInternalFailure",
"displayName": "[INTERNAL] Compile-time evaluation failure",
"enabled": true,
"description": "Expression or declarator value did not evaluate to a constant due to the error during 'constexpr' calculations."
},
{
"shortName": "CqrsDebug",
"displayName": "CqrsDebug",
"enabled": true,
"description": "CqrsDebug"
},
{
"shortName": "CqrsNamingRecommendation",
"displayName": "Inconsistent naming of CQRS entity",
"enabled": true,
"description": "CQRS entities that follow the naming convention can be identified without relying on attributes"
},
{
"shortName": "NonVolatileFieldInDoubleCheckLocking",
"displayName": "Possible incorrect implementation of Double-Check Locking. The checked field must be volatile or assigned from a local variable after 'Thread.MemoryBarrier()' call.",
"enabled": true,
"description": "Possible incorrect implementation of Double-Check Locking. The checked field must be volatile or assigned from a local variable after 'Thread.MemoryBarrier()' call."
},
{
"shortName": "SwitchStatementForEnumMissesDefaultSection",
"displayName": "Switch statement for enum values does not have default section",
"enabled": true,
"description": "Switch statement for enum values does not have default section. This might lead to unexpected behavior if new enum values will be introduced."
},
{
"shortName": "UnusedLocalFunctionParameter",
"displayName": "Unused parameter of local function",
"enabled": true,
"description": "Parameter of local function is never used"
},
{
"shortName": "UseStringInterpolationWhenPossible",
"displayName": "Use string interpolation expression when possible",
"enabled": true,
"description": "Replace string construction by 'String.Format()' method invocation with string interpolation expression"
}
]
},
{
"name": "Language Usage Opportunities",
"categoryPath": [
{
"id": "CSHARP",
"name": "C#"
},
{
"id": "CSHARP.LanguageUsage",
"name": "Language Usage Opportunities"
}
],
"inspections": [
{
"shortName": "AppendToCollectionExpression",
"displayName": "Append to collection expression",
"enabled": true,
"description": "Suggest to merge collection items additions into C# 12 collection expression syntax"
},
{
"shortName": "ClassCannotBeInstantiated",
"displayName": "Class cannot be instantiated",
"enabled": true,
"description": "Remove 'sealed' modifier or make constructor public or internal"
},
{
"shortName": "ConvertClosureToMethodGroup",
"displayName": "Convert lambda expression into method group",
"enabled": true,
"description": "Convert lambda expression or anonymous method into method group"
},
{
"shortName": "ConvertConditionalTernaryExpressionToSwitchExpression",
"displayName": "Replace ternary expression with 'switch' expression",
"enabled": true,
"description": "Replace chain of ternary expressions with 'switch' expression"
},
{
"shortName": "ConvertConstructorToMemberInitializers",
"displayName": "Convert constructor into member initializers",
"enabled": true,
"description": "Replace constructor with members initialized inline"
},
{
"shortName": "ConvertIfStatementToConditionalTernaryExpression",
"displayName": "'if' statement can be rewritten as '?:' expression",
"enabled": true,
"description": "Convert the following code:\r\n\r\n if (condition) x = expr1;\r\n else x = expr2;\r\n
\r\nTo:\r\n\r\n x = condition ? expr1 : expr2;\r\n
"
},
{
"shortName": "ConvertIfStatementToNullCoalescingAssignment",
"displayName": "'if' statement can be rewritten as '??=' assignment",
"enabled": true,
"description": "Convert the following code:\r\n\r\n if (x = null) x = expr;\r\n
\r\nTo:\r\n\r\n x ??= expr;\r\n
"
},
{
"shortName": "ConvertIfStatementToNullCoalescingExpression",
"displayName": "'if' statement can be rewritten as '??' expression",
"enabled": true,
"description": "Convert the following code:\r\n\r\n var x = expr1;\r\n if (x = null) x = expr2;\r\n
\r\nTo:\r\n\r\n var x = expr1 ?? expr2;\r\n
"
},
{
"shortName": "ConvertIfStatementToReturnStatement",
"displayName": "'if-return' statement can be rewritten as 'return' statement",
"enabled": true,
"description": "Convert the following code:\r\n\r\n if (condition) return expr1;\r\n return expr2;\r\n
\r\nTo:\r\n\r\n return condition ? expr1 : expr2;\r\n
"
},
{
"shortName": "ConvertIfStatementToSwitchStatement",
"displayName": "Convert 'if' statement into 'switch'",
"enabled": true,
"description": "Convert series of 'if' statements into single 'switch'"
},
{
"shortName": "ConvertNullableToShortForm",
"displayName": "Convert 'Nullable' into 'T?'",
"enabled": true,
"description": "Rewrite nullable type in short form"
},
{
"shortName": "ConvertSwitchStatementToSwitchExpression",
"displayName": "Replace 'switch' statement with 'switch' expression",
"enabled": true,
"description": "Replace 'switch' statement with 'switch' expression"
},
{
"shortName": "ConvertToAutoProperty",
"displayName": "Convert property into auto-property",
"enabled": true,
"description": "Converts property declaration into C# auto-property syntax"
},
{
"shortName": "ConvertToAutoPropertyWhenPossible",
"displayName": "Convert property into auto-property (when possible)",
"enabled": true,
"description": "Converts property declaration into C# auto-property syntax"
},
{
"shortName": "ConvertToAutoPropertyWithPrivateSetter",
"displayName": "Convert property into auto-property with private setter",
"enabled": true,
"description": "Converts property declaration into C# auto-property syntax with private setter declared"
},
{
"shortName": "ConvertToCompoundAssignment",
"displayName": "Use compound assignment",
"enabled": true,
"description": "Replace assignment with compound assignment"
},
{
"shortName": "ConvertToExtensionBlock",
"displayName": "Convert extension methods to extension block",
"enabled": true,
"description": "Convert classic extension methods to C#14 extension block"
},
{
"shortName": "ConvertToLambdaExpression",
"displayName": "Convert into lambda expression",
"enabled": true,
"description": "Convert statement-bodied lambda into expression-bodied. Does not suggest the conversion when the expression contains nested closures or explicit side-effects."
},
{
"shortName": "ConvertToLocalFunction",
"displayName": "Convert delegate variable into local function",
"enabled": true,
"description": "Replace delegate variable with local function"
},
{
"shortName": "ConvertToNullCoalescingCompoundAssignment",
"displayName": "Use compound assignment",
"enabled": true,
"description": "Replace null-coalescing expression with compound assignment"
},
{
"shortName": "ConvertToPrimaryConstructor",
"displayName": "Convert constructor into primary constructor",
"enabled": true,
"description": "Replace ordinary constructor with primary constructor"
},
{
"shortName": "ConvertToStaticClass",
"displayName": "Convert into static class",
"enabled": true,
"description": "Make class static"
},
{
"shortName": "ConvertToUsingDeclaration",
"displayName": "Convert into 'using' declaration",
"enabled": true,
"description": "Replace 'using' statement with 'using' declaration"
},
{
"shortName": "ForCanBeConvertedToForeach",
"displayName": "For-loop can be converted into foreach-loop",
"enabled": true,
"description": "For-loop can be converted into foreach-loop"
},
{
"shortName": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator",
"displayName": "Foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used",
"enabled": true,
"description": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used"
},
{
"shortName": "ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator",
"displayName": "Part of foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used",
"enabled": true,
"description": "Part of 'foreach' ('For Each' for VB.NET) statement's body can be converted into a LINQ-expression but another 'GetEnumerator' method will be used"
},
{
"shortName": "InlineOutVariableDeclaration",
"displayName": "Inline 'out' variable declaration",
"enabled": true,
"description": "Replace ordinary variable declaration with inline variable declaration under 'out' argument"
},
{
"shortName": "InlineTemporaryVariable",
"displayName": "Inline temporary variable",
"enabled": true,
"description": "Inline temporary variable initialized with a value of other variable/parameter to reduce the amount of different names used to reference the same value"
},
{
"shortName": "IntroduceOptionalParameters.Global",
"displayName": "Introduce optional parameters: Non-private accessibility",
"enabled": true,
"description": "Introduce optional parameters to overload method"
},
{
"shortName": "IntroduceOptionalParameters.Local",
"displayName": "Introduce optional parameters: Private accessibility",
"enabled": true,
"description": "Introduce optional parameters to overload method"
},
{
"shortName": "InvertIf",
"displayName": "Invert 'if' statement to reduce nesting",
"enabled": true,
"description": "Invert 'if' statement to reduce nesting"
},
{
"shortName": "InvokeAsExtensionMember",
"displayName": "Convert static method invocation into extension member call",
"enabled": true,
"description": "When extension member is invoked as static method, convert invocation into extension member syntax"
},
{
"shortName": "JoinNullCheckWithUsage",
"displayName": "Join null check with assignment",
"enabled": true,
"description": "Replaces if statement with code using ?? operator and throw expression"
},
{
"shortName": "LambdaExpressionCanBeMadeStatic",
"displayName": "Lambda expression/anonymous method can be made 'static'",
"enabled": true,
"description": "Lambda expression/anonymous method can be made 'static'"
},
{
"shortName": "LambdaExpressionMustBeStatic",
"displayName": "Lambda expression/anonymous method must be 'static' to avoid allocations",
"enabled": true,
"description": "Lambda expression/anonymous method passed to parameter annotated by '[RequireStaticDelegate]' must be 'static' to help avoid introducing heap allocations"
},
{
"shortName": "LambdaShouldNotCaptureContext",
"displayName": "Lambda expression/anonymous method must not have captures of the containing context",
"enabled": true,
"description": "Lambda expression/anonymous method passed to parameter annotated by '[RequireStaticDelegate]' attribute must not have captures of the containing context (local variables, local functions, 'this' reference) to avoid heap allocations"
},
{
"shortName": "LoopCanBeConvertedToQuery",
"displayName": "Loop can be converted into LINQ-expression",
"enabled": true,
"description": "A 'foreach' ('For Each' for VB.NET) or 'for' statement can be converted into a LINQ-expression"
},
{
"shortName": "LoopCanBePartlyConvertedToQuery",
"displayName": "Part of loop's body can be converted into LINQ-expression",
"enabled": true,
"description": "Part of 'foreach' ('For Each' for VB.NET) statement's body can be converted into a LINQ-expression"
},
{
"shortName": "MergeAndPattern",
"displayName": "Merge 'and' pattern",
"enabled": true,
"description": "Merge two operands of the 'and' pattern into single pattern"
},
{
"shortName": "MergeConditionalExpression",
"displayName": "Merge conditional ?: expression into conditional access",
"enabled": true,
"description": "Merge conditional expression (?: ternary operator) into conditional access expression"
},
{
"shortName": "MergeIntoLogicalPattern",
"displayName": "Merge null/pattern/value checks into 'or'/'and' patterns",
"enabled": true,
"description": "Merge sequential negated null/pattern/value checks into single logical 'or'/'and' pattern check"
},
{
"shortName": "MergeIntoNegatedPattern",
"displayName": "Merge negated null/pattern checks into complex pattern",
"enabled": true,
"description": "Merge sequential negated null/pattern checks into single recursive/logical pattern check"
},
{
"shortName": "MergeIntoPattern",
"displayName": "Merge null/pattern checks into complex pattern",
"enabled": true,
"description": "Merge sequential null/pattern checks into single recursive/logical pattern check"
},
{
"shortName": "MergeNestedPropertyPatterns",
"displayName": "Merge nested property patterns",
"enabled": true,
"description": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax"
},
{
"shortName": "MergeSequentialChecks",
"displayName": "Merge sequential checks into single conditional access check",
"enabled": true,
"description": "Merge sequential null/type checks in && or || expressions into single conditional access check"
},
{
"shortName": "MoveToExistingPositionalDeconstructionPattern",
"displayName": "Move to existing positional deconstruction pattern",
"enabled": true,
"description": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns in existing positional deconstruction"
},
{
"shortName": "MoveToExtensionBlock",
"displayName": "Move to extension block",
"enabled": true,
"description": "Move extension method to the existing extension block"
},
{
"shortName": "MoveVariableDeclarationInsideLoopCondition",
"displayName": "Move variable declaration inside loop condition",
"enabled": true,
"description": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect"
},
{
"shortName": "PassStringInterpolation",
"displayName": "Pass string interpolation expression",
"enabled": true,
"description": "Replace formatting method arguments by passing string interpolation expression."
},
{
"shortName": "RedundantAccessorBody",
"displayName": "Redundant accessor body",
"enabled": true,
"description": "Accessor body with simple 'field' keyword return or assignment is redundant"
},
{
"shortName": "RedundantSpreadElement",
"displayName": "Redundant spread element",
"enabled": true,
"description": "Remove redundant spread element to use items of inner collection directly"
},
{
"shortName": "ReplaceAutoPropertyWithComputedProperty",
"displayName": "Replace auto-property with computed property",
"enabled": true,
"description": "Replace auto-property with computed property to avoid storing trivial state in every type instance"
},
{
"shortName": "ReplaceConditionalExpressionWithNullCoalescing",
"displayName": "Conditional expression can be rewritten as null-coalescing",
"enabled": true,
"description": "Conditonal expression with a null check ('expr is {} x') or a type pattern ('expr is T x') can be rewritten as a null-coalescing ('??') expression"
},
{
"shortName": "ReplaceObjectPatternWithVarPattern",
"displayName": "Replace object pattern not performing any additional checks with 'var' pattern",
"enabled": true,
"description": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern"
},
{
"shortName": "ReplaceSequenceEqualWithConstantPattern",
"displayName": "Replace 'SequenceEqual' with constant pattern",
"enabled": true,
"description": "Replace 'SequenceEqual' invocation with constant pattern check"
},
{
"shortName": "ReplaceSliceWithRangeIndexer",
"displayName": "Replace 'Slice' with range indexer",
"enabled": true,
"description": "Replace 'Slice' method call with range indexer access"
},
{
"shortName": "ReplaceSubstringWithRangeIndexer",
"displayName": "Replace 'Substring' with range indexer",
"enabled": true,
"description": "Replace 'Substring' method call with range indexer access"
},
{
"shortName": "ReplaceWithFieldKeyword",
"displayName": "Replace with 'field' keyword",
"enabled": true,
"description": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)"
},
{
"shortName": "ReplaceWithPrimaryConstructorParameter",
"displayName": "Replace with primary constructor parameter",
"enabled": true,
"description": "Replace explicit field declaration with a corresponding primary constructor parameter"
},
{
"shortName": "SwapViaDeconstruction",
"displayName": "Use deconstruction to swap variables",
"enabled": true,
"description": "Replace multiple assignments with single deconstructing assignment to perform swapping"
},
{
"shortName": "UseAwaitUsing",
"displayName": "Convert into 'await using' statement or declaration",
"enabled": true,
"description": "Replace 'using' statement or declaration with 'await using' form"
},
{
"shortName": "UseCollectionExpression",
"displayName": "Use collection expression syntax",
"enabled": true,
"description": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax"
},
{
"shortName": "UseDeconstruction",
"displayName": "Use deconstruction",
"enabled": true,
"description": "Decompose variable into positional components and replace variable usages with corresponding component variables"
},
{
"shortName": "UseDiscardAssignment",
"displayName": "Use discard assignment",
"enabled": true,
"description": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'."
},
{
"shortName": "UseIndexFromEndExpression",
"displayName": "Use index from end expression",
"enabled": true,
"description": "Replace array indexer argument with index from end expression"
},
{
"shortName": "UseNameOfInsteadOfToString",
"displayName": "Use 'nameof' expression to reference enum member name",
"enabled": true,
"description": "Replace 'SomeEnum.Member.ToString()' expression with constant 'nameof' expression"
},
{
"shortName": "UseNameOfInsteadOfTypeOf",
"displayName": "Use 'nameof' expression to reference type name",
"enabled": true,
"description": "Replace 'typeof(T).Name' or 'GetType().Name' expression with constant 'nameof' expression"
},
{
"shortName": "UseNameofExpression",
"displayName": "Use 'nameof' expression to reference name",
"enabled": true,
"description": "Replace string literal with statically typed 'nameof' expression"
},
{
"shortName": "UseNameofExpressionForPartOfTheString",
"displayName": "Use 'nameof' expression to reference name in part of the string literal",
"enabled": true,
"description": "Replace part of the string literal with statically typed 'nameof' expression"
},
{
"shortName": "UseNameofForDependencyProperty",
"displayName": "Use 'nameof' expression when registering a DependencyProperty",
"enabled": true,
"description": "Use 'nameof(ClrProperty)' when registering a DependencyProperty instead of a hardcoded name."
},
{
"shortName": "UseNegatedPatternInIsExpression",
"displayName": "Convert negated 'is' expression into 'is' expression with negated pattern",
"enabled": true,
"description": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern"
},
{
"shortName": "UseNegatedPatternMatching",
"displayName": "Convert 'as' expression type check and the following null check into negated pattern matching",
"enabled": true,
"description": "Replace variable for 'as' expression type check and the following check for it being null with negated C# 7.0 pattern matching expression"
},
{
"shortName": "UseNullPropagation",
"displayName": "Replace if statement with null-propagating code",
"enabled": true,
"description": "Replaces if statement with null-propagating code using ?. operator"
},
{
"shortName": "UseNullableReferenceTypesAnnotationSyntax",
"displayName": "Use type annotation syntax",
"enabled": true,
"description": "Replace nullness attributes such as [CanBeNull] or [ItemCanBeNull] with nullable reference types' annotation syntax"
},
{
"shortName": "UseObjectOrCollectionInitializer",
"displayName": "Use object or collection initializer when possible",
"enabled": true,
"description": "Suggest to replace object sequential assignments to newly created object fields by object initializer"
},
{
"shortName": "UsePatternMatching",
"displayName": "Convert 'as' expression type check and the following null check into pattern matching",
"enabled": true,
"description": "Replace variable for 'as' expression type check and the following check for it being not null with C# 7.0 pattern matching expression"
},
{
"shortName": "UsePositionalDeconstructionPattern",
"displayName": "Use positional deconstruction pattern",
"enabled": true,
"description": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns"
},
{
"shortName": "UseRawString",
"displayName": "Use raw string",
"enabled": true,
"description": "Use raw string to eliminate escape sequences and keep normal indentation"
},
{
"shortName": "UseStringInterpolation",
"displayName": "Use string interpolation expression",
"enabled": true,
"description": "Replace string construction by 'String.Format()' method invocation with string interpolation expression"
},
{
"shortName": "UseSymbolAlias",
"displayName": "Use alias",
"enabled": true,
"description": "Use available alias"
},
{
"shortName": "UseUnsignedRightShiftOperator",
"displayName": "Use unsigned right shift operator '>>>'",
"enabled": true,
"description": "Use unsigned right shift operator '>>>' instead of manual casting and shifting"
},
{
"shortName": "UseUtf8StringLiteral",
"displayName": "Use UTF-8 string literal",
"enabled": true,
"description": "Byte array can be converted to a UTF-8 string literal"
},
{
"shortName": "UseVerbatimString",
"displayName": "Literal length can be reduced by using verbatim string",
"enabled": true,
"description": "String literal length can be reduced by using verbatim string"
},
{
"shortName": "UseWithExpressionToCopyAnonymousObject",
"displayName": "Use 'with' expression to copy anonymous object",
"enabled": true,
"description": "Use 'with' expression to create a modified copy of an anonymous object"
},
{
"shortName": "UseWithExpressionToCopyRecord",
"displayName": "Use 'with' expression to copy record",
"enabled": true,
"description": "Use 'with' expression to create a modified instance of a record"
},
{
"shortName": "UseWithExpressionToCopyStruct",
"displayName": "Use 'with' expression to copy struct",
"enabled": true,
"description": "Use 'with' expression to create a modified instance of a struct"
},
{
"shortName": "UseWithExpressionToCopyTuple",
"displayName": "Use 'with' expression to copy tuple",
"enabled": true,
"description": "Use 'with' expression to create a modified copy of a tuple"
}
]
},
{
"name": "Language Usage Opportunities",
"categoryPath": [
{
"id": "REGULAR_EXPRESSION",
"name": "RegExpBase"
},
{
"id": "REGULAR_EXPRESSION.LanguageUsage",
"name": "Language Usage Opportunities"
}
],
"inspections": [
{
"shortName": "RegExpInspections",
"displayName": "Regular Expression Inspections",
"enabled": true,
"description": "Regular Expression language inspections"
}
]
},
{
"name": "Potential Code Quality Issues",
"categoryPath": [
{
"id": "CSHARP",
"name": "C#"
},
{
"id": "CSHARP.CodeSmell",
"name": "Potential Code Quality Issues"
}
],
"inspections": [
{
"shortName": "AccessRightsInText",
"displayName": "Cannot access symbol in text argument",
"enabled": true,
"description": "Cannot access symbol in text argument"
},
{
"shortName": "AccessToDisposedClosure",
"displayName": "Access to disposed captured variable",
"enabled": true,
"description": "Access to captured variable from anonymous method when the variable is disposed"
},
{
"shortName": "AccessToForEachVariableInClosure",
"displayName": "Access to foreach variable in closure",
"enabled": true,
"description": "This code can have different behavior when compiled with different versions of compiler. See changes for 'foreach' loop in C# 5.0 and Visual Basic 11."
},
{
"shortName": "AccessToModifiedClosure",
"displayName": "Access to modified captured variable",
"enabled": true,
"description": "Access to captured variable from anonymous method when the variable is modified externally"
},
{
"shortName": "AddressOfMarshalByRefObject",
"displayName": "Captured field reference of a marshal-by-reference class may cause a runtime exception",
"enabled": true,
"description": "Captured field reference of a marshal-by-reference class may cause a runtime exception"
},
{
"shortName": "AllUnderscoreLocalParameterName",
"displayName": "Potentially misleading parameter name in lambda or local function",
"enabled": true,
"description": "A name that consists of the '_' characters can be misleading for parameters that have usages, because such names are typically reserved for unused parameters"
},
{
"shortName": "AnnotationConflictInHierarchy",
"displayName": "Annotation conflict in hierarchy",
"enabled": true,
"description": "There is base member that has conflicting nullness annotation"
},
{
"shortName": "AssignmentInConditionalExpression",
"displayName": "Assignment in conditional expression",
"enabled": true,
"description": "Assignment in conditional expression; did you mean to use '==' instead of '='?"
},
{
"shortName": "AssignmentInsteadOfDiscard",
"displayName": "Suspicious use of variable with discard-like name",
"enabled": true,
"description": "Reports expressions that look like discard patterns but actually assign a local variable with discard-like name '_'"
},
{
"shortName": "AsyncIteratorInvocationWithoutAwaitForeach",
"displayName": "Async iterator invocation without 'await foreach'",
"enabled": true,
"description": "Because the result of asynchronous iterator call is not being iterated, execution of the current method continues before the call is completed. Consider using the 'await foreach' over the result of the call."
},
{
"shortName": "AsyncVoidEventHandlerMethod",
"displayName": "Avoid using 'async' for methods and functions with the 'void' return type and a parameter of type 'System.EventArgs'",
"enabled": true,
"description": "Prefer Task methods over methods returning 'void': any exceptions unhandled by the 'async void' method might lead to the process crash"
},
{
"shortName": "AsyncVoidLambda",
"displayName": "Avoid using 'async' lambda when delegate type returns 'void'",
"enabled": true,
"description": "Check the usage of 'async' lambda expression: any exceptions unhandled by the lambda might lead to the process crash"
},
{
"shortName": "AsyncVoidMethod",
"displayName": "Avoid using 'async' for methods and functions with the 'void' return type but without a parameter of type 'System.EventArgs'",
"enabled": true,
"description": "Prefer Task methods over methods returning 'void': any exceptions unhandled by the 'async void' method might lead to the process crash"
},
{
"shortName": "AsyncVoidThrowException",
"displayName": "Do not rethrow exception in 'async void' methods and functions",
"enabled": true,
"description": "Prefer Task methods over methods returning 'void': any exceptions unhandled by the 'async void' method might lead to the process crash"
},
{
"shortName": "BaseMethodCallWithDefaultParameter",
"displayName": "Call to base member with implicit default parameters",
"enabled": true,
"description": "Call to base member with implicit default parameters"
},
{
"shortName": "BaseObjectEqualsIsObjectEquals",
"displayName": "Call to 'base.Equals(...)' is reference equality",
"enabled": true,
"description": "Call to base 'Equals(...)' method is resolved to 'Object.Equals', which is reference equality"
},
{
"shortName": "BaseObjectGetHashCodeCallInGetHashCode",
"displayName": "Overridden GetHashCode calls base 'Object.GetHashCode()'",
"enabled": true,
"description": "Overridden GetHashCode calls base 'Object.GetHashCode()'"
},
{
"shortName": "BitwiseOperatorOnEnumWithoutFlags",
"displayName": "Bitwise operation on enum that is not marked by the [Flags] attribute",
"enabled": true,
"description": "Bitwise operation on enum that is not marked by the [Flags] attribute"
},
{
"shortName": "BothContextCallDeclaration.Global",
"displayName": "Method is called from both CQRS contexts: Show on declarations",
"enabled": true,
"description": "Method is called from both CQRS contexts"
},
{
"shortName": "BothContextCallUsage.Global",
"displayName": "Method is called from both CQRS contexts: Show on usages",
"enabled": true,
"description": "Method is called from both CQRS contexts"
},
{
"shortName": "ByRefArgumentIsVolatileField",
"displayName": "Captured reference to 'volatile' field will not be treated as 'volatile'",
"enabled": true,
"description": "Captured reference to 'volatile' field will not be treated as 'volatile'"
},
{
"shortName": "CanSimplifyStringEscapeSequence",
"displayName": "Escape sequence can be simplified",
"enabled": true,
"description": "Escape sequence can be simplified"
},
{
"shortName": "CapturedPrimaryConstructorParameterIsMutable",
"displayName": "Captured primary constructor parameter is mutable",
"enabled": true,
"description": "Primary constructor parameter is captured and mutated by instance member(s), consider using explicit non-readonly field instead"
},
{
"shortName": "ClassNeverInstantiated.Global",
"displayName": "Class is never instantiated: Non-private accessibility",
"enabled": true,
"description": "Non-static class is never instantiated"
},
{
"shortName": "ClassNeverInstantiated.Local",
"displayName": "Class is never instantiated: Private accessibility",
"enabled": true,
"description": "Non-static class is never instantiated"
},
{
"shortName": "CoVariantArrayConversion",
"displayName": "Co-variant array conversion",
"enabled": true,
"description": "Co-variant conversion of array could cause run-time exceptions"
},
{
"shortName": "CollectionNeverQueried.Global",
"displayName": "Collection content is never queried: Non-private accessibility",
"enabled": true,
"description": "Elements are only added to the collection but never used"
},
{
"shortName": "CollectionNeverQueried.Local",
"displayName": "Collection content is never queried: Private accessibility",
"enabled": true,
"description": "Elements are only added to the collection but never used"
},
{
"shortName": "CollectionNeverUpdated.Global",
"displayName": "Collection is never updated: Non-private accessibility",
"enabled": true,
"description": "New elements are never added to the collection"
},
{
"shortName": "CollectionNeverUpdated.Local",
"displayName": "Collection is never updated: Private accessibility",
"enabled": true,
"description": "New elements are never added to the collection"
},
{
"shortName": "CommandInvasionDeclaration.Global",
"displayName": "CQRS context intersection. Command is called from the Query context.: Show on declarations",
"enabled": true,
"description": "CQRS context intersection. Command is called from the Query context."
},
{
"shortName": "CommandInvasionUsage.Global",
"displayName": "CQRS context intersection. Command is called from the Query context.: Show on usages",
"enabled": true,
"description": "CQRS context intersection. Command is called from the Query context."
},
{
"shortName": "CompareNonConstrainedGenericWithNull",
"displayName": "Possible comparison of value type with 'null'",
"enabled": true,
"description": "Generic type has no value or class constraint, the condition could be always 'false'"
},
{
"shortName": "CompareOfFloatsByEqualityOperator",
"displayName": "Equality comparison of floating point numbers",
"enabled": true,
"description": "Equality comparison of floating point numbers"
},
{
"shortName": "ConditionalTernaryEqualBranch",
"displayName": "'?:' expression has identical true and false branches",
"enabled": true,
"description": "'?:' expression has identical true and false branches"
},
{
"shortName": "ConflictCqrsAttribute",
"displayName": "Conflicting CQRS attribute",
"enabled": true,
"description": "CQRS entity is annotated with conflicting attribute"
},
{
"shortName": "ConfusingCharAsIntegerInConstructor",
"displayName": "Char is possibly unintentionally used as integer",
"enabled": true,
"description": "Char is possibly unintentionally used as integer"
},
{
"shortName": "ConstantExpected",
"displayName": "The parameter expects a constant for optimal performance",
"enabled": true,
"description": "An invalid argument is passed to a parameter annotated with 'ConstantExpectedAttribute'"
},
{
"shortName": "ConstructorInitializerLoop",
"displayName": "Possible cyclic constructor call",
"enabled": true,
"description": "Possible cyclic constructor call"
},
{
"shortName": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated",
"displayName": "[MustDisposeResource] annotation is not inherited from the base constructor and should be placed explicitly",
"enabled": true,
"description": "[MustDisposeResource] annotation is not inherited from the base constructor"
},
{
"shortName": "ContextValueIsProvided",
"displayName": "Value of some context type is already provided",
"enabled": true,
"description": "Value of some context type is already provided by member annotated with [ProvidesContext] annotation"
},
{
"shortName": "ConvertTypeCheckPatternToNullCheck",
"displayName": "Use null check pattern instead of a type check succeeding on any not-null value",
"enabled": true,
"description": "The source expression is always of pattern's type, matches on all non-null values"
},
{
"shortName": "ConvertTypeCheckToNullCheck",
"displayName": "Use null check instead of a type check succeeding on any not-null value",
"enabled": true,
"description": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead."
},
{
"shortName": "DefaultValueAttributeForOptionalParameter",
"displayName": "Possibly misleading 'DefaultValueAttribute' usage to define optional parameter value",
"enabled": true,
"description": "Possibly misleading 'DefaultValueAttribute' usage to define optional parameter value. 'DefaultParameterValueAttribute' must be used instead."
},
{
"shortName": "DisposeOnUsingVariable",
"displayName": "Disposal of a variable already captured by the 'using' statement",
"enabled": true,
"description": "Do not dispose a variable captured by the 'using' statement because its disposed state may not be obvious elsewhere"
},
{
"shortName": "DuplicateItemInLoggerTemplate",
"displayName": "Structured log message items are duplicated or differ only in case",
"enabled": true,
"description": "Items in a structured log message should not be duplicated or differ only in case, because this can cause issues during processing. For example, items might be lost, automatically renamed, excluded from search indexes, or incorrectly grouped."
},
{
"shortName": "DuplicateKeyCollectionInitialization",
"displayName": "Duplicate keys in dictionary/set initialization",
"enabled": true,
"description": "A dictionary or a set may only contain one element with a given key. Using the same key more than once during collection initialization is likely a bug, and can result in a runtime exception."
},
{
"shortName": "DuplicatedChainedIfBodies",
"displayName": "Duplicated chained 'if' branches",
"enabled": true,
"description": "Consider merging duplicated chained 'if' branches to reduce redundancy"
},
{
"shortName": "DuplicatedSequentialIfBodies",
"displayName": "Duplicated sequential 'if' branches",
"enabled": true,
"description": "Consider merging duplicated sequential 'if' branches to reduce redundancy"
},
{
"shortName": "DuplicatedSwitchExpressionArms",
"displayName": "Duplicated 'switch' arms",
"enabled": true,
"description": "Duplicated 'switch' arms. Consider merging them into a single arm to improve readability and reduce code duplication."
},
{
"shortName": "DuplicatedSwitchSectionBodies",
"displayName": "Duplicated 'switch' branches",
"enabled": true,
"description": "Duplicated 'switch' branches. Consider merging them into a single branch to improve readability and reduce code duplication."
},
{
"shortName": "EmptyGeneralCatchClause",
"displayName": "Empty general catch clause",
"enabled": true,
"description": "A catch clause that catches System.Exception and has an empty body"
},
{
"shortName": "EnumerableSumInExplicitUncheckedContext",
"displayName": "'Enumerable.Sum' invocation in explicit unchecked context",
"enabled": true,
"description": "'Enumerable.Sum' invocation in explicit unchecked context"
},
{
"shortName": "EqualExpressionComparison",
"displayName": "Similar expressions comparison",
"enabled": true,
"description": "Comparing similar expressions for equality is usually redundant"
},
{
"shortName": "EventNeverInvoked",
"displayName": "Event never invoked",
"enabled": true,
"description": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here."
},
{
"shortName": "EventNeverInvoked.Global",
"displayName": "Abstract or virtual (overridable) event is never invoked",
"enabled": true,
"description": "An abstract or virtual (overridable) event is never invoked in its class or its inheritors"
},
{
"shortName": "EventNeverSubscribedTo.Global",
"displayName": "Event is never subscribed to: Non-private accessibility",
"enabled": true,
"description": "Event is never subscribed to"
},
{
"shortName": "EventNeverSubscribedTo.Local",
"displayName": "Event is never subscribed to: Private accessibility",
"enabled": true,
"description": "Event is never subscribed to"
},
{
"shortName": "EventUnsubscriptionViaAnonymousDelegate",
"displayName": "Event unsubscription via anonymous delegate",
"enabled": true,
"description": "Event unsubscription via anonymous delegate is meaningless"
},
{
"shortName": "ExplicitCallerInfoArgument",
"displayName": "Explicit argument passed to parameter with caller info attribute",
"enabled": true,
"description": "Compiler generates correct value for parameters marked with [CallerMemberName], [CallerFilePath], [CallerLineNumber], or [CallerArgumentExpression] attributes"
},
{
"shortName": "ExtractCommonBranchingCode",
"displayName": "Extract common code",
"enabled": true,
"description": "Extract common code out of branching statements such as 'if' or 'switch' to streamline and consolidate it, ensuring that shared logic is executed regardless of the branching path taken"
},
{
"shortName": "FieldHidesInterfacePropertyWithDefaultImplementation",
"displayName": "Field hides property with default implementation in interface",
"enabled": true,
"description": "Property with the same name and default implementation exists in an implemented interface"
},
{
"shortName": "FormatSpecifierCapturesRightBraces",
"displayName": "Do not use right brace after a format specifier in format strings",
"enabled": true,
"description": "In .NET Framework, a format specifier captures closing braces '}' greedily, even when they are escaped using double braces '}}'"
},
{
"shortName": "FormatStringProblem",
"displayName": "String formatting method problems",
"enabled": true,
"description": "Format string syntax errors (unescaped braces, invalid indices/alignments, unused arguments etc.) and other formatting method invocation problems"
},
{
"shortName": "FunctionComplexityOverflow",
"displayName": "Function body is too complex to analyze",
"enabled": true,
"description": "Function body is too complex to analyze, consider decomposing it or reducing number of variables"
},
{
"shortName": "FunctionNeverReturns",
"displayName": "Function never returns",
"enabled": true,
"description": "Function does not reach its end or a 'return' statement by any of possible execution paths"
},
{
"shortName": "FunctionRecursiveOnAllPaths",
"displayName": "Function is recursive on all execution paths",
"enabled": true,
"description": "Function or type initialization is recursive on all execution paths"
},
{
"shortName": "GCSuppressFinalizeForTypeWithoutDestructor",
"displayName": "'GC.SuppressFinalize' is invoked for type without destructor",
"enabled": true,
"description": "'GC.SuppressFinalize' is invoked for type without destructor"
},
{
"shortName": "GenericEnumeratorNotDisposed",
"displayName": "Return value of 'GetEnumerator' method call is never disposed",
"enabled": true,
"description": "To avoid resource leaks, when calling 'GetEnumerator' method manually, dispose of the resulting enumerator after usage. This maintains a similar behaviour to the 'foreach' loop which automatically handles disposal. Disposal is not required if the enumerator is a struct or a sealed class, and it doesn't implement the Dispose pattern or interface."
},
{
"shortName": "InParameterWithMustDisposeResourceAttribute",
"displayName": "Meaningless [MustDisposeResource] annotation for an input parameter",
"enabled": true,
"description": "Meaningless [MustDisposeResource] annotation for an input parameter"
},
{
"shortName": "InconsistentOrderOfLocks",
"displayName": "Inconsistent order of taken locks",
"enabled": true,
"description": "The expression is used in several lock statements with inconsistent execution order, forming a cycle. This might lead to a possible deadlock in a multi-threaded execution."
},
{
"shortName": "InconsistentlySynchronizedField",
"displayName": "Inconsistent synchronization on field",
"enabled": true,
"description": "The field is sometimes used inside synchronized block and sometimes used without synchronization"
},
{
"shortName": "IncorrectConstantExpectedAnnotation",
"displayName": "Incorrect usage of the 'ConstantExpected' attribute",
"enabled": true,
"description": "The 'ConstantExpectedAttribute' is not applied correctly to the parameter"
},
{
"shortName": "IndexingByInvalidRange",
"displayName": "Possible 'System.ArgumentOutOfRangeException'. Start index must be less than or equal to end index.",
"enabled": true,
"description": "Indexing by invalid range may cause exceptions"
},
{
"shortName": "InheritdocConsiderUsage",
"displayName": "Use on root level to inherit documentation from base candidate",
"enabled": true,
"description": "Use on root level to inherit documentation from base candidate"
},
{
"shortName": "InheritdocInvalidUsage",
"displayName": "Usage of is invalid",
"enabled": true,
"description": "Usage of is invalid"
},
{
"shortName": "IntDivisionByZero",
"displayName": "Division by zero in at least one execution path",
"enabled": true,
"description": "Division by zero in at least one execution path"
},
{
"shortName": "IntVariableOverflow",
"displayName": "Possible overflow",
"enabled": true,
"description": "Possible overflow"
},
{
"shortName": "IntVariableOverflowInCheckedContext",
"displayName": "Possible overflow in checked context",
"enabled": true,
"description": "Possible overflow in checked context"
},
{
"shortName": "IntVariableOverflowInUncheckedContext",
"displayName": "Possible overflow in unchecked context",
"enabled": true,
"description": "Possible overflow in unchecked context"
},
{
"shortName": "InterpolatedStringExpressionIsNotIFormattable",
"displayName": "Formatting is specified, but interpolated string expression is not IFormattable",
"enabled": true,
"description": "Formatting is specified, but interpolated string expression is not IFormattable"
},
{
"shortName": "InvalidXmlDocComment",
"displayName": "Invalid XML documentation comment",
"enabled": true,
"description": "Invalid XML documentation comment"
},
{
"shortName": "IsExpressionAlwaysFalse",
"displayName": "The expression of 'is' operator is never of the provided type",
"enabled": true,
"description": "The expression of 'is' operator is never of the provided type"
},
{
"shortName": "IsExpressionAlwaysTrue",
"displayName": "The given expression of 'is' operator is always of the provided type",
"enabled": true,
"description": "The expression of 'is' operator is always of the provided type"
},
{
"shortName": "IteratorMethodResultIsIgnored",
"displayName": "Return value of iterator is not used",
"enabled": true,
"description": "Return value of iterator is not used"
},
{
"shortName": "IteratorNeverReturns",
"displayName": "Iterator never returns",
"enabled": true,
"description": "Iterator function does not reach its end or a 'return' statement by any of possible execution paths"
},
{
"shortName": "LocalFunctionHidesMethod",
"displayName": "Local function hides method",
"enabled": true,
"description": "Local function has the same name as a method and hides it"
},
{
"shortName": "LocalVariableHidesMember",
"displayName": "Local variable hides member",
"enabled": true,
"description": "Local variable has the same name as a field/property and hides it"
},
{
"shortName": "LocalVariableHidesPrimaryConstructorParameter",
"displayName": "Local variable hides primary constructor parameter",
"enabled": true,
"description": "Local variable has the same name as a primary constructor parameter and hides it"
},
{
"shortName": "LoopVariableIsNeverChangedInsideLoop",
"displayName": "Loop control variable is never changed inside loop",
"enabled": true,
"description": "Loop control variable is never changed inside loop"
},
{
"shortName": "MathClampMinGreaterThanMax",
"displayName": "Inconsistent arguments passed to 'Math.Clamp()' method",
"enabled": true,
"description": "Argument 'min' is always greater than argument 'max'"
},
{
"shortName": "MemberHidesInterfaceMemberWithDefaultImplementation",
"displayName": "Non-public member in implementation class hides default implementation in interface",
"enabled": true,
"description": "Member with the same signature and default implementation exists in an implemented interface"
},
{
"shortName": "MemberHidesStaticFromOuterClass",
"displayName": "Member hides static member from outer class",
"enabled": true,
"description": "Member hides static member from outer class"
},
{
"shortName": "MemberInitializerValueIgnored",
"displayName": "Member initialized value ignored",
"enabled": true,
"description": "Member initializer value is ignored because the member is always initialized in all constructors"
},
{
"shortName": "MergeCastWithTypeCheck",
"displayName": "Type check and casts can be merged",
"enabled": true,
"description": "Type check ('is' expression) and direct cast(s) after it can be merged"
},
{
"shortName": "MethodOverloadWithOptionalParameter",
"displayName": "Method with optional or 'params' parameter is hidden by overload",
"enabled": true,
"description": "Method with optional or 'params' parameter is hidden by overload"
},
{
"shortName": "MultipleCqrsEntity",
"displayName": "Unidentified CQRS entity",
"enabled": true,
"description": "CQRS entity cannot be identified because there are conflicts between its name, implemented interfaces, or attributes"
},
{
"shortName": "MultipleOrderBy",
"displayName": "Multiple sequential 'OrderBy' invocation",
"enabled": true,
"description": "Multiple sequential 'OrderBy' invocation is meaningless, probably 'ThenBy' is implied"
},
{
"shortName": "MultipleResolveCandidatesInText",
"displayName": "Ambiguous symbols in text argument",
"enabled": true,
"description": "Ambiguous symbols in text argument"
},
{
"shortName": "MustUseReturnValue",
"displayName": "Return value of [MustUseReturnValue]-annotated method is not used",
"enabled": true,
"description": "Return value of method annotated with [{0}] attribute is not used"
},
{
"shortName": "NegativeIndex",
"displayName": "Possible 'System.ArgumentOutOfRangeException'. Index must be a non-negative integer.",
"enabled": true,
"description": "'System.Index' requires a non-negative argument"
},
{
"shortName": "NonAtomicCompoundOperator",
"displayName": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead.",
"enabled": true,
"description": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead."
},
{
"shortName": "NonConstantEqualityExpressionHasConstantResult",
"displayName": "According to values of the bit masks, expression result will always be the same",
"enabled": true,
"description": "According to values of the bit masks, expression result will always be the same"
},
{
"shortName": "NonReadonlyMemberInGetHashCode",
"displayName": "Non-readonly type member referenced in 'GetHashCode()'",
"enabled": true,
"description": "Non-readonly field or auto-property referenced in 'GetHashCode()'"
},
{
"shortName": "NotAccessedField.Global",
"displayName": "Non-accessed field: Non-private accessibility",
"enabled": true,
"description": "Field is assigned but its value is never used"
},
{
"shortName": "NotAccessedField.Local",
"displayName": "Non-accessed field: Private accessibility",
"enabled": true,
"description": "Field is assigned but its value is never used"
},
{
"shortName": "NotAccessedPositionalProperty.Global",
"displayName": "Non-accessed positional property: Non-private accessibility",
"enabled": true,
"description": "Positional property is never accessed for reading"
},
{
"shortName": "NotAccessedPositionalProperty.Local",
"displayName": "Non-accessed positional property: Private accessibility",
"enabled": true,
"description": "Positional property is never accessed for reading"
},
{
"shortName": "NotDisposedResource",
"displayName": "Return value of a method annotated with [MustDisposeResource] is never disposed",
"enabled": true,
"description": "Return value of a method annotated with [MustDisposeResource] is never disposed"
},
{
"shortName": "NotDisposedResourceIsReturned",
"displayName": "Return value should be disposed but the method or function is not annotated with [MustDisposeResource]",
"enabled": true,
"description": "Return value should be disposed but the method or function is not annotated with [MustDisposeResource]"
},
{
"shortName": "NotDisposedResourceIsReturnedByProperty",
"displayName": "Return value of a property must be disposed by the callee",
"enabled": true,
"description": "Return value of a property must be disposed by the callee"
},
{
"shortName": "NotResolvedInText",
"displayName": "Cannot resolve symbol in text argument",
"enabled": true,
"description": "Cannot resolve symbol in text argument"
},
{
"shortName": "NullableWarningSuppressionIsUsed",
"displayName": "A suppressed nullable warning might hide an underlying problem",
"enabled": true,
"description": "A suppressed nullable warning might hide an underlying problem such as a nullable value that was thought to be already handled. This might be a result of a refactoring introducing nullable values on execution paths where they were not allowed."
},
{
"shortName": "NullnessAnnotationConflictWithJetBrainsAnnotations",
"displayName": "Nullability conflicts with annotations in hierarchy",
"enabled": true,
"description": "Nullability of a member conflicts with attribute annotations in its hierarchy. When using a base member, an unexpected value might be passed or returned, e.g. a null value might be passed to a non-nullable parameter because a parameter of a base member allows it, or the return value might not be checked for null because a base member indicates that it should never return null."
},
{
"shortName": "ObjectCreationAsStatement",
"displayName": "Possible unassigned object created by 'new' expression",
"enabled": true,
"description": "Object created by 'new' expression is possibly not assigned anywhere"
},
{
"shortName": "OneWayOperationContractWithReturnType",
"displayName": "One way operations must not return values",
"enabled": true,
"description": "Methods marked with OperationContract attribute as OneWay operations must not return values"
},
{
"shortName": "OperationContractWithoutServiceContract",
"displayName": "Method is marked as OperationContract but containing type is not marked as ServiceContract",
"enabled": true,
"description": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception"
},
{
"shortName": "OperatorIsCanBeUsed",
"displayName": "Operator 'is'/'Type Of ... Is ...' can be used",
"enabled": true,
"description": "Operator 'is'/'Type Of ... Is ...' can be used instead of comparing objects GetType() and instance of System.Type object"
},
{
"shortName": "OperatorWithoutMatchedCheckedOperator",
"displayName": "Operator without matching checked operator",
"enabled": true,
"description": "The operator does not have a matching checked operator while there are checked versions for other operators in this type"
},
{
"shortName": "OptionalParameterHierarchyMismatch",
"displayName": "Mismatch of optional parameter value in overridden method",
"enabled": true,
"description": "Mismatch of optional parameter value in overridden method"
},
{
"shortName": "OptionalParameterRefOut",
"displayName": "'ref' or 'out' parameter with [Optional] attribute",
"enabled": true,
"description": "C# does not support 'ref' or 'out' optional parameters"
},
{
"shortName": "OutParameterWithHandlesResourceDisposalAttribute",
"displayName": "Meaningless [HandlesResourceDisposal] annotation for an output parameter",
"enabled": true,
"description": "Meaningless [HandlesResourceDisposal] annotation for an output parameter"
},
{
"shortName": "ParameterHidesMember",
"displayName": "Parameter hides member",
"enabled": true,
"description": "Method parameter has the same name as a field/property and hides it"
},
{
"shortName": "ParameterHidesPrimaryConstructorParameter",
"displayName": "Parameter hides primary constructor parameter",
"enabled": true,
"description": "Method parameter has the same name as a primary constructor parameter and hides it"
},
{
"shortName": "PartialMethodParameterNameMismatch",
"displayName": "Parameter name differs between partial member declarations",
"enabled": true,
"description": "Parameter name differs between partial member declarations"
},
{
"shortName": "PatternAlwaysMatches",
"displayName": "The source expression always matches the provided pattern",
"enabled": true,
"description": "The source expression of 'is' operator or 'switch' statement always matches the provided pattern"
},
{
"shortName": "PatternIsRedundant",
"displayName": "The pattern is redundant, it does not produce any runtime checks",
"enabled": true,
"description": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition."
},
{
"shortName": "PatternNeverMatches",
"displayName": "The source expression never matches the provided pattern",
"enabled": true,
"description": "The source expression of 'is' operator or 'switch' statement never matches the provided pattern"
},
{
"shortName": "PolymorphicFieldLikeEventInvocation",
"displayName": "Invocation of polymorphic field-like event",
"enabled": true,
"description": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual"
},
{
"shortName": "PossibleInfiniteInheritance",
"displayName": "Possible infinite inheritance",
"enabled": true,
"description": "According to ECMA-335 part II (Metadata) paragraph 9.2: 'Generics and recursive inheritance graphs'"
},
{
"shortName": "PossibleIntendedRethrow",
"displayName": "Exception rethrow possibly intended",
"enabled": true,
"description": "A 'throw' statement inside a catch clause which throws the exception caught. In most of cases a 'throw' statement with no argument is to be used."
},
{
"shortName": "PossibleInterfaceMemberAmbiguity",
"displayName": "Possible ambiguity while accessing member by interface",
"enabled": true,
"description": "Possible ambiguity while accessing member by interface"
},
{
"shortName": "PossibleInvalidCastException",
"displayName": "Possible 'System.InvalidCastException'",
"enabled": true,
"description": "Possible cast expression of incompatible type"
},
{
"shortName": "PossibleInvalidCastExceptionInForeachLoop",
"displayName": "Possible 'System.InvalidCastException' in foreach loop",
"enabled": true,
"description": "Possible cast expression of incompatible type"
},
{
"shortName": "PossibleInvalidOperationException",
"displayName": "Possible 'System.InvalidOperationException'",
"enabled": true,
"description": "Possible call to method is invalid for the object's current state"
},
{
"shortName": "PossibleInvalidOperationExceptionCollectionWasModified",
"displayName": "Possible 'System.InvalidOperationException: Collection was modified'",
"enabled": true,
"description": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration"
},
{
"shortName": "PossibleLossOfFraction",
"displayName": "Possible loss of fraction",
"enabled": true,
"description": "Possible loss of fraction when dividing integral values and assigning the result to float or decimal"
},
{
"shortName": "PossibleMistakenCallToGetType",
"displayName": "Possible mistaken 'GetType()' invocation",
"enabled": true,
"description": "Possible mistaken 'GetType()' invocation on 'System.Type' instance"
},
{
"shortName": "PossibleMistakenSystemTypeArgument",
"displayName": "Possible mistaken argument of type 'System.Type'",
"enabled": true,
"description": "Possibly mistaken argument of type 'System.Type' is used where an object for type checking is expected"
},
{
"shortName": "PossibleMultipleEnumeration",
"displayName": "Possible multiple enumeration",
"enabled": true,
"description": "Possible multiple enumeration of IEnumerable or IAsyncEnumerable"
},
{
"shortName": "PossibleMultipleWriteAccessInDoubleCheckLocking",
"displayName": "Possible incorrect implementation of Double-Check Locking pattern. Possible multiple write access to checked field.",
"enabled": true,
"description": "Possible incorrect implementation of Double-Check Locking pattern. Possible multiple write access to checked field."
},
{
"shortName": "PossibleNullReferenceException",
"displayName": "Possible 'System.NullReferenceException'",
"enabled": true,
"description": "Dereferencing an expression that can have 'null' value. This warning is detected either when there is a comparison with 'null' earlier in the code or when this value is returned by a member marked with 'Value can be null' attribute."
},
{
"shortName": "PossibleStructMemberModificationOfNonVariableStruct",
"displayName": "Value assigned to a property of non-variable qualifier expression can be lost",
"enabled": true,
"description": "Value assigned to a property of non-variable qualifier expression can be lost if struct type will be substituted as generic type argument"
},
{
"shortName": "PossibleUnintendedLinearSearchInSet",
"displayName": "Possibly unintended linear search in set",
"enabled": true,
"description": "Usage of 'Enumerable.Contains' extension method will perform a linear search.\r\n Consider providing equality comparer to the set's constructor and using its own '.Contains' method."
},
{
"shortName": "PossibleUnintendedQueryableAsEnumerable",
"displayName": "IQueryable is possibly unintentionally used as IEnumerable",
"enabled": true,
"description": "IQueryable is possibly unintentionally used as IEnumerable"
},
{
"shortName": "PossibleUnintendedReferenceComparison",
"displayName": "Possible unintended reference comparison",
"enabled": true,
"description": "Possible unintended reference comparison"
},
{
"shortName": "PossiblyImpureMethodCallOnReadonlyVariable",
"displayName": "Possibly impure struct method is called on readonly variable: struct value always copied before invocation",
"enabled": true,
"description": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation"
},
{
"shortName": "PossiblyMissingIndexerInitializerComma",
"displayName": "Possibly missing comma before indexer initializer",
"enabled": true,
"description": "Assignment expression inside member initializer value looks suspicious. Comma is probably missing."
},
{
"shortName": "PossiblyMistakenUseOfCancellationToken",
"displayName": "Possibly mistaken use of a 'CancellationToken'",
"enabled": true,
"description": "'CancellationToken' from outer scope is used"
},
{
"shortName": "PossiblyMistakenUseOfInterpolatedStringInsert",
"displayName": "Possibly unintended string interpolation instead of format string template",
"enabled": true,
"description": "Interpolated string that could be a valid format string detected. Possibly intended to be a format string template literal."
},
{
"shortName": "PossiblyUnintendedSideEffectsInsideConditionalInvocation",
"displayName": "Possibly unintended modification inside conditional invocation",
"enabled": true,
"description": "Externally visible modification will be skipped when conditional invocation is not performed in certain build configurations"
},
{
"shortName": "PossiblyUnintendedUsageParameterlessGetExpressionType",
"displayName": "Possible unintended usage of parameterless GetExpressionType()",
"enabled": true,
"description": "Possible unintended usage of parameterless GetExpressionType() when an instance of IResolveContext is available in the context"
},
{
"shortName": "PreferExplicitlyProvidedTupleComponentName",
"displayName": "Prefer explicitly provided tuple component name",
"enabled": true,
"description": "Prefer to use tuple components by their explicit names and not by positional-based implicit ones like ItemN"
},
{
"shortName": "PrimaryConstructorParameterCaptureDisallowed",
"displayName": "Primary constructor parameter capturing is disallowed",
"enabled": true,
"description": "Capturing of a primary constructor parameter by an instance member results in an implicit type layout. Use this inspection if you want to disallow primary parameter capturing."
},
{
"shortName": "PropertyFieldKeywordIsNeverAssigned",
"displayName": "Backing field is used but never assigned",
"enabled": true,
"description": "Backing field of property with 'field' keyword is used but never assigned"
},
{
"shortName": "PropertyFieldKeywordIsNeverUsed",
"displayName": "Backing field is assigned but never used",
"enabled": true,
"description": "Backing field of property with 'field' keyword is assigned but never used"
},
{
"shortName": "PropertyNotResolved",
"displayName": "Cannot resolve property",
"enabled": true,
"description": "Cannot resolve property"
},
{
"shortName": "PureAttributeOnVoidMethod",
"displayName": "'void' method is annotated with the [Pure] attribute",
"enabled": true,
"description": "It is meaningless to annotate a 'void' method with the [Pure] attribute"
},
{
"shortName": "QueryInvasionDeclaration.Global",
"displayName": "CQRS context intersection. Query is called from the Command context.: Show on declarations",
"enabled": true,
"description": "CQRS context intersection. Query is called from the Command context."
},
{
"shortName": "QueryInvasionUsage.Global",
"displayName": "CQRS context intersection. Query is called from the Command context.: Show on usages",
"enabled": true,
"description": "CQRS context intersection. Query is called from the Command context."
},
{
"shortName": "ReadAccessInDoubleCheckLocking",
"displayName": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field.",
"enabled": true,
"description": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field."
},
{
"shortName": "RedundantDisableWarningComment",
"displayName": "Redundant disable code inspection comment",
"enabled": true,
"description": "There is no code inspection issue disabled by this comment"
},
{
"shortName": "RedundantWithExpression",
"displayName": "Empty 'with' expression is redundant",
"enabled": true,
"description": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation"
},
{
"shortName": "ReferenceEqualsWithValueType",
"displayName": "'Object.ReferenceEquals' is always false because it is called with value type",
"enabled": true,
"description": "'Object.ReferenceEquals' is always false because it is called with value type"
},
{
"shortName": "ResourceItemNotResolved",
"displayName": "Cannot resolve resource item",
"enabled": true,
"description": "Cannot resolve resource item"
},
{
"shortName": "ResourceNotResolved",
"displayName": "Cannot resolve resource",
"enabled": true,
"description": "Cannot resolve resource"
},
{
"shortName": "ReturnOfTaskProducedByUsingVariable",
"displayName": "Return of a task produced by 'using'-captured object",
"enabled": true,
"description": "Do not return a task produced by a 'using'-captured object, because this task may not be able to complete after that object is disposed"
},
{
"shortName": "ReturnOfUsingVariable",
"displayName": "Return of a variable captured by 'using' statement",
"enabled": true,
"description": "Do not return a variable captured by 'using' statement because it will be disposed before returning"
},
{
"shortName": "ReturnTypeCanBeNotNullable",
"displayName": "Return type of a function can be made non-nullable",
"enabled": true,
"description": "Function's return type is declared as nullable but it never returns nullable values"
},
{
"shortName": "ReturnValueOfPureMethodIsNotUsed",
"displayName": "Return value of pure method is not used",
"enabled": true,
"description": "Return value of pure method is not used"
},
{
"shortName": "SafeCastIsUsedAsTypeCheck",
"displayName": "Try cast and check for null can be replaced with a type check",
"enabled": true,
"description": "Try cast and check for null can be replaced with a type check"
},
{
"shortName": "ServiceContractWithoutOperations",
"displayName": "Interfaces marked as ServiceContract should declare at least one OperationContract",
"enabled": true,
"description": "Interfaces marked as ServiceContract should declare at least one OperationContract"
},
{
"shortName": "ShebangDirectiveBadPlacement",
"displayName": "Move the shebang directive to the beginning of the file",
"enabled": true,
"description": "Move the shebang directive (which starts with '#!') to the very beginning of the file so the Unix-compatible program loader can determine how to run it"
},
{
"shortName": "ShiftExpressionRealShiftCountIsZero",
"displayName": "Actual shift count equals zero",
"enabled": true,
"description": "Actual shift count equals zero. Left operand will remain unchanged."
},
{
"shortName": "ShiftExpressionResultEqualsZero",
"displayName": "Constant shift expression with non-zero operands results in a zero value",
"enabled": true,
"description": "Constant shift expression with non-zero operands results in a zero value"
},
{
"shortName": "ShiftExpressionRightOperandNotEqualRealCount",
"displayName": "Suspicious shift count for this type of left operand",
"enabled": true,
"description": "Suspicious shift count for this type of left operand (different from actual shift count that will be used by compiler)"
},
{
"shortName": "ShiftExpressionZeroLeftOperand",
"displayName": "Shift expression with zero left operand equals zero",
"enabled": true,
"description": "Shift expression with zero left operand equals zero"
},
{
"shortName": "SimilarAnonymousTypeNearby",
"displayName": "Similar anonymous type detected nearby",
"enabled": true,
"description": "Anonymous type that differs only in property order is detected nearby"
},
{
"shortName": "SimplifyStringInterpolation",
"displayName": "Use format specifier in interpolated strings",
"enabled": true,
"description": "'.ToString()' call could be replaced with a format specifier"
},
{
"shortName": "SpinLockInReadonlyField",
"displayName": "Do not store SpinLock in readonly field",
"enabled": true,
"description": "SpinLock should not be stored in readonly field because it is a struct and is copied when an instance method is called on it"
},
{
"shortName": "StackAllocInsideLoop",
"displayName": "Using stackalloc inside loop",
"enabled": true,
"description": "Memory stack allocation inside a loop can cause a temporary memory leak because the allocated memory is freed only when the method returns"
},
{
"shortName": "StaticMemberInGenericType",
"displayName": "Static field or auto-property in generic type",
"enabled": true,
"description": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation"
},
{
"shortName": "StaticMemberInitializerReferesToMemberBelow",
"displayName": "Static member initializer refers to static member below or in other part",
"enabled": true,
"description": "Static field/auto-property/event initializer refers to a static field/auto-property/event below or in another part"
},
{
"shortName": "StaticProblemInText",
"displayName": "Cannot access static symbol in text argument",
"enabled": true,
"description": "Cannot access static symbol in text argument"
},
{
"shortName": "StringSpanComparison",
"displayName": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location",
"enabled": true,
"description": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead."
},
{
"shortName": "StructuredMessageTemplateProblem",
"displayName": "Structured message template problems",
"enabled": true,
"description": "Structured message template syntax errors (unescaped braces, unused arguments, etc.)"
},
{
"shortName": "SuppressNullableWarningExpressionAsInvertedIsExpression",
"displayName": "Nullable warning suppression operator might be confused with inverted 'is' expression",
"enabled": true,
"description": "'!is' looks like an inverted 'is' expression but instead applies nullable warning suppression operator to its operand"
},
{
"shortName": "SuspiciousLockOverSynchronizationPrimitive",
"displayName": "Suspicious locking over synchronization primitive",
"enabled": true,
"description": "Avoid using synchronization primitives as 'lock' objects"
},
{
"shortName": "SuspiciousParameterNameInArgumentNullException",
"displayName": "Suspicious parameter name in ArgumentNullException",
"enabled": true,
"description": "Argument name does not match the parameter that was checked"
},
{
"shortName": "SuspiciousTypeConversion.Global",
"displayName": "Suspicious type conversion or check",
"enabled": true,
"description": "A type is converted into another one but there is no type in the solution which is inherited from both. This also applies to 'is' operator and '==' and '!=' comparisons."
},
{
"shortName": "SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault",
"displayName": "Some values of the enum are not processed inside 'switch' expression and are handled via exception in default arm",
"enabled": true,
"description": "Some values of the enum are not processed inside switch expression and fall into default arm. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly"
},
{
"shortName": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault",
"displayName": "Some values of the enum are not processed inside 'switch' statement and are handled via default section",
"enabled": true,
"description": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly"
},
{
"shortName": "SwitchStatementMissingSomeEnumCasesNoDefault",
"displayName": "Some values of the enum are not processed inside 'switch' statement",
"enabled": true,
"description": "Some values of the enum are not processed inside 'switch' statement"
},
{
"shortName": "SymbolFromNotCopiedLocallyReferenceUsedWarning",
"displayName": "Symbol from module that might be missing at runtime",
"enabled": true,
"description": "Highlights symbols used from a referenced module that is not copied locally"
},
{
"shortName": "TailRecursiveCall",
"displayName": "Tail recursive call can be replaced with loop",
"enabled": true,
"description": "Tail recursive calls can be replaced with loop for better performance and protection from possible stack overflows"
},
{
"shortName": "ThreadStaticAtInstanceField",
"displayName": "[ThreadStatic] does not work with instance fields",
"enabled": true,
"description": "[ThreadStatic] does nothing with instance fields"
},
{
"shortName": "ThreadStaticFieldHasInitializer",
"displayName": "Thread static field has initializer",
"enabled": true,
"description": "Thread static field has an initializer, which is invoked only once on the thread that is running when the static constructor executes"
},
{
"shortName": "TryCastAlwaysSucceeds",
"displayName": "Safe cast expression always succeeds",
"enabled": true,
"description": "Safe cast expression always succeeds and can be replaced with a direct cast"
},
{
"shortName": "UnassignedField.Global",
"displayName": "Unassigned field: Non-private accessibility",
"enabled": true,
"description": "Field is never assigned"
},
{
"shortName": "UnassignedField.Local",
"displayName": "Unassigned field: Private accessibility",
"enabled": true,
"description": "Field is never assigned"
},
{
"shortName": "UnassignedReadonlyField",
"displayName": "Unassigned readonly field",
"enabled": true,
"description": "Readonly field is never assigned"
},
{
"shortName": "UnreachableSwitchArmDueToIntegerAnalysis",
"displayName": "Heuristically unreachable switch arm according to integer analysis",
"enabled": true,
"description": "Heuristically unreachable switch arm according to integer analysis"
},
{
"shortName": "UnreachableSwitchCaseDueToIntegerAnalysis",
"displayName": "Heuristically unreachable case according to integer analysis",
"enabled": true,
"description": "Heuristically unreachable case label according to integer analysis"
},
{
"shortName": "UnusedAutoPropertyAccessor.Global",
"displayName": "Auto-property accessor is never used: Non-private accessibility",
"enabled": true,
"description": "Accessor in auto-property is never used"
},
{
"shortName": "UnusedAutoPropertyAccessor.Local",
"displayName": "Auto-property accessor is never used: Private accessibility",
"enabled": true,
"description": "Accessor in auto-property is never used"
},
{
"shortName": "UseCollectionCountProperty",
"displayName": "Use collection's count property",
"enabled": true,
"description": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access"
},
{
"shortName": "UseConfigureAwaitFalse",
"displayName": "Missing '.ConfigureAwait(false)' in library code",
"enabled": true,
"description": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations.\r\n This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default.\r\n Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await' expressions and statements for missing 'ConfigureAwait(false)' calls."
},
{
"shortName": "UseConfigureAwaitFalseForAsyncDisposable",
"displayName": "Missing '.ConfigureAwait(false)' for async disposable in library code",
"enabled": true,
"description": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations.\r\n This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default.\r\n Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls."
},
{
"shortName": "UseFormatSpecifierInFormatString",
"displayName": "Use format specifier in format strings",
"enabled": true,
"description": "'.ToString()' call can be replaced with format specifier"
},
{
"shortName": "UseNullableAnnotationInsteadOfAttribute",
"displayName": "Use nullable annotation instead of an attribute",
"enabled": true,
"description": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead."
},
{
"shortName": "UseSwitchCasePatternVariable",
"displayName": "Type pattern and casts can be merged",
"enabled": true,
"description": "Type pattern in switch case label can be merged with direct cast(s) in switch section"
},
{
"shortName": "UselessBinaryOperation",
"displayName": "Useless arithmetical operation",
"enabled": true,
"description": "Useless arithmetical operation"
},
{
"shortName": "UsingStatementResourceInitialization",
"displayName": "Do not use object initializer for 'using' variable: Do not use object initializer for 'using' variable",
"enabled": true,
"description": "Initialize object properties inside the 'using' statement to ensure that the object is disposed if an exception is thrown during initialization"
},
{
"shortName": "UsingStatementResourceInitializationExpression",
"displayName": "Do not use object initializer for 'using' variable: Object initializer expression may throw exception while initializing 'using' variable",
"enabled": true,
"description": "Calculate object properties before the 'using' statement to ensure that no exception is thrown during initialization, which leaves the object not disposed"
},
{
"shortName": "ValueParameterNotUsed",
"displayName": "'value' parameter is not used",
"enabled": true,
"description": "The setter of a property or indexer does not use its 'value' parameter. This also applies to adders and removers of events."
},
{
"shortName": "VariableCanBeNotNullable",
"displayName": "Variable can be declared as non-nullable",
"enabled": true,
"description": "Variable is declared as nullable, but it never contains a null value"
},
{
"shortName": "VariableHidesOuterVariable",
"displayName": "Variable in local function hides variable from outer scope",
"enabled": true,
"description": "Variable in local function hides variable from outer scope"
},
{
"shortName": "VariableLengthStringHexEscapeSequence",
"displayName": "Avoid mixing of variable-length escape sequences and text",
"enabled": true,
"description": "The '\\x' escape sequence can interpret up to four hexadecimal digits. To prevent confusion when multiple digits follow, consider using a fixed-length sequence, e.g.: '\\u001A' instead of '\\x1A'."
},
{
"shortName": "VirtualMemberCallInConstructor",
"displayName": "Virtual member call in constructor",
"enabled": true,
"description": "When a virtual method is called, the actual type that executes the method\r\n is not selected until run time. When a constructor calls a virtual method,\r\n it is possible that the constructor for the instance that invokes the method\r\n has not executed. See http://msdn2.microsoft.com/en-us/library/ms182331.aspx."
},
{
"shortName": "VoidMethodWithMustDisposeResourceAttribute",
"displayName": "'void' method is annotated with the [MustDisposeResource] attribute",
"enabled": true,
"description": "Annotating a 'void' method with [MustDisposeResource] is meaningless"
},
{
"shortName": "VoidMethodWithMustUseReturnValueAttribute",
"displayName": "'void' method is annotated with the [MustUseReturnValue] attribute",
"enabled": true,
"description": "It is meaningless to annotate a 'void' method with the [MustUseReturnValue] attribute"
},
{
"shortName": "WithExpressionInsteadOfInitializer",
"displayName": "'with' expression is used instead of object initializer",
"enabled": true,
"description": "'with' expression applied to a newly created object instance results in unnecessary clone creation"
},
{
"shortName": "WithExpressionModifiesAllMembers",
"displayName": "'with' expression modifies all accessible instance members",
"enabled": true,
"description": "'with' expression modifies all accessible instance members. Unless it is an unintentional mistake, it should make more sense to create an entirely new instance."
},
{
"shortName": "ZeroIndexFromEnd",
"displayName": "Index from end must be greater than zero; use '^1' to refer to the last element",
"enabled": true,
"description": "Using '^0' in the index expression causes 'System.ArgumentOutOfRangeException'; use '^1' to refer to the last element"
}
]
},
{
"name": "Potential Code Quality Issues",
"categoryPath": [
{
"id": "Angular2HTML",
"name": "Angular 2 HTML"
},
{
"id": "Angular2HTML.CodeSmell",
"name": "Potential Code Quality Issues"
}
],
"inspections": [
{
"shortName": "AngularHtml.Banana",
"displayName": "'Banana in a box' [()] violation in Angular 2 binding",
"enabled": true,
"description": "Angular 2 requires parentheses inside brackets for two-direction bindings"
}
]
},
{
"name": "Potential Code Quality Issues",
"categoryPath": [
{
"id": "ASPX",
"name": "Aspx"
},
{
"id": "ASPX.CodeSmell",
"name": "Potential Code Quality Issues"
}
],
"inspections": [
{
"shortName": "Asp.ContentPlaceholderNotResolved",
"displayName": "Unknown content placeholder",
"enabled": true,
"description": "Unknown content placeholder"
},
{
"shortName": "Asp.CustomPageParserFilterType",
"displayName": "Unsupported pageParserFilterType",
"enabled": true,
"description": "ReSharper does not support pageParserFilterType specified in web.config"
},
{
"shortName": "Asp.DeadCode",
"displayName": "ASP.NET Dead Code",
"enabled": true,
"description": "ASP.NET Dead Code"
},
{
"shortName": "Asp.Image",
"displayName": "Wrong image size",
"enabled": true,
"description": "Wrong image size"
},
{
"shortName": "Asp.InvalidControlType",
"displayName": "Invalid control type",
"enabled": true,
"description": "Invalid control type"
},
{
"shortName": "Asp.NotResolved",
"displayName": "Unknown symbol",
"enabled": true,
"description": "Unknown symbol in ASP.NET and related technologies"
},
{
"shortName": "Asp.ResolveWarning",
"displayName": "ASP.NET Resolve Warning",
"enabled": true,
"description": "ASP.NET Resolve Warning"
},
{
"shortName": "Asp.SkinNotResolved",
"displayName": "Unknown skin",
"enabled": true,
"description": "Unknown skin"
},
{
"shortName": "Asp.ThemeNotResolved",
"displayName": "Unknown theme",
"enabled": true,
"description": "Unknown theme"
},
{
"shortName": "Asp.Warning",
"displayName": "ASP.NET Warning",
"enabled": true,
"description": "ASP.NET Warning"
},
{
"shortName": "AspOdsMethodReferenceResolveError",
"displayName": "Object data source method resolve problem",
"enabled": true,
"description": "Object data source method resolve problem"
},
{
"shortName": "Mvc.ActionNotResolved",
"displayName": "MVC: Unknown action",
"enabled": true,
"description": "Unknown ASP.NET MVC Action"
},
{
"shortName": "Mvc.AreaNotResolved",
"displayName": "MVC: Unknown area",
"enabled": true,
"description": "Unknown ASP.NET MVC Area"
},
{
"shortName": "Mvc.ControllerNotResolved",
"displayName": "MVC: Unknown controller",
"enabled": true,
"description": "Unknown ASP.NET MVC Controller"
},
{
"shortName": "Mvc.InvalidModelType",
"displayName": "MVC: Mismatch Model Type",
"enabled": true,
"description": "Mismatch ASP.NET MVC Model Type"
},
{
"shortName": "Mvc.MasterpageNotResolved",
"displayName": "MVC: Unknown masterpage",
"enabled": true,
"description": "Unknown ASP.NET MVC Masterpage"
},
{
"shortName": "Mvc.PartialViewNotResolved",
"displayName": "MVC: Unknown partial view",
"enabled": true,
"description": "Unknown ASP.NET MVC Partial View"
},
{
"shortName": "Mvc.TemplateNotResolved",
"displayName": "MVC: Unknown template",
"enabled": true,
"description": "Unknown ASP.NET MVC Template"
},
{
"shortName": "Mvc.ViewComponentNotResolved",
"displayName": "MVC: Unknown view component",
"enabled": true,
"description": "Unknown ASP.NET MVC View Component"
},
{
"shortName": "Mvc.ViewComponentViewNotResolved",
"displayName": "MVC: Unknown view component view",
"enabled": true,
"description": "Unknown ASP.NET MVC View Component View"
},
{
"shortName": "Mvc.ViewNotResolved",
"displayName": "MVC: Unknown view",
"enabled": true,
"description": "Unknown ASP.NET MVC View"
}
]
},
{
"name": "Potential Code Quality Issues",
"categoryPath": [
{
"id": "HTML",
"name": "HTML"
},
{
"id": "HTML.CodeSmell",
"name": "Potential Code Quality Issues"
}
],
"inspections": [
{
"shortName": "Asp.Entity",
"displayName": "Unknown HTML entity",
"enabled": true,
"description": "Unknown HTML entity"
},
{
"shortName": "Html.AttributeNotResolved",
"displayName": "Unknown attribute",
"enabled": true,
"description": "Unknown attribute in HTML and related technologies"
},
{
"shortName": "Html.AttributeValueNotResolved",
"displayName": "Unknown attribute value",
"enabled": true,
"description": "Unknown attribute value in HTML and related technologies"
},
{
"shortName": "Html.AttributesQuotes",
"displayName": "Wrong attribute quotes",
"enabled": true,
"description": "Attribute quotes are missing or differ from settings"
},
{
"shortName": "Html.DeadCode",
"displayName": "HTML Dead Code",
"enabled": true,
"description": "HTML Dead Code"
},
{
"shortName": "Html.EventNotResolved",
"displayName": "Unknown event",
"enabled": true,
"description": "Unknown event in HTML and related technologies"
},
{
"shortName": "Html.IdDuplication",
"displayName": "Ids duplication",
"enabled": true,
"description": "Duplication of id on page"
},
{
"shortName": "Html.IdNotResolved",
"displayName": "Unknown ID",
"enabled": true,
"description": "Link to unknown anchor (no element with such ID or name)"
},
{
"shortName": "Html.Obsolete",
"displayName": "Obsolete or nonstandard element",
"enabled": true,
"description": "Obsolete or nonstandard element"
},
{
"shortName": "Html.PathError",
"displayName": "Path error",
"enabled": true,
"description": "Path error"
},
{
"shortName": "Html.TagNotClosed",
"displayName": "Unclosed tag",
"enabled": true,
"description": "Unclosed tag in HTML and related technologies"
},
{
"shortName": "Html.TagNotResolved",
"displayName": "Unknown tag",
"enabled": true,
"description": "Unknown tag in HTML and related technologies"
},
{
"shortName": "Html.TagShouldBeSelfClosed",
"displayName": "Wrong closed tag",
"enabled": true,
"description": "Wrong closed tag in HTML and related technologies"
},
{
"shortName": "Html.TagShouldNotBeSelfClosed",
"displayName": "Wrong self-closed tag",
"enabled": true,
"description": "Wrong self-closed tag in HTML and related technologies"
},
{
"shortName": "Html.Warning",
"displayName": "HTML Warning",
"enabled": true,
"description": "HTML Warning"
},
{
"shortName": "OtherTagsInsideScript1",
"displayName": "Script tag errors: Other tags inside "
},
{
"shortName": "OtherTagsInsideScript2",
"displayName": "Script tag errors: Other tags inside "
},
{
"shortName": "OtherTagsInsideUnclosedScript",
"displayName": "Script tag errors: Unclosed "
},
{
"shortName": "UnclosedScript",
"displayName": "Script tag errors: Unclosed