Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.OperationVisitor.cs (5)
43internal bool TryParseGuardAttributes(ISymbol symbol, ref GlobalFlowStateAnalysisValueSet value, ImmutableArray<IArgumentOperation> visitedArguments)
77private static bool HasAnyGuardAttribute(ImmutableArray<AttributeData> attributes, ImmutableArray<IArgumentOperation> methodArguments, [NotNullWhen(true)] out SmallDictionary<string, Versions>? mappedAttributes)
181ImmutableArray<IArgumentOperation> visitedArguments,
266if (TryParseGuardAttributes(operation.Field, ref value, ImmutableArray<IArgumentOperation>.Empty))
278if (TryParseGuardAttributes(operation.Property, ref value, ImmutableArray<IArgumentOperation>.Empty))
Microsoft.NetCore.Analyzers\Performance\ConstantExpectedAnalyzer.cs (8)
180foreach (var argument in invocation.Arguments)
474public abstract bool ValidateValue(IArgumentOperation argument, Optional<object?> constant, [NotNullWhen(false)] out Diagnostic? validationDiagnostics);
476public static bool ValidateConstant(IArgumentOperation argument, Optional<object?> constant, [NotNullWhen(false)] out Diagnostic? validationDiagnostics)
488public abstract bool ValidateParameterIsWithinRange(ConstantExpectedParameter subsetCandidate, IArgumentOperation argument, [NotNullWhen(false)] out Diagnostic? validationDiagnostics);
489protected Diagnostic CreateConstantInvalidConstantRuleDiagnostic(IArgumentOperation argument) => argument.CreateDiagnostic(CA1857.ConstantInvalidConstantRule, Parameter.Type.ToDisplayString());
490protected static Diagnostic CreateConstantOutOfBoundsRuleDiagnostic(IArgumentOperation argument, string minText, string maxText) => argument.CreateDiagnostic(CA1857.ConstantOutOfBoundsRule, minText, maxText);
497public override bool ValidateParameterIsWithinRange(ConstantExpectedParameter subsetCandidate, IArgumentOperation argument, [NotNullWhen(false)] out Diagnostic? validationDiagnostics)
509public override bool ValidateValue(IArgumentOperation argument, Optional<object?> constant, [NotNullWhen(false)] out Diagnostic? validationDiagnostics)
src\11b41c7305441175\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (8)
161foreach (IArgumentOperation argumentOperation in operation.Arguments)
174foreach (IArgumentOperation argumentOperation in operation.Arguments)
453public override PropertySetAbstractValue VisitInvocation_NonLambdaOrDelegateOrLocalFunction(IMethodSymbol method, IOperation? visitedInstance, ImmutableArray<IArgumentOperation> visitedArguments, bool invokedAsDelegate, IOperation originalOperation, PropertySetAbstractValue defaultValue)
460foreach (IArgumentOperation visitedArgument in visitedArguments)
511ImmutableArray<IArgumentOperation> visitedArguments,
527foreach (IArgumentOperation argumentOperation in visitedArguments)
632public override PropertySetAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, PropertySetAbstractValue defaultValue)
640public override PropertySetAbstractValue VisitInvocation_Lambda(IFlowAnonymousFunctionOperation lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, PropertySetAbstractValue defaultValue)
src\40daf5e1cab76dff\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (16)
250IEnumerable<IArgumentOperation> taintedArguments = GetTaintedArguments(operation.Arguments);
262ImmutableArray<IArgumentOperation> visitedArguments,
276IEnumerable<IArgumentOperation> taintedArguments = GetTaintedArguments(visitedArguments);
318IArgumentOperation? argumentOperation = visitedArguments.FirstOrDefault(o => o.Parameter?.Name == taintedTarget);
397IArgumentOperation? thenSanitizedTargetOperation = visitedArguments.FirstOrDefault(o => o.Parameter?.Name == thenSanitizedTarget);
421public override TaintedDataAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, TaintedDataAbstractValue defaultValue)
426IEnumerable<IArgumentOperation> taintedArguments = GetTaintedArguments(visitedArguments);
435public override TaintedDataAbstractValue VisitInvocation_Lambda(IFlowAnonymousFunctionOperation lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, TaintedDataAbstractValue defaultValue)
440IEnumerable<IArgumentOperation> taintedArguments = GetTaintedArguments(visitedArguments);
458IArgumentOperation operation,
558IEnumerable<IArgumentOperation> taintedArguments,
566foreach (IArgumentOperation taintedArgument in taintedArguments)
629ImmutableArray<IArgumentOperation> arguments,
681private static bool IsMethodArgumentASink(IMethodSymbol method, IEnumerable<SinkInfo> infosForType, IArgumentOperation taintedArgument, [NotNullWhen(returnValue: true)] out HashSet<SinkKind>? sinkKinds)
751private IEnumerable<IArgumentOperation> GetTaintedArguments(ImmutableArray<IArgumentOperation> arguments)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (23)
46private readonly HashSet<IArgumentOperation> _pendingArgumentsToReset;
47private readonly List<IArgumentOperation> _pendingArgumentsToPostProcess;
274_pendingArgumentsToReset = new HashSet<IArgumentOperation>();
275_pendingArgumentsToPostProcess = new List<IArgumentOperation>();
974private bool IsContractCheckArgument(IArgumentOperation operation)
1213protected virtual TAbstractAnalysisValue ComputeAnalysisValueForEscapedRefOrOutArgument(IArgumentOperation operation, TAbstractAnalysisValue defaultValue)
1488Debug.Assert(IsContractCheckArgument((IArgumentOperation)operation));
1666case IArgumentOperation argument:
2202ImmutableArray<IArgumentOperation> arguments,
2399foreach (var argument in arguments)
2516foreach (var argument in arguments)
2547IParameterSymbol GetMappedParameterForArgument(IArgumentOperation argumentOperation)
2780foreach (IArgumentOperation argumentOperation in pendingArguments)
3069public sealed override TAbstractAnalysisValue VisitArgument(IArgumentOperation operation, object? argument)
3094protected virtual void PostProcessArgument(IArgumentOperation operation, bool isEscaped)
3101/// This method resets the analysis data for an object instance passed around as an <see cref="IArgumentOperation"/>
3104private void PostProcessEscapedArgument(IArgumentOperation operation)
3224void PostVisitInvocation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments)
3249void ProcessInterlockedOperation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments, INamedTypeSymbol interlockedType)
3264foreach (var argument in arguments)
3533ImmutableArray<IArgumentOperation> visitedArguments,
3575ImmutableArray<IArgumentOperation> visitedArguments,
3593ImmutableArray<IArgumentOperation> visitedArguments,