70 references to ValueUsageInfo
Microsoft.CodeAnalysis.CodeStyle (66)
AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (1)
208
var
valueUsageInfo = fieldReference.GetValueUsageInfo(owningSymbol);
AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (17)
71
protected virtual void HandleNamedTypeSymbolStart(SymbolStartAnalysisContext context, Action<ISymbol,
ValueUsageInfo
> onSymbolUsageFound)
81
private readonly Dictionary<ISymbol,
ValueUsageInfo
> _symbolValueUsageStateMap = new();
178
Action<ISymbol,
ValueUsageInfo
> onSymbolUsageFound = OnSymbolUsage;
218
_symbolValueUsageStateMap.Add(symbol,
ValueUsageInfo
.None);
237
OnSymbolUsage(field,
ValueUsageInfo
.Write);
242
private void OnSymbolUsage(ISymbol memberSymbol,
ValueUsageInfo
usageInfo)
252
if (_symbolValueUsageStateMap.TryGetValue(memberSymbol, out
var
currentUsageInfo))
261
private bool TryRemove(ISymbol memberSymbol, out
ValueUsageInfo
valueUsageInfo)
282
var
valueUsageInfo = memberReference.GetValueUsageInfo(operationContext.ContainingSymbol);
284
if (valueUsageInfo ==
ValueUsageInfo
.ReadWrite)
310
valueUsageInfo =
ValueUsageInfo
.Write;
335
OnSymbolUsage(targetMethod,
ValueUsageInfo
.Read);
341
OnSymbolUsage(targetMethod.ReducedFrom,
ValueUsageInfo
.Read);
356
OnSymbolUsage(memberReference.Member.OriginalDefinition,
ValueUsageInfo
.ReadWrite);
372
OnSymbolUsage(symbol.OriginalDefinition,
ValueUsageInfo
.ReadWrite);
384
OnSymbolUsage(constructor,
ValueUsageInfo
.Read);
419
if (TryRemove(member, out
var
valueUsageInfo) &&
OperationExtensions.cs (30)
24
/// Returns the <see cref="
ValueUsageInfo
"/> for the given operation.
27
public static
ValueUsageInfo
GetValueUsageInfo(this IOperation operation, ISymbol containingSymbol)
54
return
ValueUsageInfo
.Write;
75
return
ValueUsageInfo
.Write;
86
return
ValueUsageInfo
.Write;
96
return
ValueUsageInfo
.Write;
104
return
ValueUsageInfo
.Write;
112
return
ValueUsageInfo
.Write;
118
return
ValueUsageInfo
.ReadWrite;
126
?
ValueUsageInfo
.ReadWrite
127
:
ValueUsageInfo
.Write;
133
return
ValueUsageInfo
.ReadableWritableReference;
137
return
ValueUsageInfo
.ReadWrite;
145
~(
ValueUsageInfo
.Write |
ValueUsageInfo
.Reference);
151
return
ValueUsageInfo
.Name;
158
return
ValueUsageInfo
.ReadableReference;
161
return
ValueUsageInfo
.WritableReference;
164
return
ValueUsageInfo
.ReadableWritableReference;
167
return
ValueUsageInfo
.Read;
174
RefKind.RefReadOnly =>
ValueUsageInfo
.ReadableReference,
175
RefKind.Ref =>
ValueUsageInfo
.ReadableWritableReference,
176
_ =>
ValueUsageInfo
.Read,
188
return
ValueUsageInfo
.Read;
195
?
ValueUsageInfo
.ReadWrite
196
:
ValueUsageInfo
.Write;
204
return
ValueUsageInfo
.Write;
213
return
ValueUsageInfo
.ReadableWritableReference;
216
return
ValueUsageInfo
.ReadableReference;
221
return
ValueUsageInfo
.Read;
SymbolUsageAnalysis.Walker.cs (5)
94
private void OnWriteReferenceFound(ISymbol symbol, IOperation operation,
ValueUsageInfo
valueUsageInfo)
97
var isRef = valueUsageInfo ==
ValueUsageInfo
.ReadableWritableReference;
112
var
valueUsageInfo = operation.GetValueUsageInfo(_currentContainingSymbol);
199
OnWriteReferenceFound(symbolOpt, write,
ValueUsageInfo
.Write);
267
OnWriteReferenceFound(operation.Symbol, operation,
ValueUsageInfo
.Write);
SymbolUsageInfo.cs (5)
15
/// For methods, fields, properties, events, locals and parameters, this corresponds to values from <see cref="
ValueUsageInfo
"/>.
20
public static readonly SymbolUsageInfo None = Create(
ValueUsageInfo
.None);
23
public
ValueUsageInfo
? ValueUsageInfoOpt { get; }
29
public SymbolUsageInfo(
ValueUsageInfo
? valueUsageInfoOpt, TypeOrNamespaceUsageInfo? typeOrNamespaceUsageInfoOpt)
37
public static SymbolUsageInfo Create(
ValueUsageInfo
valueUsageInfo)
ValueUsageInfo.cs (8)
69
public static bool IsReadFrom(this
ValueUsageInfo
valueUsageInfo)
70
=> (valueUsageInfo &
ValueUsageInfo
.Read) != 0;
72
public static bool IsWrittenTo(this
ValueUsageInfo
valueUsageInfo)
73
=> (valueUsageInfo &
ValueUsageInfo
.Write) != 0;
75
public static bool IsNameOnly(this
ValueUsageInfo
valueUsageInfo)
76
=> (valueUsageInfo &
ValueUsageInfo
.Name) != 0;
78
public static bool IsReference(this
ValueUsageInfo
valueUsageInfo)
79
=> (valueUsageInfo &
ValueUsageInfo
.Reference) != 0;
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (4)
VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (4)
14
Protected Overrides Sub HandleNamedTypeSymbolStart(context As SymbolStartAnalysisContext, onSymbolUsageFound As Action(Of ISymbol,
ValueUsageInfo
))
21
onSymbolUsageFound(method,
ValueUsageInfo
.Read)
37
Private Shared Sub AnalyzeHandlesClause(context As SyntaxNodeAnalysisContext, onSymbolUsageFound As Action(Of ISymbol,
ValueUsageInfo
))
42
onSymbolUsageFound(symbol,
ValueUsageInfo
.Read)