Skip to content

Commit bf6e76a

Browse files
authored
Merge pull request #3807 from mavasani/UpdateAnalyzerPackageAndFixCA1836
Update .NET analyzers package and fix CA1836 violations
2 parents 6a8023e + e27a973 commit bf6e76a

File tree

62 files changed

+89
-93
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+89
-93
lines changed

.editorconfig

-4
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,3 @@ dotnet_code_quality.CA1720.api_surface = public
246246
# Exclude single letter type parameter names
247247
# CA1715: Identifiers should have correct prefix
248248
dotnet_code_quality.CA1715.exclude_single_letter_type_parameters = true
249-
250-
# CA1836: Prefer IsEmpty over Count/Length
251-
# Can enable it as a warning once https://github.com/dotnet/roslyn-analyzers/issues/3798 is fixed to unblock FixAll
252-
dotnet_diagnostic.CA1836.severity = suggestion

eng/Versions.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<MicrosoftNetCompilersToolsetVersion>$(MicrosoftNETCoreCompilersPackageVersion)</MicrosoftNetCompilersToolsetVersion>
2727
<!-- Roslyn -->
2828
<MicrosoftCodeAnalysisVersion>2.9.0</MicrosoftCodeAnalysisVersion>
29-
<DogfoodAnalyzersVersion>3.3.0-beta1.20330.1</DogfoodAnalyzersVersion>
29+
<DogfoodAnalyzersVersion>3.3.0-beta1.20351.1</DogfoodAnalyzersVersion>
3030
<MicrosoftCodeAnalysisBannedApiAnalyzersVersion>$(DogfoodAnalyzersVersion)</MicrosoftCodeAnalysisBannedApiAnalyzersVersion>
3131
<MicrosoftCodeAnalysisFXCopAnalyersVersion>$(DogfoodAnalyzersVersion)</MicrosoftCodeAnalysisFXCopAnalyersVersion>
3232
<MicrosoftCodeAnalysisAnalyersVersion>$(DogfoodAnalyzersVersion)</MicrosoftCodeAnalysisAnalyersVersion>

src/Microsoft.CodeAnalysis.Analyzers/Core/MetaAnalyzers/RegisterActionAnalyzer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ private void AnalyzeInvocation(SyntaxNodeAnalysisContext context)
383383
}
384384
}
385385

386-
if (method.TypeParameters.Length > 0 &&
386+
if (!method.TypeParameters.IsEmpty &&
387387
(isRegisterSyntaxNodeAction || isRegisterCodeBlockStartAction))
388388
{
389389
ITypeSymbol? typeArgument = null;

src/NetAnalyzers/CSharp/Microsoft.CodeQuality.Analyzers/QualityGuidelines/CSharpRethrowToPreserveStackDetails.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ private static void AnalyzeNode(SyntaxNodeAnalysisContext context)
3939
catchClause.Declaration.Identifier.RawKind != 0)
4040
{
4141
if (!(context.SemanticModel.GetSymbolInfo(expr).Symbol is ILocalSymbol local)
42-
|| local.Locations.Length == 0
42+
|| local.Locations.IsEmpty
4343
|| context.SemanticModel.AnalyzeDataFlow(catchClause.Block).WrittenInside.Contains(local))
4444
{
4545
return;

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/AbstractTypesShouldNotHaveConstructors.Fixer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public override async Task RegisterCodeFixesAsync(CodeFixContext context)
3737

3838
private static SyntaxNode? GetDeclaration(ISymbol symbol)
3939
{
40-
return (symbol.DeclaringSyntaxReferences.Length > 0) ? symbol.DeclaringSyntaxReferences[0].GetSyntax() : null;
40+
return (!symbol.DeclaringSyntaxReferences.IsEmpty) ? symbol.DeclaringSyntaxReferences[0].GetSyntax() : null;
4141
}
4242

4343
private static async Task<Document> ChangeAccessibilityCodeFix(Document document, SyntaxNode root, SyntaxNode nodeToFix, CancellationToken cancellationToken)

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/EnumsShouldHaveZeroValue.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ private static void CheckFlags(INamedTypeSymbol namedType, ImmutableArray<IField
157157

158158
private static void CheckNonFlags(INamedTypeSymbol namedType, ImmutableArray<IFieldSymbol> zeroValuedFields, Action<Diagnostic> addDiagnostic)
159159
{
160-
if (zeroValuedFields.Length == 0)
160+
if (zeroValuedFields.IsEmpty)
161161
{
162162
// Add a member to {0} that has a value of zero with a suggested name of 'None'.
163163
addDiagnostic(namedType.CreateDiagnostic(RuleNoZero, namedType.Name));

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/ImplementIDisposableCorrectly.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ private static void CheckRenameDisposeRule(IMethodSymbol method, INamedTypeSymbo
304304
/// </summary>
305305
private void CheckDisposeOverrideRule(IMethodSymbol method, INamedTypeSymbol type, SymbolAnalysisContext context)
306306
{
307-
if (method.MethodKind == MethodKind.Ordinary && method.IsOverride && method.ReturnsVoid && method.Parameters.Length == 0)
307+
if (method.MethodKind == MethodKind.Ordinary && method.IsOverride && method.ReturnsVoid && method.Parameters.IsEmpty)
308308
{
309309
bool isDisposeOverride = false;
310310
for (IMethodSymbol m = method.OverriddenMethod; m != null; m = m.OverriddenMethod)

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/ImplementStandardExceptionConstructors.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ private void AnalyzeCompilationSymbol(CompilationStartAnalysisContext context)
8585
var parameters = ctor.GetParameters();
8686

8787
//case 1: Default constructor - no parameters
88-
if (parameters.Length == 0)
88+
if (parameters.IsEmpty)
8989
{
9090
defaultConstructorFound = true;
9191
}

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/InterfaceMethodsShouldBeCallableByChildTypes.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ private static bool ShouldExcludeOperationBlock(ImmutableArray<IOperation> opera
6969
}
7070

7171
var explicitOperations = block.Operations.WithoutFullyImplicitOperations();
72-
if (explicitOperations.Length == 0)
72+
if (explicitOperations.IsEmpty)
7373
{
7474
// Empty body.
7575
return true;
@@ -100,7 +100,7 @@ private static void AnalyzeOperationBlock(OperationBlockAnalysisContext context,
100100
var method = (IMethodSymbol)context.OwningSymbol;
101101

102102
// We are only interested in private explicit interface implementations within a public non-sealed type.
103-
if (method.ExplicitInterfaceImplementations.Length == 0 ||
103+
if (method.ExplicitInterfaceImplementations.IsEmpty ||
104104
method.GetResultantVisibility() != SymbolVisibility.Private ||
105105
method.ContainingType.IsSealed ||
106106
!method.ContainingType.IsExternallyVisible())

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/MarkAssembliesWithComVisible.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ private static void AnalyzeCompilation(CompilationAnalysisContext context)
6363

6464
if (attributeInstance != null)
6565
{
66-
if (attributeInstance.ConstructorArguments.Length > 0 &&
66+
if (!attributeInstance.ConstructorArguments.IsEmpty &&
6767
attributeInstance.ConstructorArguments[0].Kind == TypedConstantKind.Primitive &&
6868
attributeInstance.ConstructorArguments[0].Value != null &
6969
attributeInstance.ConstructorArguments[0].Value.Equals(true))

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/ParameterNamesShouldMatchBaseDeclaration.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ private static void AnalyzeMethodSymbol(SymbolAnalysisContext analysisContext)
6363
}
6464

6565
ImmutableArray<IMethodSymbol> originalDefinitions = GetOriginalDefinitions(methodSymbol);
66-
if (originalDefinitions.Length == 0)
66+
if (originalDefinitions.IsEmpty)
6767
{
6868
// We did not find any original definitions so we don't have to do anything.
6969
// This can happen when the method has an override modifier,
@@ -136,7 +136,7 @@ private static ImmutableArray<IMethodSymbol> GetOriginalDefinitions(IMethodSymbo
136136
originalDefinitionsBuilder.Add(methodSymbol.OverriddenMethod);
137137
}
138138

139-
if (methodSymbol.ExplicitInterfaceImplementations.Length > 0)
139+
if (!methodSymbol.ExplicitInterfaceImplementations.IsEmpty)
140140
{
141141
originalDefinitionsBuilder.AddRange(methodSymbol.ExplicitInterfaceImplementations);
142142
}

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/TypesThatOwnDisposableFieldsShouldBeDisposable.Fixer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private static async Task<Document> ImplementIDisposable(Document document, Synt
5454

5555
// Find a Dispose method. If one exists make that implement IDisposable, else generate a new method.
5656
var typeSymbol = model.GetDeclaredSymbol(declaration, cancellationToken) as INamedTypeSymbol;
57-
IMethodSymbol? disposeMethod = (typeSymbol?.GetMembers("Dispose"))?.OfType<IMethodSymbol>()?.Where(m => m.Parameters.Length == 0).FirstOrDefault();
57+
IMethodSymbol? disposeMethod = (typeSymbol?.GetMembers("Dispose"))?.OfType<IMethodSymbol>()?.Where(m => m.Parameters.IsEmpty).FirstOrDefault();
5858
if (disposeMethod != null && disposeMethod.DeclaringSyntaxReferences.Length == 1)
5959
{
6060
SyntaxNode memberPartNode = await disposeMethod.DeclaringSyntaxReferences.Single().GetSyntaxAsync(cancellationToken).ConfigureAwait(false);

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/ApiDesignGuidelines/UsePropertiesWhereAppropriate.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public override void Initialize(AnalysisContext analysisContext)
4848
if (!(context.OwningSymbol is IMethodSymbol methodSymbol) ||
4949
methodSymbol.ReturnsVoid ||
5050
methodSymbol.ReturnType.Kind == SymbolKind.ArrayType ||
51-
methodSymbol.Parameters.Length > 0 ||
51+
!methodSymbol.Parameters.IsEmpty ||
5252
!methodSymbol.MatchesConfiguredVisibility(context.Options, Rule, context.CancellationToken) ||
5353
methodSymbol.IsAccessorMethod() ||
5454
!IsPropertyLikeName(methodSymbol.Name))

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/QualityGuidelines/AvoidDuplicateElementInitialization.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private static void AnalyzeOperation(OperationAnalysisContext context)
5454
{
5555
if (objectInitializer.Initializer.Initializers[i] is ISimpleAssignmentOperation assignment &&
5656
assignment.Target is IPropertyReferenceOperation propertyReference &&
57-
propertyReference.Arguments.Length != 0)
57+
!propertyReference.Arguments.IsEmpty)
5858
{
5959
var values = GetConstantArgumentValues(propertyReference.Arguments);
6060
if (!values.IsEmpty && !initializedElementIndexes.Add(values))

src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/QualityGuidelines/AvoidPropertySelfAssignment.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public override void Initialize(AnalysisContext analysisContext)
5656
return;
5757
}
5858

59-
if (operationTarget.Arguments.Length > 0)
59+
if (!operationTarget.Arguments.IsEmpty)
6060
{
6161
// Indexers - compare if all the arguments are identical.
6262
for (int i = 0; i < operationTarget.Arguments.Length; i++)

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PInvokeDiagnosticAnalyzer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public void AnalyzeSymbol(SymbolAnalysisContext context)
163163

164164
private UnmanagedType? GetParameterMarshaling(AttributeData attributeData)
165165
{
166-
if (attributeData.ConstructorArguments.Length > 0)
166+
if (!attributeData.ConstructorArguments.IsEmpty)
167167
{
168168
TypedConstant argument = attributeData.ConstructorArguments.First();
169169
if (argument.Type.Equals(_unmanagedType))

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/AvoidZeroLengthArrayAllocations.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public sealed override void Initialize(AnalysisContext context)
5757
if (typeSymbol != null && typeSymbol.DeclaredAccessibility == Accessibility.Public)
5858
{
5959
if (typeSymbol.GetMembers(ArrayEmptyMethodName).FirstOrDefault() is IMethodSymbol methodSymbol && methodSymbol.DeclaredAccessibility == Accessibility.Public &&
60-
methodSymbol.IsStatic && methodSymbol.Arity == 1 && methodSymbol.Parameters.Length == 0)
60+
methodSymbol.IsStatic && methodSymbol.Arity == 1 && methodSymbol.Parameters.IsEmpty)
6161
{
6262
ctx.RegisterOperationAction(AnalyzeOperation, OperationKind.ArrayCreation);
6363
}
@@ -157,7 +157,7 @@ private static bool IsCompilerGeneratedParamsArray(IArrayCreationOperation array
157157
}
158158

159159
var parameters = targetSymbol.GetParameters();
160-
if (parameters.Length == 0 || !parameters[parameters.Length - 1].IsParams)
160+
if (parameters.IsEmpty || !parameters[parameters.Length - 1].IsParams)
161161
{
162162
return false;
163163
}

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/DisposeObjectsBeforeLosingScope.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ private static void ComputeDiagnostics(
219219
}
220220

221221
var isNotDisposed = disposeValue.Kind == DisposeAbstractValueKind.NotDisposed ||
222-
(disposeValue.DisposingOrEscapingOperations.Count > 0 &&
222+
(!disposeValue.DisposingOrEscapingOperations.IsEmpty &&
223223
disposeValue.DisposingOrEscapingOperations.All(d => d.IsInsideCatchRegion(disposeAnalysisResult.ControlFlowGraph) && !location.GetTopOfCreationCallStackOrCreation().IsInsideCatchRegion(disposeAnalysisResult.ControlFlowGraph)));
224224
var isMayBeNotDisposed = !isNotDisposed && (disposeValue.Kind == DisposeAbstractValueKind.MaybeDisposed || disposeValue.Kind == DisposeAbstractValueKind.NotDisposedOrEscaped);
225225

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/DoNotRaiseReservedExceptionTypes.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public override void Initialize(AnalysisContext analysisContext)
8888
ImmutableHashSet<INamedTypeSymbol> tooGenericExceptionSymbols = CreateSymbolSet(compilationStartContext.Compilation, s_tooGenericExceptions);
8989
ImmutableHashSet<INamedTypeSymbol> reservedExceptionSymbols = CreateSymbolSet(compilationStartContext.Compilation, s_reservedExceptions); ;
9090

91-
if (tooGenericExceptionSymbols.Count == 0 && reservedExceptionSymbols.Count == 0)
91+
if (tooGenericExceptionSymbols.IsEmpty && reservedExceptionSymbols.IsEmpty)
9292
{
9393
return;
9494
}

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/InstantiateArgumentExceptionsCorrectly.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ private static void AnalyzeObjectCreation(
7070
return;
7171
}
7272

73-
if (creation.Arguments.Length == 0)
73+
if (creation.Arguments.IsEmpty)
7474
{
7575
if (HasMessageOrParameterNameConstructor(creation.Type))
7676
{

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/SpecifyStringComparison.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public override void Initialize(AnalysisContext analysisContext)
102102
return;
103103
}
104104

105-
if (overloadMap.Count != 0 && overloadMap.ContainsKey(targetMethod))
105+
if (!overloadMap.IsEmpty && overloadMap.ContainsKey(targetMethod))
106106
{
107107
ReportDiagnostic(
108108
oaContext,

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Runtime/TestForEmptyStringsUsingStringLength.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public sealed override void Initialize(AnalysisContext context)
5858
/// </summary>
5959
private static void AnalyzeInvocationExpression(IInvocationOperation invocationOperation, Action<Diagnostic> reportDiagnostic)
6060
{
61-
if (invocationOperation.Arguments.Length > 0)
61+
if (!invocationOperation.Arguments.IsEmpty)
6262
{
6363
IMethodSymbol methodSymbol = invocationOperation.TargetMethod;
6464
if (methodSymbol != null &&

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Security/DoNotCallDangerousMethodsInDeserialization.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public sealed override void Initialize(AnalysisContext context)
206206
// This includes methods with OnDeserializing attribute, method with OnDeserialized attribute, deserialization callbacks as well as cleanup/dispose calls.
207207
var flagSerializable = methodSymbol.ContainingType.HasAttribute(serializableAttributeTypeSymbol);
208208
var parameters = methodSymbol.GetParameters();
209-
var flagHasDeserializeAttributes = attributeTypeSymbols.Length != 0
209+
var flagHasDeserializeAttributes = !attributeTypeSymbols.IsEmpty
210210
&& attributeTypeSymbols.Any(s => methodSymbol.HasAttribute(s))
211211
&& parameters.Length == 1
212212
&& parameters[0].Type.Equals(streamingContextTypeSymbol);

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Security/DoNotDisableHttpClientCRLCheck.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public override void Initialize(AnalysisContext context)
158158

159159
if (objectCreationOperation.Type.GetBaseTypesAndThis().Contains(httpClientTypeSymbol))
160160
{
161-
if (objectCreationOperation.Arguments.Length != 0)
161+
if (!objectCreationOperation.Arguments.IsEmpty)
162162
{
163163
lock (rootOperationsNeedingAnalysis)
164164
{

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Security/DoNotInstallRootCert.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public override void Initialize(AnalysisContext context)
9494
{
9595
var kind = PropertySetAbstractValueKind.Unflagged;
9696

97-
if (constructorMethod.Parameters.Length > 0)
97+
if (!constructorMethod.Parameters.IsEmpty)
9898
{
9999
if (constructorMethod.Parameters[0].Type.Equals(storeNameTypeSymbol))
100100
{

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Security/DoNotUseCreateEncryptorWithNonDefaultIV.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public sealed class DoNotUseCreateEncryptorWithNonDefaultIV : DiagnosticAnalyzer
6363
// The passed rgbIV can't be null cause CreateEncryptor method has an ANE exception.
6464
// It definitely uses a non-default IV and will be flagged a diagnostic directly without PropertySetAnalysis.
6565
// So, it returns Unflagged to avoid repeated diagnostic.
66-
if (methodSymbol.Parameters.Length != 0)
66+
if (!methodSymbol.Parameters.IsEmpty)
6767
{
6868
return HazardousUsageEvaluationResult.Unflagged;
6969
}
@@ -116,7 +116,7 @@ public override void Initialize(AnalysisContext context)
116116
if (methodSymbol.ContainingType.GetBaseTypesAndThis().Contains(symmetricAlgorithmTypeSymbol) &&
117117
methodSymbol.Name == "CreateEncryptor")
118118
{
119-
if (methodSymbol.Parameters.Length == 0)
119+
if (methodSymbol.Parameters.IsEmpty)
120120
{
121121
lock (rootOperationsNeedingAnalysis)
122122
{

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Security/DoNotUseDSA.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public override void Initialize(AnalysisContext context)
132132

133133
if (methodName == "Create" &&
134134
typeSymbol.Equals(asymmetricAlgorithmTypeSymbol) &&
135-
arguments.Length > 0 &&
135+
!arguments.IsEmpty &&
136136
arguments[0].Parameter.Type.SpecialType == SpecialType.System_String &&
137137
arguments[0].Value.ConstantValue.HasValue)
138138
{
@@ -148,7 +148,7 @@ public override void Initialize(AnalysisContext context)
148148
}
149149
else if (methodName == "CreateFromName" &&
150150
typeSymbol.Equals(cryptoConfigTypeSymbol) &&
151-
arguments.Length > 0 &&
151+
!arguments.IsEmpty &&
152152
arguments[0].Parameter.Type.SpecialType == SpecialType.System_String &&
153153
arguments[0].Value.ConstantValue.HasValue)
154154
{

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Security/DoNotUseInsecureDeserializerJavascriptSerializerWithSimpleTypeResolver.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public override void Initialize(AnalysisContext context)
8989
(IMethodSymbol constructorMethod, IReadOnlyList<PointsToAbstractValue> argumentPointsToAbstractValues) =>
9090
{
9191
PropertySetAbstractValueKind kind;
92-
if (constructorMethod.Parameters.Length == 0)
92+
if (constructorMethod.Parameters.IsEmpty)
9393
{
9494
kind = PropertySetAbstractValueKind.Unflagged;
9595
}

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Security/DoNotUseInsecureDeserializerJsonNetWithoutBinder.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ internal class DoNotUseInsecureDeserializerJsonNetWithoutBinder : DiagnosticAnal
6262
private static readonly ConstructorMapper ConstructorMapper = new ConstructorMapper(
6363
(IMethodSymbol constructorMethod, IReadOnlyList<PointsToAbstractValue> argumentPointsToAbstractValues) =>
6464
{
65-
if (constructorMethod.Parameters.Length == 0)
65+
if (constructorMethod.Parameters.IsEmpty)
6666
{
6767
return PropertySetAbstractValue.GetInstance(
6868
PropertySetAbstractValueKind.Unflagged, // TypeNameHandling defaults to None.

src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/Security/DoNotUseInsecureSettingsForJsonNet.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public sealed class DoNotUseInsecureSettingsForJsonNet : DiagnosticAnalyzer
6161
private static readonly ConstructorMapper ConstructorMapper = new ConstructorMapper(
6262
(IMethodSymbol constructorMethod, IReadOnlyList<PointsToAbstractValue> argumentPointsToAbstractValues) =>
6363
{
64-
if (constructorMethod.Parameters.Length == 0)
64+
if (constructorMethod.Parameters.IsEmpty)
6565
{
6666
return PropertySetAbstractValue.GetInstance(
6767
PropertySetAbstractValueKind.Unflagged, // TypeNameHandling defaults to None.

0 commit comments

Comments
 (0)