2 instantiations of SymbolAccess
Microsoft.CodeAnalysis.AnalyzerUtilities (2)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAbstractValue.cs (1)
63
new
SymbolAccess
(
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (1)
536
SymbolAccess sink = new
SymbolAccess
(sinkSymbol, sinkLocation, this.OwningSymbol);
31 references to SymbolAccess
Microsoft.CodeAnalysis.AnalyzerUtilities (31)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\SymbolAccess.cs (4)
15
internal sealed class SymbolAccess : CacheBasedEquatable<
SymbolAccess
>
58
protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable<
SymbolAccess
> obj)
60
var
other = (
SymbolAccess
)obj;
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAbstractValue.cs (5)
20
public static readonly TaintedDataAbstractValue NotTainted = new(TaintedDataAbstractValueKind.NotTainted, ImmutableHashSet<
SymbolAccess
>.Empty);
22
private TaintedDataAbstractValue(TaintedDataAbstractValueKind kind, ImmutableHashSet<
SymbolAccess
> sourceOrigins)
36
public ImmutableHashSet<
SymbolAccess
> SourceOrigins { get; }
62
ImmutableHashSet.Create<
SymbolAccess
>(
92
var sourceOriginsBuilder = PooledHashSet<
SymbolAccess
>.GetInstance();
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataAbstractValueDomain.cs (1)
28
return SetAbstractDomain<
SymbolAccess
>.Default.Compare(oldValue.SourceOrigins, newValue.SourceOrigins);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (15)
34
/// <remarks>Keys are <see cref="
SymbolAccess
"/> sinks where the tainted data entered, values are <see cref="
SymbolAccess
"/>s where the tainted data originated from.</remarks>
35
private Dictionary<
SymbolAccess
, (ImmutableHashSet<SinkKind>.Builder SinkKinds, ImmutableHashSet<
SymbolAccess
>.Builder SourceOrigins)> TaintedSourcesBySink { get; }
47
foreach (KeyValuePair<
SymbolAccess
, (ImmutableHashSet<SinkKind>.Builder SinkKinds, ImmutableHashSet<
SymbolAccess
>.Builder SourceOrigins)> kvp in this.TaintedSourcesBySink)
482
HashSet<
SymbolAccess
>? sourceOrigins = null;
534
IEnumerable<
SymbolAccess
> sources)
536
SymbolAccess
sink = new SymbolAccess(sinkSymbol, sinkLocation, this.OwningSymbol);
540
private void TrackTaintedDataEnteringSink(
SymbolAccess
sink, IEnumerable<SinkKind> sinkKinds, IEnumerable<
SymbolAccess
> sources)
542
if (!this.TaintedSourcesBySink.TryGetValue(sink, out (ImmutableHashSet<SinkKind>.Builder SinkKinds, ImmutableHashSet<
SymbolAccess
>.Builder SourceOrigins) data))
544
data = (ImmutableHashSet.CreateBuilder<SinkKind>(), ImmutableHashSet.CreateBuilder<
SymbolAccess
>());
586
out (ImmutableHashSet<SinkKind>.Builder SinkKinds, ImmutableHashSet<
SymbolAccess
>.Builder SourceOrigins) data))
588
data = (ImmutableHashSet.CreateBuilder<SinkKind>(), ImmutableHashSet.CreateBuilder<
SymbolAccess
>());
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataSourceSink.cs (6)
15
public TaintedDataSourceSink(
SymbolAccess
sink, ImmutableHashSet<SinkKind> sinkKinds, ImmutableHashSet<
SymbolAccess
> sourceOrigins)
23
/// <see cref="
SymbolAccess
"/> of the sink that the tainted data enters.
25
public
SymbolAccess
Sink { get; }
33
/// <see cref="
SymbolAccess
"/>s of the origins of the tainted data.
35
public ImmutableHashSet<
SymbolAccess
> SourceOrigins { get; }