74 references to ValueUsageInfo
Microsoft.CodeAnalysis.CodeStyle (74)
src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (1)
240
var
valueUsageInfo = fieldReference.GetValueUsageInfo(owningSymbol);
src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (23)
89
protected virtual void HandleNamedTypeSymbolStart(SymbolStartAnalysisContext context, Action<ISymbol,
ValueUsageInfo
> onSymbolUsageFound)
123
private readonly Dictionary<ISymbol,
ValueUsageInfo
> _symbolValueUsageStateMap_doNotAccessDirectly = new(OriginalDefinitionSymbolEqualityComparer.Instance);
230
Action<ISymbol,
ValueUsageInfo
> onSymbolUsageFound = OnSymbolUsage;
311
AddSymbolUsage(symbol,
ValueUsageInfo
.None);
315
private void AddSymbolUsage(ISymbol? symbol,
ValueUsageInfo
info)
326
private void UpdateSymbolUsage(ISymbol? symbol,
ValueUsageInfo
info)
333
if (_symbolValueUsageStateMap_doNotAccessDirectly.TryGetValue(symbol, out
var
currentUsageInfo))
340
private bool TryGetAndRemoveSymbolUsage(ISymbol memberSymbol, out
ValueUsageInfo
valueUsageInfo)
359
OnSymbolUsage(method,
ValueUsageInfo
.Read);
375
OnSymbolUsage(field,
ValueUsageInfo
.Write);
380
private void OnSymbolUsage(ISymbol? memberSymbol,
ValueUsageInfo
usageInfo)
395
var
valueUsageInfo = memberReference.GetValueUsageInfo(operationContext.ContainingSymbol);
397
if (valueUsageInfo ==
ValueUsageInfo
.ReadWrite)
426
valueUsageInfo =
ValueUsageInfo
.Write;
452
OnSymbolUsage(symbols.CurrentProperty,
ValueUsageInfo
.Read);
453
OnSymbolUsage(symbols.GetEnumeratorMethod,
ValueUsageInfo
.Read);
454
OnSymbolUsage(symbols.MoveNextMethod,
ValueUsageInfo
.Read);
463
OnSymbolUsage(targetMethod,
ValueUsageInfo
.Read);
468
OnSymbolUsage(targetMethod.ReducedFrom,
ValueUsageInfo
.Read);
482
OnSymbolUsage(memberReference.Member,
ValueUsageInfo
.ReadWrite);
491
OnSymbolUsage(symbol,
ValueUsageInfo
.ReadWrite);
500
OnSymbolUsage(constructor,
ValueUsageInfo
.Read);
537
if (TryGetAndRemoveSymbolUsage(member, out
var
valueUsageInfo) && !valueUsageInfo.IsReadFrom())
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (32)
24
/// Returns the <see cref="
ValueUsageInfo
"/> for the given operation.
27
public static
ValueUsageInfo
GetValueUsageInfo(this IOperation operation, ISymbol containingSymbol)
55
return
ValueUsageInfo
.Write;
72
return
ValueUsageInfo
.Write;
83
return
ValueUsageInfo
.Write;
93
return
ValueUsageInfo
.Write;
101
return
ValueUsageInfo
.Write;
109
return
ValueUsageInfo
.Write;
115
return
ValueUsageInfo
.ReadWrite;
120
return
ValueUsageInfo
.Write;
127
?
ValueUsageInfo
.ReadWrite
128
:
ValueUsageInfo
.Write;
133
return
ValueUsageInfo
.ReadableWritableReference;
137
return
ValueUsageInfo
.ReadWrite;
141
return
ValueUsageInfo
.ReadWrite;
149
~(
ValueUsageInfo
.Write |
ValueUsageInfo
.Reference);
153
return
ValueUsageInfo
.Name;
160
return
ValueUsageInfo
.ReadableReference;
163
return
ValueUsageInfo
.WritableReference;
166
return
ValueUsageInfo
.ReadableWritableReference;
169
return
ValueUsageInfo
.Read;
176
RefKind.RefReadOnly =>
ValueUsageInfo
.ReadableReference,
177
RefKind.Ref =>
ValueUsageInfo
.ReadableWritableReference,
178
_ =>
ValueUsageInfo
.Read,
190
return
ValueUsageInfo
.Read;
197
?
ValueUsageInfo
.ReadWrite
198
:
ValueUsageInfo
.Write;
206
return
ValueUsageInfo
.Write;
221
return
ValueUsageInfo
.ReadableWritableReference;
224
return
ValueUsageInfo
.ReadableReference;
229
return
ValueUsageInfo
.Read;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\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)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\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;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\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);
275
OnWriteReferenceFound(operation.Symbol, operation,
ValueUsageInfo
.Write);