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)
165foreach (IArgumentOperation argumentOperation in operation.Arguments)
178foreach (IArgumentOperation argumentOperation in operation.Arguments)
457public override PropertySetAbstractValue VisitInvocation_NonLambdaOrDelegateOrLocalFunction(IMethodSymbol method, IOperation? visitedInstance, ImmutableArray<IArgumentOperation> visitedArguments, bool invokedAsDelegate, IOperation originalOperation, PropertySetAbstractValue defaultValue)
464foreach (IArgumentOperation visitedArgument in visitedArguments)
515ImmutableArray<IArgumentOperation> visitedArguments,
531foreach (IArgumentOperation argumentOperation in visitedArguments)
636public override PropertySetAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, PropertySetAbstractValue defaultValue)
644public 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,
559IEnumerable<IArgumentOperation> taintedArguments,
567foreach (IArgumentOperation taintedArgument in taintedArguments)
630ImmutableArray<IArgumentOperation> arguments,
682private static bool IsMethodArgumentASink(IMethodSymbol method, IEnumerable<SinkInfo> infosForType, IArgumentOperation taintedArgument, [NotNullWhen(returnValue: true)] out HashSet<SinkKind>? sinkKinds)
752private 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:
2204ImmutableArray<IArgumentOperation> arguments,
2402foreach (var argument in arguments)
2521foreach (var argument in arguments)
2552IParameterSymbol GetMappedParameterForArgument(IArgumentOperation argumentOperation)
2785foreach (IArgumentOperation argumentOperation in pendingArguments)
3074public sealed override TAbstractAnalysisValue VisitArgument(IArgumentOperation operation, object? argument)
3099protected virtual void PostProcessArgument(IArgumentOperation operation, bool isEscaped)
3106/// This method resets the analysis data for an object instance passed around as an <see cref="IArgumentOperation"/>
3109private void PostProcessEscapedArgument(IArgumentOperation operation)
3229void PostVisitInvocation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments)
3254void ProcessInterlockedOperation(IMethodSymbol targetMethod, ImmutableArray<IArgumentOperation> arguments, INamedTypeSymbol interlockedType)
3269foreach (var argument in arguments)
3538ImmutableArray<IArgumentOperation> visitedArguments,
3580ImmutableArray<IArgumentOperation> visitedArguments,
3598ImmutableArray<IArgumentOperation> visitedArguments,