2 implementations of ILocalSymbol
Microsoft.CodeAnalysis.CSharp (1)
Symbols\PublicModel\LocalSymbol.cs (1)
12internal sealed class LocalSymbol : Symbol, ILocalSymbol
Microsoft.CodeAnalysis.VisualBasic (1)
Symbols\Source\LocalSymbol.vb (1)
19Implements ILocalSymbol, ILocalSymbolInternal
643 references to ILocalSymbol
GenerateDocumentationAndConfigFiles (29)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (2)
220SymbolKind.Local => ((ILocalSymbol)symbol).Type, 365ILocalSymbol local => local.IsConst,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.cs (1)
179foreach (var local in region.Locals)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (5)
75ImmutableHashSet<ILocalSymbol> capturedLocals, 114public ImmutableHashSet<ILocalSymbol> CapturedLocals { get; } 202private static ImmutableHashSet<ILocalSymbol> GetCapturedLocals(ControlFlowGraph cfg) 204using var _ = PooledHashSet<ILocalSymbol>.GetInstance(out var builder); 210builder.AddRange(dataFlow.Captured.OfType<ILocalSymbol>());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (1)
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
75/// Interior-method-level symbols (i.e. <see cref="ILabelSymbol"/>, <see cref="ILocalSymbol"/>, <see 322ILocalSymbol => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (1)
356public override void VisitLocal(ILocalSymbol localSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (3)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 455if (symbol is ILocalSymbol localSymbol && newSymbol is ILocalSymbol newLocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (3)
347ILocalSymbol localSymbol => localSymbol.Type, 404=> symbol is ILocalSymbol { IsFunctionValue: true }; 660ILocalSymbol localSymbol => localSymbol.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (4)
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y), 167private static bool LocalsAreEquivalent(ILocalSymbol x, ILocalSymbol y)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash), 106private static int CombineHashCodes(ILocalSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.cs (3)
32protected abstract bool CanMoveToBlock(ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock); 36protected abstract Task<bool> TypesAreCompatibleAsync(Document document, ILocalSymbol localSymbol, TLocalDeclarationStatementSyntax declarationStatement, SyntaxNode right, CancellationToken cancellationToken); 221var localSymbol = state.LocalSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.State.cs (2)
29public ILocalSymbol LocalSymbol { get; private set; } 83LocalSymbol = (ILocalSymbol)semanticModel.GetDeclaredSymbol(
ILLink.RoslynAnalyzer (6)
DataFlow\LocalDataFlowVisitor.cs (4)
202private bool IsCapturedVariable(ILocalSymbol local) 211private TValue GetLocal(ILocalSymbol symbol, LocalDataFlowState<TValue, TContext, TValueLattice, TContextLattice> state) 224private void SetLocal(ILocalSymbol localSymbol, TValue value, LocalDataFlowState<TValue, TContext, TValueLattice, TContextLattice> state, bool merge = false) 374if (declPattern.DeclaredSymbol is not ILocalSymbol declaredSymbol)
DataFlow\LocalStateLattice.cs (2)
13private readonly ILocalSymbol? Local; 17public LocalKey(ILocalSymbol symbol) => (Local, CaptureId) = (symbol, null);
Microsoft.Analyzers.Extra (7)
AsyncCallInsideUsingBlockAnalyzer.cs (7)
47var disposable = GetDisposableSymbol(operation.DeclarationGroup); 67var disposable = GetDisposableSymbol(declarationGroup); 72ILocalSymbol disposable, 145private static ILocalSymbol GetDisposableSymbol(IVariableDeclarationGroupOperation declarationGroup) 153private static bool IsTaskAwaited(IOperation block, ILocalSymbol taskSymbol) 182private static bool ReferencesSymbol(IOperation? operation, ILocalSymbol symbol) 207private static bool SymbolInArguments(IInvocationOperation invocation, ILocalSymbol symbol)
Microsoft.AspNetCore.App.CodeFixes (2)
Dependencies\AddPackageFixer.cs (1)
71ILocalSymbol localSymbol => localSymbol.Type,
Dependencies\ExtensionMethodsCompletionProvider.cs (1)
68ILocalSymbol localSymbol => localSymbol.Type,
Microsoft.CodeAnalysis (86)
Generated\FlowAnalysis.Generated.cs (1)
118ILocalSymbol Local { get; }
Generated\Operations.Generated.cs (53)
66ImmutableArray<ILocalSymbol> Locals { get; } 123ImmutableArray<ILocalSymbol> Locals { get; } 164ImmutableArray<ILocalSymbol> Locals { get; } 233ImmutableArray<ILocalSymbol> ConditionLocals { get; } 523ImmutableArray<ILocalSymbol> Locals { get; } 851ILocalSymbol Local { get; } 2323ImmutableArray<ILocalSymbol> Locals { get; } 2477ILocalSymbol Symbol { get; } 2616ImmutableArray<ILocalSymbol> Locals { get; } 2657ImmutableArray<ILocalSymbol> Locals { get; } 3054ImmutableArray<ILocalSymbol> Locals { get; } 3321ImmutableArray<ILocalSymbol> Locals { get; } 3371ImmutableArray<ILocalSymbol> Locals { get; } 4041internal BlockOperation(ImmutableArray<IOperation> operations, ImmutableArray<ILocalSymbol> locals, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4048public ImmutableArray<ILocalSymbol> Locals { get; } 4153internal SwitchOperation(ImmutableArray<ILocalSymbol> locals, IOperation value, ImmutableArray<ISwitchCaseOperation> cases, ILabelSymbol exitLabel, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4161public ImmutableArray<ILocalSymbol> Locals { get; } 4223protected BaseLoopOperation(IOperation body, ImmutableArray<ILocalSymbol> locals, ILabelSymbol continueLabel, ILabelSymbol exitLabel, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4233public ImmutableArray<ILocalSymbol> Locals { get; } 4239internal ForEachLoopOperation(IOperation loopControlVariable, IOperation collection, ImmutableArray<IOperation> nextVariables, ForEachLoopOperationInfo? info, bool isAsynchronous, IOperation body, ImmutableArray<ILocalSymbol> locals, ILabelSymbol continueLabel, ILabelSymbol exitLabel, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4329internal ForLoopOperation(ImmutableArray<IOperation> before, ImmutableArray<ILocalSymbol> conditionLocals, IOperation? condition, ImmutableArray<IOperation> atLoopBottom, IOperation body, ImmutableArray<ILocalSymbol> locals, ILabelSymbol continueLabel, ILabelSymbol exitLabel, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4338public ImmutableArray<ILocalSymbol> ConditionLocals { get; } 4421internal ForToLoopOperation(IOperation loopControlVariable, IOperation initialValue, IOperation limitValue, IOperation stepValue, bool isChecked, ImmutableArray<IOperation> nextVariables, (ILocalSymbol LoopObject, ForToLoopOperationUserDefinedInfo UserDefinedInfo) info, IOperation body, ImmutableArray<ILocalSymbol> locals, ILabelSymbol continueLabel, ILabelSymbol exitLabel, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4438public (ILocalSymbol LoopObject, ForToLoopOperationUserDefinedInfo UserDefinedInfo) Info { get; } 4533internal WhileLoopOperation(IOperation? condition, bool conditionIsTop, bool conditionIsUntil, IOperation? ignoredCondition, IOperation body, ImmutableArray<ILocalSymbol> locals, ILabelSymbol continueLabel, ILabelSymbol exitLabel, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4696internal LockOperation(IOperation lockedValue, IOperation body, ILocalSymbol? lockTakenSymbol, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4705public ILocalSymbol? LockTakenSymbol { get; } 4839internal UsingOperation(IOperation resources, IOperation body, ImmutableArray<ILocalSymbol> locals, bool isAsynchronous, DisposeOperationInfo disposeInfo, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 4850public ImmutableArray<ILocalSymbol> Locals { get; } 5334internal LocalReferenceOperation(ILocalSymbol local, bool isDeclaration, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, ConstantValue? constantValue, bool isImplicit) 5342public ILocalSymbol Local { get; } 7539protected BaseSymbolInitializerOperation(ImmutableArray<ILocalSymbol> locals, IOperation value, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 7545public ImmutableArray<ILocalSymbol> Locals { get; } 7550internal FieldInitializerOperation(ImmutableArray<IFieldSymbol> initializedFields, ImmutableArray<ILocalSymbol> locals, IOperation value, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 7601internal VariableInitializerOperation(ImmutableArray<ILocalSymbol> locals, IOperation value, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 7648internal PropertyInitializerOperation(ImmutableArray<IPropertySymbol> initializedProperties, ImmutableArray<ILocalSymbol> locals, IOperation value, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 7699internal ParameterInitializerOperation(IParameterSymbol parameter, ImmutableArray<ILocalSymbol> locals, IOperation value, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 7805internal VariableDeclaratorOperation(ILocalSymbol symbol, IVariableInitializerOperation? initializer, ImmutableArray<IOperation> ignoredArguments, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 7812public ILocalSymbol Symbol { get; } 8015internal CatchClauseOperation(IOperation? exceptionDeclarationOrExpression, ITypeSymbol exceptionType, ImmutableArray<ILocalSymbol> locals, IOperation? filter, IBlockOperation handler, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8026public ImmutableArray<ILocalSymbol> Locals { get; } 8092internal SwitchCaseOperation(ImmutableArray<ICaseClauseOperation> clauses, ImmutableArray<IOperation> body, ImmutableArray<ILocalSymbol> locals, IOperation? condition, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8102public ImmutableArray<ILocalSymbol> Locals { get; } 8764internal ConstructorBodyOperation(ImmutableArray<ILocalSymbol> locals, IOperation? initializer, IBlockOperation? blockBody, IBlockOperation? expressionBody, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8770public ImmutableArray<ILocalSymbol> Locals { get; } 8999internal StaticLocalInitializationSemaphoreOperation(ILocalSymbol local, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 9005public ILocalSymbol Local { get; } 9426internal SwitchExpressionArmOperation(IPatternOperation pattern, IOperation? guard, IOperation value, ImmutableArray<ILocalSymbol> locals, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9437public ImmutableArray<ILocalSymbol> Locals { get; } 9626internal FixedOperation(ImmutableArray<ILocalSymbol> locals, IVariableDeclarationGroupOperation variables, IOperation body, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9633public ImmutableArray<ILocalSymbol> Locals { get; }
Operations\ControlFlowGraphBuilder.cs (15)
3803ILocalSymbol local = ((IVariableDeclaratorOperation)exceptionDeclarationOrExpression).Symbol; 3965private void HandleUsingOperationParts(IOperation resources, IOperation body, IMethodSymbol? disposeMethod, ImmutableArray<IArgumentOperation> disposeArguments, ImmutableArray<ILocalSymbol> locals, bool isAsynchronous, 4029ILocalSymbol localSymbol = declarator.Symbol; 4243locals: ImmutableArray<ILocalSymbol>.Empty, 4322ImmutableArray<ILocalSymbol>.Empty); 4487ILocalSymbol local = declarator.Symbol; 4671ILocalSymbol local = declarator.Symbol; 4744(ILocalSymbol loopObject, ForToLoopOperationUserDefinedInfo userDefinedInfo) = ((ForToLoopOperation)operation).Info; 4746ImmutableArray<ILocalSymbol> locals = operation.Locals; 5440ILocalSymbol local = declarator.Symbol; 5480ImmutableArray<ILocalSymbol> locals = getLocals(); 5504ImmutableArray<ILocalSymbol> getLocals() 5506ImmutableArray<ILocalSymbol> l = operation.Locals; 5835ILocalSymbol localSymbol = declarator.Symbol; 7884locals: ImmutableArray<ILocalSymbol>.Empty,
Operations\ControlFlowGraphBuilder.RegionBuilder.cs (2)
23public ImmutableArray<ILocalSymbol> Locals; 31public RegionBuilder(ControlFlowRegionKind kind, ITypeSymbol? exceptionType = null, ImmutableArray<ILocalSymbol> locals = default, bool isStackSpillRegion = false)
Operations\ControlFlowRegion.cs (2)
51public ImmutableArray<ILocalSymbol> Locals { get; } 65ImmutableArray<ILocalSymbol> locals,
Operations\OperationExtensions.cs (5)
133public static ImmutableArray<ILocalSymbol> GetDeclaredVariables(this IVariableDeclarationGroupOperation declarationGroup) 140var arrayBuilder = ArrayBuilder<ILocalSymbol>.GetInstance(); 153public static ImmutableArray<ILocalSymbol> GetDeclaredVariables(this IVariableDeclarationOperation declaration) 160var arrayBuilder = ArrayBuilder<ILocalSymbol>.GetInstance(); 165private static void GetDeclaredVariables(this IVariableDeclarationOperation declaration, ArrayBuilder<ILocalSymbol> arrayBuilder)
Operations\OperationNodes.cs (2)
675public StaticLocalInitializationSemaphoreOperation(ILocalSymbol local, SyntaxNode syntax, ITypeSymbol type) : 701Locals = ImmutableArray<ILocalSymbol>.Empty;
SymbolDisplay\AbstractSymbolDisplayVisitor_Minimal.cs (2)
99var localSymbol = symbol as ILocalSymbol;
Symbols\ILabelSymbol.cs (1)
19/// Gets the immediately containing <see cref="IMethodSymbol"/> of this <see cref="ILocalSymbol"/>.
Symbols\SymbolVisitor.cs (1)
58public virtual void VisitLocal(ILocalSymbol symbol)
Symbols\SymbolVisitor`1.cs (1)
61public virtual TResult? VisitLocal(ILocalSymbol symbol)
Symbols\SymbolVisitor`2.cs (1)
66public virtual TResult VisitLocal(ILocalSymbol symbol, TArgument argument)
Microsoft.CodeAnalysis.Analyzers (36)
MetaAnalyzers\DiagnosticDescriptorCreationAnalyzer.cs (6)
334var localsToDescriptorsMap = PooledConcurrentDictionary<ILocalSymbol, PooledConcurrentSet<IFieldSymbol>>.GetInstance(SymbolEqualityComparer.Default); 335var localsUsedForCompilationEndReportDiagnostic = PooledConcurrentSet<ILocalSymbol>.GetInstance(SymbolEqualityComparer.Default); 374foreach (var local in variableDeclaration.GetDeclaredVariables()) 395static void AddToLocalsToDescriptorsMap(ILocalSymbol local, IFieldSymbol field, PooledConcurrentDictionary<ILocalSymbol, PooledConcurrentSet<IFieldSymbol>> localsToDescriptorsMap) 415foreach (var local in localsUsedForCompilationEndReportDiagnostic)
MetaAnalyzers\ReportDiagnosticAnalyzer.cs (1)
221if (argSymbol is ILocalSymbol local)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (2)
220SymbolKind.Local => ((ILocalSymbol)symbol).Type, 365ILocalSymbol local => local.IsConst,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.cs (1)
179foreach (var local in region.Locals)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (5)
75ImmutableHashSet<ILocalSymbol> capturedLocals, 114public ImmutableHashSet<ILocalSymbol> CapturedLocals { get; } 202private static ImmutableHashSet<ILocalSymbol> GetCapturedLocals(ControlFlowGraph cfg) 204using var _ = PooledHashSet<ILocalSymbol>.GetInstance(out var builder); 210builder.AddRange(dataFlow.Captured.OfType<ILocalSymbol>());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (1)
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
75/// Interior-method-level symbols (i.e. <see cref="ILabelSymbol"/>, <see cref="ILocalSymbol"/>, <see 322ILocalSymbol => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (1)
356public override void VisitLocal(ILocalSymbol localSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (3)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 455if (symbol is ILocalSymbol localSymbol && newSymbol is ILocalSymbol newLocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (3)
347ILocalSymbol localSymbol => localSymbol.Type, 404=> symbol is ILocalSymbol { IsFunctionValue: true }; 660ILocalSymbol localSymbol => localSymbol.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (4)
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y), 167private static bool LocalsAreEquivalent(ILocalSymbol x, ILocalSymbol y)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash), 106private static int CombineHashCodes(ILocalSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.cs (3)
32protected abstract bool CanMoveToBlock(ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock); 36protected abstract Task<bool> TypesAreCompatibleAsync(Document document, ILocalSymbol localSymbol, TLocalDeclarationStatementSyntax declarationStatement, SyntaxNode right, CancellationToken cancellationToken); 221var localSymbol = state.LocalSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.State.cs (2)
29public ILocalSymbol LocalSymbol { get; private set; } 83LocalSymbol = (ILocalSymbol)semanticModel.GetDeclaredSymbol(
Microsoft.CodeAnalysis.AnalyzerUtilities (36)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (2)
220SymbolKind.Local => ((ILocalSymbol)symbol).Type, 365ILocalSymbol local => local.IsConst,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\BranchWithInfo.cs (5)
36leavingRegionLocals: ImmutableHashSet<ILocalSymbol>.Empty, 49IEnumerable<ILocalSymbol> leavingRegionLocals, 72public IEnumerable<ILocalSymbol> LeavingRegionLocals { get; } 85leavingRegionLocals: ImmutableHashSet<ILocalSymbol>.Empty, 111private static IEnumerable<ILocalSymbol> ComputeLeavingRegionLocals(ImmutableArray<ControlFlowRegion> leavingRegions)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntity.cs (1)
192ILocalSymbol localSymbol => localSymbol.HasConstantValue,
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityDataFlowOperationVisitor.cs (2)
101protected override void ProcessOutOfScopeLocalsAndFlowCaptures(IEnumerable<ILocalSymbol> locals, IEnumerable<CaptureId> flowCaptures) 111foreach (var local in locals)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityFactory.cs (2)
253var declaredLocal = declarationPattern.DeclaredSymbol as ILocalSymbol;
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (2)
941IEnumerable<ILocalSymbol> leavingRegionLocals, 960protected virtual void ProcessOutOfScopeLocalsAndFlowCaptures(IEnumerable<ILocalSymbol> locals, IEnumerable<CaptureId> flowCaptures)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.cs (1)
179foreach (var local in region.Locals)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (5)
75ImmutableHashSet<ILocalSymbol> capturedLocals, 114public ImmutableHashSet<ILocalSymbol> CapturedLocals { get; } 202private static ImmutableHashSet<ILocalSymbol> GetCapturedLocals(ControlFlowGraph cfg) 204using var _ = PooledHashSet<ILocalSymbol>.GetInstance(out var builder); 210builder.AddRange(dataFlow.Captured.OfType<ILocalSymbol>());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (1)
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
75/// Interior-method-level symbols (i.e. <see cref="ILabelSymbol"/>, <see cref="ILocalSymbol"/>, <see 322ILocalSymbol => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (1)
356public override void VisitLocal(ILocalSymbol localSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (3)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 455if (symbol is ILocalSymbol localSymbol && newSymbol is ILocalSymbol newLocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (3)
347ILocalSymbol localSymbol => localSymbol.Type, 404=> symbol is ILocalSymbol { IsFunctionValue: true }; 660ILocalSymbol localSymbol => localSymbol.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (4)
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y), 167private static bool LocalsAreEquivalent(ILocalSymbol x, ILocalSymbol y)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash), 106private static int CombineHashCodes(ILocalSymbol x, int currentHash)
Microsoft.CodeAnalysis.CodeStyle (34)
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.cs (2)
138var hashCodeVariable = declarator.Symbol; 204private static bool IsLocalReference(IOperation value, ILocalSymbol accumulatorVariable)
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.OperationDeconstructor.cs (2)
22HashCodeAnalyzer analyzer, IMethodSymbol method, ILocalSymbol? hashCodeVariable) : IDisposable 26private readonly ILocalSymbol? _hashCodeVariable = hashCodeVariable;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (2)
607symbol is ILocalSymbol { RefKind: not RefKind.None } || 617var isUnusedLocalAssignment = symbol is ILocalSymbol localSymbol &&
src\roslyn\src\Analyzers\Core\Analyzers\UseCoalesceExpression\AbstractUseCoalesceExpressionForIfNullCheckDiagnosticAnalyzer.cs (2)
196var localSymbol = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(GetDeclarationNode(declarator), cancellationToken);
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\AbstractObjectCreationExpressionAnalyzer.cs (1)
130if (initializedSymbol is not ILocalSymbol local)
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForAssignment\UseConditionalExpressionForAssignmentHelpers.cs (3)
119using var _1 = PooledHashSet<ILocalSymbol>.GetInstance(out var symbolsDeclaredInConditional); 123if (operation is IDeclarationPatternOperation { DeclaredSymbol: ILocalSymbol local }) 141static bool ContainsLocalReference(HashSet<ILocalSymbol> declaredPatternSymbols, IOperation? target)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.cs (1)
179foreach (var local in region.Locals)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (5)
75ImmutableHashSet<ILocalSymbol> capturedLocals, 114public ImmutableHashSet<ILocalSymbol> CapturedLocals { get; } 202private static ImmutableHashSet<ILocalSymbol> GetCapturedLocals(ControlFlowGraph cfg) 204using var _ = PooledHashSet<ILocalSymbol>.GetInstance(out var builder); 210builder.AddRange(dataFlow.Captured.OfType<ILocalSymbol>());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (1)
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
75/// Interior-method-level symbols (i.e. <see cref="ILabelSymbol"/>, <see cref="ILocalSymbol"/>, <see 322ILocalSymbol => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (1)
356public override void VisitLocal(ILocalSymbol localSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (3)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 455if (symbol is ILocalSymbol localSymbol && newSymbol is ILocalSymbol newLocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (3)
347ILocalSymbol localSymbol => localSymbol.Type, 404=> symbol is ILocalSymbol { IsFunctionValue: true }; 660ILocalSymbol localSymbol => localSymbol.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (4)
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y), 167private static bool LocalsAreEquivalent(ILocalSymbol x, ILocalSymbol y)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash), 106private static int CombineHashCodes(ILocalSymbol x, int currentHash)
Microsoft.CodeAnalysis.CodeStyle.Fixes (12)
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveUnusedParametersAndValues\AbstractRemoveUnusedValuesCodeFixProvider.cs (4)
481var declaredLocal = semanticModel.GetDeclaredSymbol(node, cancellationToken) as ILocalSymbol; 484declaredLocal = semanticModel.GetDeclaredSymbol(node.Parent, cancellationToken) as ILocalSymbol; 920var local = localDeclarationOperation.GetDeclaredVariables().Single();
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\ForAssignment\AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs (3)
168ILocalSymbol? local = null; 229var variable = declarator.Symbol; 254private static bool ReferencesLocalVariable(IOperation operation, ILocalSymbol variable)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.cs (3)
32protected abstract bool CanMoveToBlock(ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock); 36protected abstract Task<bool> TypesAreCompatibleAsync(Document document, ILocalSymbol localSymbol, TLocalDeclarationStatementSyntax declarationStatement, SyntaxNode right, CancellationToken cancellationToken); 221var localSymbol = state.LocalSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.State.cs (2)
29public ILocalSymbol LocalSymbol { get; private set; } 83LocalSymbol = (ILocalSymbol)semanticModel.GetDeclaredSymbol(
Microsoft.CodeAnalysis.CSharp (38)
Compilation\CSharpSemanticModel.cs (3)
599case ILocalSymbol local: 3275public ILocalSymbol GetDeclaredSymbol(ForEachStatementSyntax forEachStatement) 3311public ILocalSymbol GetDeclaredSymbol(CatchDeclarationSyntax catchDeclaration)
CSharpExtensions.cs (2)
1605public static ILocalSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, ForEachStatementSyntax forEachStatement, CancellationToken cancellationToken = default(CancellationToken)) 1616public static ILocalSymbol? GetDeclaredSymbol(this SemanticModel? semanticModel, CatchDeclarationSyntax catchDeclaration, CancellationToken cancellationToken = default(CancellationToken))
Operations\CSharpOperationFactory.cs (13)
561ILocalSymbol local = boundLocal.LocalSymbol.GetPublicSymbol(); 1820ImmutableArray<ILocalSymbol> locals = boundBlock.Locals.GetPublicSymbols(); 1914ImmutableArray<ILocalSymbol> locals = boundWhileStatement.Locals.GetPublicSymbols(); 1932ImmutableArray<ILocalSymbol> locals = boundDoStatement.Locals.GetPublicSymbols(); 1944ImmutableArray<ILocalSymbol> locals = boundForStatement.OuterLocals.GetPublicSymbols(); 1945ImmutableArray<ILocalSymbol> conditionLocals = boundForStatement.InnerLocals.GetPublicSymbols(); 2051ImmutableArray<ILocalSymbol> locals = boundForEachStatement.IterationVariables.GetPublicSymbols(); 2079ImmutableArray<ILocalSymbol> locals = boundCatchBlock.Locals.GetPublicSymbols(); 2089ImmutableArray<ILocalSymbol> locals = boundFixedStatement.Locals.GetPublicSymbols(); 2101ImmutableArray<ILocalSymbol> locals = boundUsingStatement.Locals.GetPublicSymbols(); 2142ILocalSymbol? lockTakenSymbol = 2754ImmutableArray<ILocalSymbol> locals = boundSwitchStatement.InnerLocals.GetPublicSymbols(); 2765ImmutableArray<ILocalSymbol> locals = boundSwitchSection.Locals.GetPublicSymbols();
Operations\CSharpOperationFactory_Methods.cs (2)
75return new VariableInitializerOperation(locals: ImmutableArray<ILocalSymbol>.Empty, value, _semanticModel, initializerSyntax, initializerIsImplicit); 83ILocalSymbol symbol = boundLocalDeclaration.LocalSymbol.GetPublicSymbol();
SymbolDisplay\SymbolDisplayVisitor.cs (1)
239public override void VisitLocal(ILocalSymbol symbol)
Symbols\PublicModel\LocalSymbol.cs (12)
25ITypeSymbol ILocalSymbol.Type 38CodeAnalysis.NullableAnnotation ILocalSymbol.NullableAnnotation => _underlying.TypeWithAnnotations.ToPublicAnnotation(); 40bool ILocalSymbol.IsFunctionValue 48bool ILocalSymbol.IsConst => _underlying.IsConst; 50bool ILocalSymbol.IsRef => _underlying.IsRef; 52RefKind ILocalSymbol.RefKind => _underlying.RefKind; 54ScopedKind ILocalSymbol.ScopedKind => _underlying.Scope; 56bool ILocalSymbol.HasConstantValue => _underlying.HasConstantValue; 58object ILocalSymbol.ConstantValue => _underlying.ConstantValue; 60bool ILocalSymbol.IsFixed => _underlying.IsFixed; 62bool ILocalSymbol.IsForEach => _underlying.IsForEach; 64bool ILocalSymbol.IsUsing => _underlying.IsUsing;
Symbols\SymbolExtensions.cs (5)
587internal static ILocalSymbol? GetPublicSymbol(this LocalSymbol? symbol) 589return symbol.GetPublicSymbol<ILocalSymbol>(); 712internal static ImmutableArray<ILocalSymbol> GetPublicSymbols(this ImmutableArray<LocalSymbol> symbols) 714return GetPublicSymbols<ILocalSymbol>(StaticCast<Symbol>.From(symbols)); 784internal static LocalSymbol? GetSymbol(this ILocalSymbol? symbol)
Microsoft.CodeAnalysis.CSharp.CodeStyle (33)
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (2)
127if (semanticModel.GetSymbolInfo(argumentExpression, cancellationToken).Symbol is not ILocalSymbol outLocalSymbol) 253ILocalSymbol outLocalSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs (2)
286var localSymbol = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(declarator, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseAutoProperty\CSharpUseAutoPropertyAnalyzer.cs (1)
119if (exprSymbol is not IParameterSymbol and not ILocalSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (3)
397using var _3 = PooledHashSet<ILocalSymbol>.GetInstance(out var seenLocals); 479if (leftSymbol is not ILocalSymbol { ScopedKind: ScopedKind.ScopedValue }) 500if (semanticModel.GetDeclaredSymbol(declarator, cancellationToken) is not ILocalSymbol local)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (6)
106var local = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(declarator, cancellationToken); 126var local = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(forEachStatement, cancellationToken); 136ILocalSymbol local, 244SemanticModel semanticModel, SyntaxNode searchScope, ILocalSymbol local,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (3)
20private readonly ILocalSymbol _localSymbol; 30ILocalSymbol localSymbol, 57ILocalSymbol localSymbol,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (4)
99out var localSymbol)) 273[NotNullWhen(true)] out ILocalSymbol? localSymbol) 319[NotNullWhen(true)] out ILocalSymbol? localSymbol, 322localSymbol = semanticModel.GetSymbolInfo(identifier).Symbol as ILocalSymbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (2)
111var localSymbol = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(declarator, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSimpleUsingStatement\UseSimpleUsingStatementDiagnosticAnalyzer.cs (1)
170private static bool DeclaredLocalCausesCollision(Dictionary<string, ArrayBuilder<ISymbol>> symbolNameToExistingSymbol, ImmutableArray<ILocalSymbol> locals)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseTupleSwap\CSharpUseTupleSwapDiagnosticAnalyzer.cs (2)
109var local = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(variableDeclarator, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ILocalSymbolExtensions.cs (1)
12public static bool CanSafelyMoveLocalToBlock(this ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
735if (castedSymbol is not IFieldSymbol and not ILocalSymbol and not IParameterSymbol and not IParameterSymbol { RefKind: RefKind.Ref })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (5)
890out ImmutableArray<ILocalSymbol> localVariables) 898localVariables = [(ILocalSymbol)model.GetRequiredDeclaredSymbol(foreachStatement, this.CancellationToken)]; 902using var variables = TemporaryArray<ILocalSymbol>.Empty; 914void AddVariables(VariableDesignationSyntax designation, ref TemporaryArray<ILocalSymbol> variables) 919variables.Add((ILocalSymbol)model.GetRequiredDeclaredSymbol(singleVariableDesignation, CancellationToken));
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (8)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (1)
578Symbol: ILocalSymbol castOther,
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (2)
217var local = (ILocalSymbol)semanticModel.GetDeclaredSymbol(declarator, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\Nullable\CSharpDeclareAsNullableCodeFixProvider.cs (1)
173if (symbol is ILocalSymbol { DeclaringSyntaxReferences.Length: > 0 } local)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (1)
137if (semanticModel.GetDeclaredSymbol(declarator, cancellationToken) is ILocalSymbol local)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpMoveDeclarationNearReferenceService.cs (2)
53Document document, ILocalSymbol localSymbol, 69protected override bool CanMoveToBlock(ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
47visibleSymbols = visibleSymbols.WhereAsArray(s => s is not ILocalSymbol and not IParameterSymbol);
Microsoft.CodeAnalysis.CSharp.Features (47)
CodeRefactorings\InlineTemporary\InlineTemporaryCodeRefactoringProvider.cs (2)
451var localSymbol = (ILocalSymbol)semanticModel.GetDeclaredSymbol(variableDeclarator, cancellationToken);
ConvertForEachToFor\CSharpConvertForEachToForCodeRefactoringProvider.cs (1)
152protected override bool IsSupported(ILocalSymbol foreachVariable, IForEachLoopOperation forEachOperation, ForEachStatementSyntax foreachStatement)
ConvertLinq\ConvertForEachToLinqQuery\AbstractToMethodConverter.cs (1)
107if (expresisonSymbol is ILocalSymbol &&
ExtractMethod\CSharpMethodExtractor.Analyzer.cs (1)
66symbol is ILocalSymbol { IsUsing: true, DeclaringSyntaxReferences: [var reference] } &&
InlineHints\CSharpInlineTypeHintsService.cs (2)
53var local = semanticModel.GetDeclaredSymbol(variableDesignation, cancellationToken) as ILocalSymbol;
LanguageServices\CSharpSymbolDisplayService.SymbolDescriptionBuilder.cs (2)
106else if (symbol is ILocalSymbol local) 293ILocalSymbol symbol)
QuickInfo\CSharpSemanticQuickInfoProvider.cs (4)
208if (variable is ILocalSymbol local) 219case ILocalSymbol { HasConstantValue: true }: return null; 223case ILocalSymbol: 279if (symbol is ILocalSymbol && node is VariableDeclaratorSyntax
ReplaceConditionalWithStatements\CSharpReplaceConditionalWithStatementsCodeRefactoringProvider.cs (1)
66ILocalSymbol symbol)
ReverseForStatement\CSharpReverseForStatementCodeRefactoringProvider.cs (2)
90var local = semanticModel.GetDeclaredSymbol(variable, cancellationToken) as ILocalSymbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (2)
127if (semanticModel.GetSymbolInfo(argumentExpression, cancellationToken).Symbol is not ILocalSymbol outLocalSymbol) 253ILocalSymbol outLocalSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs (2)
286var localSymbol = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(declarator, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseAutoProperty\CSharpUseAutoPropertyAnalyzer.cs (1)
119if (exprSymbol is not IParameterSymbol and not ILocalSymbol)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (3)
397using var _3 = PooledHashSet<ILocalSymbol>.GetInstance(out var seenLocals); 479if (leftSymbol is not ILocalSymbol { ScopedKind: ScopedKind.ScopedValue }) 500if (semanticModel.GetDeclaredSymbol(declarator, cancellationToken) is not ILocalSymbol local)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (6)
106var local = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(declarator, cancellationToken); 126var local = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(forEachStatement, cancellationToken); 136ILocalSymbol local, 244SemanticModel semanticModel, SyntaxNode searchScope, ILocalSymbol local,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (3)
20private readonly ILocalSymbol _localSymbol; 30ILocalSymbol localSymbol, 57ILocalSymbol localSymbol,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (4)
99out var localSymbol)) 273[NotNullWhen(true)] out ILocalSymbol? localSymbol) 319[NotNullWhen(true)] out ILocalSymbol? localSymbol, 322localSymbol = semanticModel.GetSymbolInfo(identifier).Symbol as ILocalSymbol;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (2)
111var localSymbol = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(declarator, cancellationToken);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSimpleUsingStatement\UseSimpleUsingStatementDiagnosticAnalyzer.cs (1)
170private static bool DeclaredLocalCausesCollision(Dictionary<string, ArrayBuilder<ISymbol>> symbolNameToExistingSymbol, ImmutableArray<ILocalSymbol> locals)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseTupleSwap\CSharpUseTupleSwapDiagnosticAnalyzer.cs (2)
109var local = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(variableDeclarator, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (1)
578Symbol: ILocalSymbol castOther,
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (2)
217var local = (ILocalSymbol)semanticModel.GetDeclaredSymbol(declarator, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\Nullable\CSharpDeclareAsNullableCodeFixProvider.cs (1)
173if (symbol is ILocalSymbol { DeclaringSyntaxReferences.Length: > 0 } local)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (1)
137if (semanticModel.GetDeclaredSymbol(declarator, cancellationToken) is ILocalSymbol local)
Microsoft.CodeAnalysis.CSharp.Workspaces (15)
Classification\SyntaxClassification\NameSyntaxClassifier.cs (2)
219case ILocalSymbol localSymbol: 243private static string GetClassificationForLocal(ILocalSymbol localSymbol)
Rename\CSharpRenameRewriterLanguageService.cs (2)
760.Where(s => s is ILocalSymbol or IParameterSymbol && s.Name == token.ValueText); 769matchingLocal is ILocalSymbol { Type.TypeKind: TypeKind.Delegate } ||
Simplification\Simplifiers\AbstractCSharpSimplifier.cs (1)
409return symbols.Any(static s => s is ILocalSymbol);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ILocalSymbolExtensions.cs (1)
12public static bool CanSafelyMoveLocalToBlock(this ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
735if (castedSymbol is not IFieldSymbol and not ILocalSymbol and not IParameterSymbol and not IParameterSymbol { RefKind: RefKind.Ref })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (5)
890out ImmutableArray<ILocalSymbol> localVariables) 898localVariables = [(ILocalSymbol)model.GetRequiredDeclaredSymbol(foreachStatement, this.CancellationToken)]; 902using var variables = TemporaryArray<ILocalSymbol>.Empty; 914void AddVariables(VariableDesignationSyntax designation, ref TemporaryArray<ILocalSymbol> variables) 919variables.Add((ILocalSymbol)model.GetRequiredDeclaredSymbol(singleVariableDesignation, CancellationToken));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpMoveDeclarationNearReferenceService.cs (2)
53Document document, ILocalSymbol localSymbol, 69protected override bool CanMoveToBlock(ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
47visibleSymbols = visibleSymbols.WhereAsArray(s => s is not ILocalSymbol and not IParameterSymbol);
Microsoft.CodeAnalysis.Extensions.Package (9)
Symbols\ISymbolExtensions.cs (3)
347ILocalSymbol localSymbol => localSymbol.Type, 404=> symbol is ILocalSymbol { IsFunctionValue: true }; 660ILocalSymbol localSymbol => localSymbol.Type,
Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (4)
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y), 167private static bool LocalsAreEquivalent(ILocalSymbol x, ILocalSymbol y)
Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash), 106private static int CombineHashCodes(ILocalSymbol x, int currentHash)
Microsoft.CodeAnalysis.Features (48)
ChangeSignature\AbstractChangeSignatureService.cs (1)
945.Where(s => s is ILocalSymbol or IParameterSymbol)
Completion\Providers\AbstractContextVariableArgumentProvider.cs (1)
43else if (symbol.IsKind(SymbolKind.Local, out ILocalSymbol? local))
Completion\Providers\AbstractRecommendationServiceBasedCompletionProvider.cs (1)
211if (symbol is ILocalSymbol or IParameterSymbol or IRangeVariableSymbol)
Completion\Providers\AbstractSymbolCompletionProvider.cs (1)
67if (symbol is ILocalSymbol local)
Completion\Providers\ImportCompletionProvider\AbstractExtensionMethodImportCompletionProvider.cs (1)
116ILocalSymbol localSymbol => localSymbol.Type,
ConvertForEachToFor\AbstractConvertForEachToForCodeRefactoringProvider.cs (3)
54protected abstract bool IsSupported(ILocalSymbol foreachVariable, IForEachLoopOperation forEachOperation, TForEachStatement foreachStatement); 158var foreachVariable = operation.Locals[0]; 193SemanticModel model, ILocalSymbol foreachVariable, IOperation foreachCollection,
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (1)
6735SymbolKind.Local => ((ILocalSymbol)localOrParameter).Type,
EmbeddedLanguages\EmbeddedLanguageDetector.cs (1)
339if (symbol is not ILocalSymbol { Name: not "" } localSymbol)
ExtractMethod\MethodExtractor.Analyzer.cs (3)
508if (symbol is ILocalSymbol { IsFunctionValue: true } && 563ILocalSymbol local => new VariableInfo( 578ILocalSymbol local => local.Type,
ExtractMethod\MethodExtractor.VariableSymbol.cs (2)
155protected sealed class LocalVariableSymbol(ILocalSymbol localSymbol, ITypeSymbol symbolType) 156: VariableSymbol<LocalVariableSymbol, ILocalSymbol>(
IntroduceParameter\AbstractIntroduceParameterCodeRefactoringProvider.cs (1)
222if (symbol is IRangeVariableSymbol or ILocalSymbol)
IntroduceVariable\AbstractIntroduceVariableService.cs (1)
193!state.GetSemanticMap(cancellationToken).AllReferencedSymbols.OfType<ILocalSymbol>().Any() &&
LanguageServices\AnonymousTypeDisplayService\AbstractStructuralTypeDisplayService.StructuralTypeCollectorVisitor.cs (1)
44public override void VisitLocal(ILocalSymbol symbol)
LanguageServices\SymbolDisplayService\AbstractSymbolDisplayService.AbstractSymbolDescriptionBuilder.cs (5)
182return firstSymbol is ILocalSymbol localSymbol 188ILocalSymbol localSymbol) 410else if (symbol is ILocalSymbol local) 670private async Task AddDescriptionForLocalAsync(ILocalSymbol symbol) 681private async Task<ImmutableArray<SymbolDisplayPart>> GetLocalPartsAsync(ILocalSymbol symbol)
QuickInfo\CommonSemanticQuickInfoProvider.ErrorVisitor.cs (1)
35public override bool VisitLocal(ILocalSymbol symbol)
ReplaceConditionalWithStatements\AbstractReplaceConditionalWithStatementsCodeRefactoringProvider.cs (3)
42protected abstract TLocalDeclarationStatementSyntax GetUpdatedLocalDeclarationStatement(SyntaxGenerator generator, TLocalDeclarationStatementSyntax localDeclarationStatement, ILocalSymbol symbol); 236var symbol = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(variable, cancellationToken);
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.cs (2)
138var hashCodeVariable = declarator.Symbol; 204private static bool IsLocalReference(IOperation value, ILocalSymbol accumulatorVariable)
src\roslyn\src\Analyzers\Core\Analyzers\Helpers\HashCodeAnalyzer\HashCodeAnalyzer.OperationDeconstructor.cs (2)
22HashCodeAnalyzer analyzer, IMethodSymbol method, ILocalSymbol? hashCodeVariable) : IDisposable 26private readonly ILocalSymbol? _hashCodeVariable = hashCodeVariable;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (2)
607symbol is ILocalSymbol { RefKind: not RefKind.None } || 617var isUnusedLocalAssignment = symbol is ILocalSymbol localSymbol &&
src\roslyn\src\Analyzers\Core\Analyzers\UseCoalesceExpression\AbstractUseCoalesceExpressionForIfNullCheckDiagnosticAnalyzer.cs (2)
196var localSymbol = (ILocalSymbol)semanticModel.GetRequiredDeclaredSymbol(GetDeclarationNode(declarator), cancellationToken);
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\AbstractObjectCreationExpressionAnalyzer.cs (1)
130if (initializedSymbol is not ILocalSymbol local)
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForAssignment\UseConditionalExpressionForAssignmentHelpers.cs (3)
119using var _1 = PooledHashSet<ILocalSymbol>.GetInstance(out var symbolsDeclaredInConditional); 123if (operation is IDeclarationPatternOperation { DeclaredSymbol: ILocalSymbol local }) 141static bool ContainsLocalReference(HashSet<ILocalSymbol> declaredPatternSymbols, IOperation? target)
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveUnusedParametersAndValues\AbstractRemoveUnusedValuesCodeFixProvider.cs (4)
481var declaredLocal = semanticModel.GetDeclaredSymbol(node, cancellationToken) as ILocalSymbol; 484declaredLocal = semanticModel.GetDeclaredSymbol(node.Parent, cancellationToken) as ILocalSymbol; 920var local = localDeclarationOperation.GetDeclaredVariables().Single();
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\ForAssignment\AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs (3)
168ILocalSymbol? local = null; 229var variable = declarator.Symbol; 254private static bool ReferencesLocalVariable(IOperation operation, ILocalSymbol variable)
ValueTracking\ValueTracker.cs (2)
31or ILocalSymbol 85case ILocalSymbol:
Microsoft.CodeAnalysis.ResxSourceGenerator (24)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (2)
220SymbolKind.Local => ((ILocalSymbol)symbol).Type, 365ILocalSymbol local => local.IsConst,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.cs (1)
179foreach (var local in region.Locals)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (5)
75ImmutableHashSet<ILocalSymbol> capturedLocals, 114public ImmutableHashSet<ILocalSymbol> CapturedLocals { get; } 202private static ImmutableHashSet<ILocalSymbol> GetCapturedLocals(ControlFlowGraph cfg) 204using var _ = PooledHashSet<ILocalSymbol>.GetInstance(out var builder); 210builder.AddRange(dataFlow.Captured.OfType<ILocalSymbol>());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (1)
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
75/// Interior-method-level symbols (i.e. <see cref="ILabelSymbol"/>, <see cref="ILocalSymbol"/>, <see 322ILocalSymbol => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (1)
356public override void VisitLocal(ILocalSymbol localSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (3)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 455if (symbol is ILocalSymbol localSymbol && newSymbol is ILocalSymbol newLocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (3)
347ILocalSymbol localSymbol => localSymbol.Type, 404=> symbol is ILocalSymbol { IsFunctionValue: true }; 660ILocalSymbol localSymbol => localSymbol.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (4)
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y), 167private static bool LocalsAreEquivalent(ILocalSymbol x, ILocalSymbol y)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash), 106private static int CombineHashCodes(ILocalSymbol x, int currentHash)
Microsoft.CodeAnalysis.VisualBasic (45)
Compilation\SemanticModel.vb (1)
2708Public Overloads Function GetDeclaredSymbol(declarationSyntax As CatchStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As ILocalSymbol
Operations\VisualBasicOperationFactory.vb (24)
956Dim local As ILocalSymbol = boundLocal.LocalSymbol 995Return New FieldInitializerOperation(initializedFields, ImmutableArray(Of ILocalSymbol).Empty, value, _semanticModel, syntax, isImplicit) 1003Return New PropertyInitializerOperation(initializedProperties, ImmutableArray(Of ILocalSymbol).Empty, value, _semanticModel, syntax, isImplicit) 1011Return New ParameterInitializerOperation(parameter, ImmutableArray(Of ILocalSymbol).Empty, value, _semanticModel, syntax, isImplicit) 1079Return New SwitchOperation(ImmutableArray(Of ILocalSymbol).Empty, value, cases, exitLabel, _semanticModel, syntax, isImplicit) 1113Return New SwitchCaseOperation(clauses, body, ImmutableArray(Of ILocalSymbol).Empty, condition, _semanticModel, syntax, isImplicit) 1145Dim locals As ImmutableArray(Of ILocalSymbol) = ImmutableArray(Of ILocalSymbol).Empty 1164Dim locals As ImmutableArray(Of ILocalSymbol) = If(boundForToStatement.DeclaredOrInferredLocalOpt IsNot Nothing, 1165ImmutableArray.Create(Of ILocalSymbol)(boundForToStatement.DeclaredOrInferredLocalOpt), 1166ImmutableArray(Of ILocalSymbol).Empty) 1245Dim locals As ImmutableArray(Of ILocalSymbol) = If(boundForEachStatement.DeclaredOrInferredLocalOpt IsNot Nothing, 1246ImmutableArray.Create(Of ILocalSymbol)(boundForEachStatement.DeclaredOrInferredLocalOpt), 1247ImmutableArray(Of ILocalSymbol).Empty) 1288Dim locals As ImmutableArray(Of ILocalSymbol) = If(boundCatchBlock.LocalOpt IsNot Nothing, 1289ImmutableArray.Create(Of ILocalSymbol)(boundCatchBlock.LocalOpt), 1290ImmutableArray(Of ILocalSymbol).Empty) 1298Dim locals As ImmutableArray(Of ILocalSymbol) = boundBlock.Locals.As(Of ILocalSymbol)() 1347Dim locals As ImmutableArray(Of ILocalSymbol) = ImmutableArray(Of ILocalSymbol).Empty 1414Dim lockTakenSymbol As ILocalSymbol = 1466Dim locals As ImmutableArray(Of ILocalSymbol) = ImmutableArray(Of ILocalSymbol).CastUp(boundUsingStatement.Locals)
Operations\VisualBasicOperationFactory_Methods.vb (3)
432initializer = New VariableInitializerOperation(locals:=ImmutableArray(Of ILocalSymbol).Empty, value, _semanticModel, initializerSyntax, isImplicit) 441initializer = New VariableInitializerOperation(locals:=ImmutableArray(Of ILocalSymbol).Empty, value, _semanticModel, initializerSyntax, isImplicit:=False) 460initializer = New VariableInitializerOperation(locals:=ImmutableArray(Of ILocalSymbol).Empty, initializerValue, _semanticModel, syntax, isImplicit:=True)
SymbolDisplay\SymbolDisplayVisitor.vb (1)
272Public Overrides Sub VisitLocal(symbol As ILocalSymbol)
Symbols\Source\LocalSymbol.vb (12)
260Private ReadOnly Property ILocalSymbol_IsFixed As Boolean Implements ILocalSymbol.IsFixed 292Public ReadOnly Property IsRef As Boolean Implements ILocalSymbol.IsRef 298Public ReadOnly Property RefKind As RefKind Implements ILocalSymbol.RefKind 304Private ReadOnly Property ILocalSymbol_ScopedKind As ScopedKind Implements ILocalSymbol.ScopedKind 310Public MustOverride ReadOnly Property IsFunctionValue As Boolean Implements ILocalSymbol.IsFunctionValue 344Public ReadOnly Property HasConstantValue As Boolean Implements ILocalSymbol.HasConstantValue 354Public ReadOnly Property ConstantValue As Object Implements ILocalSymbol.ConstantValue 395Private ReadOnly Property ILocalSymbol_Type As ITypeSymbol Implements ILocalSymbol.Type 401Private ReadOnly Property ILocalSymbol_NullableAnnotation As NullableAnnotation Implements ILocalSymbol.NullableAnnotation 407Private ReadOnly Property ILocalSymbol_IsConst As Boolean Implements ILocalSymbol.IsConst 413Private ReadOnly Property ILocalSymbol_IsForEach As Boolean Implements ILocalSymbol.IsForEach 419Private ReadOnly Property ILocalSymbol_IsUsing As Boolean Implements ILocalSymbol.IsUsing
VisualBasicExtensions.vb (4)
581Public Function IsFor(localSymbol As ILocalSymbol) As Boolean 587Public Function IsForEach(localSymbol As ILocalSymbol) As Boolean 593Public Function IsCatch(localSymbol As ILocalSymbol) As Boolean 1201Public Function GetDeclaredSymbol(semanticModel As SemanticModel, declarationSyntax As CatchStatementSyntax, Optional cancellationToken As CancellationToken = Nothing) As ILocalSymbol
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (3)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\VariableDeclaratorSyntaxExtensions.vb (1)
39Dim localSymbol = TryCast(semanticModel.GetDeclaredSymbol(name), ILocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\SpeculationAnalyzer.vb (2)
601ByRef localVariables As ImmutableArray(Of ILocalSymbol)) 605localVariables = ImmutableArray.Create(DirectCast(model.GetDeclaredSymbol(forEach), ILocalSymbol))
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (3)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicMoveDeclarationNearReferenceService.vb (2)
45Protected Overrides Function TypesAreCompatibleAsync(document As Document, localSymbol As ILocalSymbol, declarationStatement As LocalDeclarationStatementSyntax, right As SyntaxNode, cancellationToken As CancellationToken) As Task(Of Boolean) 49Protected Overrides Function CanMoveToBlock(localSymbol As ILocalSymbol, currentBlock As SyntaxNode, destinationBlock As SyntaxNode) As Boolean
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (1)
617Return CreateResult(DirectCast(symbol, ILocalSymbol).Type)
Microsoft.CodeAnalysis.VisualBasic.Features (12)
CodeRefactorings\InlineTemporary\VisualBasicInlineTemporaryCodeRefactoringProvider.ReferenceRewriter.vb (2)
22Private ReadOnly _localSymbol As ILocalSymbol 35_localSymbol = DirectCast(_semanticModel.GetDeclaredSymbol(_definition, cancellationToken), ILocalSymbol)
CodeRefactorings\InlineTemporary\VisualBasicInlineTemporaryCodeRefactoringProvider.vb (1)
392Dim local = DirectCast(semanticModel.GetDeclaredSymbol(modifiedIdentifier, cancellationToken), ILocalSymbol)
ConvertForEachToFor\VisualBasicConvertForEachToForCodeRefactoringProvider.vb (1)
167Protected Overrides Function IsSupported(foreachVariable As ILocalSymbol, foreachOperation As IForEachLoopOperation, foreachStatement As ForEachBlockSyntax) As Boolean
ExtractMethod\Extensions.vb (1)
364Dim local = TryCast(symbol, ILocalSymbol)
ExtractMethod\VisualBasicSelectionResult.vb (1)
345Dim local = TryCast(symbol, ILocalSymbol)
LanguageServices\VisualBasicSymbolDisplayService.SymbolDescriptionBuilder.vb (3)
79ElseIf TypeOf symbol Is ILocalSymbol Then 80Return GetInitializerSourcePartsAsync(DirectCast(symbol, ILocalSymbol)) 130Private Overloads Async Function GetInitializerSourcePartsAsync(symbol As ILocalSymbol) As Task(Of ImmutableArray(Of SymbolDisplayPart))
QuickInfo\VisualBasicSemanticQuickInfoProvider.vb (2)
171If TypeOf symbol Is ILocalSymbol Then 172Return DirectCast(symbol, ILocalSymbol).Type
ReplaceConditionalWithStatementsCodeRefactoringProvider\VisualBasicReplaceConditionalWithStatementsCodeRefactoringProvider.vb (1)
55symbol As ILocalSymbol) As LocalDeclarationStatementSyntax
Microsoft.CodeAnalysis.VisualBasic.Workspaces (14)
Classification\SyntaxClassification\NameSyntaxClassifier.vb (2)
131Dim classification = GetClassificationForLocal(DirectCast(symbol, ILocalSymbol)) 204Private Shared Function GetClassificationForLocal(localSymbol As ILocalSymbol) As String
ObsoleteSymbol\VisualBasicObsoleteSymbolService.vb (1)
47Dim localSymbol = TryCast(semanticModel.GetDeclaredSymbol(declarator.Names(0), cancellationToken), ILocalSymbol)
Recommendations\VisualBasicRecommendationServiceRunner.vb (1)
90Dim local = DirectCast(symbol, ILocalSymbol)
Rename\LocalConflictVisitor.vb (2)
154Dim local = DirectCast(symbol, ILocalSymbol) 198Dim local = DirectCast(symbol, ILocalSymbol)
Simplification\Reducers\VisualBasicVariableDeclaratorReducer.vb (2)
148(TypeOf declaredSymbol IsNot ILocalSymbol AndAlso TypeOf declaredSymbol IsNot IFieldSymbol) Then 152Dim localSymbol = TryCast(declaredSymbol, ILocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\VariableDeclaratorSyntaxExtensions.vb (1)
39Dim localSymbol = TryCast(semanticModel.GetDeclaredSymbol(name), ILocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\SpeculationAnalyzer.vb (2)
601ByRef localVariables As ImmutableArray(Of ILocalSymbol)) 605localVariables = ImmutableArray.Create(DirectCast(model.GetDeclaredSymbol(forEach), ILocalSymbol))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicMoveDeclarationNearReferenceService.vb (2)
45Protected Overrides Function TypesAreCompatibleAsync(document As Document, localSymbol As ILocalSymbol, declarationStatement As LocalDeclarationStatementSyntax, right As SyntaxNode, cancellationToken As CancellationToken) As Task(Of Boolean) 49Protected Overrides Function CanMoveToBlock(localSymbol As ILocalSymbol, currentBlock As SyntaxNode, destinationBlock As SyntaxNode) As Boolean
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (1)
617Return CreateResult(DirectCast(symbol, ILocalSymbol).Type)
Microsoft.CodeAnalysis.Workspaces (35)
FindSymbols\FindReferences\Finders\LocalSymbolReferenceFinder.cs (1)
7internal sealed class LocalSymbolReferenceFinder : AbstractMemberScopedReferenceFinder<ILocalSymbol>
ReassignedVariable\AbstractReassignedVariableService.cs (7)
143var local = semanticModel.GetDeclaredSymbol(variable, cancellationToken) as ILocalSymbol; 150var local = semanticModel.GetDeclaredSymbol(designation, cancellationToken) as ILocalSymbol; 158if (symbol is not IParameterSymbol and not ILocalSymbol) 166ILocalSymbol local => ComputeLocalIsAssigned(semanticModel, local), 266bool ComputeLocalIsAssigned(SemanticModel semanticModel, ILocalSymbol local)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.cs (1)
179foreach (var local in region.Locals)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (5)
75ImmutableHashSet<ILocalSymbol> capturedLocals, 114public ImmutableHashSet<ILocalSymbol> CapturedLocals { get; } 202private static ImmutableHashSet<ILocalSymbol> GetCapturedLocals(ControlFlowGraph cfg) 204using var _ = PooledHashSet<ILocalSymbol>.GetInstance(out var builder); 210builder.AddRange(dataFlow.Captured.OfType<ILocalSymbol>());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (1)
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
75/// Interior-method-level symbols (i.e. <see cref="ILabelSymbol"/>, <see cref="ILocalSymbol"/>, <see 322ILocalSymbol => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (1)
356public override void VisitLocal(ILocalSymbol localSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (3)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 455if (symbol is ILocalSymbol localSymbol && newSymbol is ILocalSymbol newLocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (3)
347ILocalSymbol localSymbol => localSymbol.Type, 404=> symbol is ILocalSymbol { IsFunctionValue: true }; 660ILocalSymbol localSymbol => localSymbol.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (4)
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y), 167private static bool LocalsAreEquivalent(ILocalSymbol x, ILocalSymbol y)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash), 106private static int CombineHashCodes(ILocalSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.cs (3)
32protected abstract bool CanMoveToBlock(ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock); 36protected abstract Task<bool> TypesAreCompatibleAsync(Document document, ILocalSymbol localSymbol, TLocalDeclarationStatementSyntax declarationStatement, SyntaxNode right, CancellationToken cancellationToken); 221var localSymbol = state.LocalSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.State.cs (2)
29public ILocalSymbol LocalSymbol { get; private set; } 83LocalSymbol = (ILocalSymbol)semanticModel.GetDeclaredSymbol(
Roslyn.Diagnostics.Analyzers (50)
AbstractDoNotCopyValue.cs (21)
299public override void VisitLocal(ILocalSymbol symbol) 445foreach (var local in operation.Locals) 462foreach (var local in operation.Locals) 537foreach (var local in operation.Locals) 706foreach (var local in operation.Locals) 753foreach (var local in operation.Locals) 794foreach (var local in operation.ConditionLocals) 799foreach (var local in operation.Locals) 810foreach (var local in operation.Locals) 975foreach (var local in operation.Locals) 1006foreach (var local in operation.Locals) 1167foreach (var local in operation.Locals) 1178foreach (var local in operation.Locals) 1195foreach (var local in operation.Locals) 1257foreach (var local in operation.Locals) 1282var symbol = operation.Declarators.Single().Symbol; 1326foreach (var local in operation.Locals) 1337foreach (var local in operation.Locals) 1416var local = ((ILocalReferenceOperation)operation).Local; 1525CheckLocalSymbolInUnsupportedContext(operation, (ILocalSymbol)symbol); 1601private void CheckLocalSymbolInUnsupportedContext(IOperation operation, ILocalSymbol? local)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\ISymbolExtensions.cs (2)
220SymbolKind.Local => ((ILocalSymbol)symbol).Type, 365ILocalSymbol local => local.IsConst,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.cs (1)
179foreach (var local in region.Locals)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (5)
75ImmutableHashSet<ILocalSymbol> capturedLocals, 114public ImmutableHashSet<ILocalSymbol> CapturedLocals { get; } 202private static ImmutableHashSet<ILocalSymbol> GetCapturedLocals(ControlFlowGraph cfg) 204using var _ = PooledHashSet<ILocalSymbol>.GetInstance(out var builder); 210builder.AddRange(dataFlow.Captured.OfType<ILocalSymbol>());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (1)
523(kind == SymbolKind.Local && ((ILocalSymbol)symbol).IsConst))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
75/// Interior-method-level symbols (i.e. <see cref="ILabelSymbol"/>, <see cref="ILocalSymbol"/>, <see 322ILocalSymbol => true,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyWriter.cs (1)
356public override void VisitLocal(ILocalSymbol localSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (3)
112SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables); 455if (symbol is ILocalSymbol localSymbol && newSymbol is ILocalSymbol newLocalSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ISymbolExtensions.cs (3)
347ILocalSymbol localSymbol => localSymbol.Type, 404=> symbol is ILocalSymbol { IsFunctionValue: true }; 660ILocalSymbol localSymbol => localSymbol.Type,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (4)
123SymbolKind.Local => LocalsAreEquivalent((ILocalSymbol)x, (ILocalSymbol)y), 167private static bool LocalsAreEquivalent(ILocalSymbol x, ILocalSymbol y)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
67SymbolKind.Local => CombineHashCodes((ILocalSymbol)x, currentHash), 106private static int CombineHashCodes(ILocalSymbol x, int currentHash)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.cs (3)
32protected abstract bool CanMoveToBlock(ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock); 36protected abstract Task<bool> TypesAreCompatibleAsync(Document document, ILocalSymbol localSymbol, TLocalDeclarationStatementSyntax declarationStatement, SyntaxNode right, CancellationToken cancellationToken); 221var localSymbol = state.LocalSymbol;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\MoveDeclarationNearReference\AbstractMoveDeclarationNearReferenceService.State.cs (2)
29public ILocalSymbol LocalSymbol { get; private set; } 83LocalSymbol = (ILocalSymbol)semanticModel.GetDeclaredSymbol(
Roslyn.Diagnostics.CSharp.Analyzers (10)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ILocalSymbolExtensions.cs (1)
12public static bool CanSafelyMoveLocalToBlock(this ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
735if (castedSymbol is not IFieldSymbol and not ILocalSymbol and not IParameterSymbol and not IParameterSymbol { RefKind: RefKind.Ref })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (5)
890out ImmutableArray<ILocalSymbol> localVariables) 898localVariables = [(ILocalSymbol)model.GetRequiredDeclaredSymbol(foreachStatement, this.CancellationToken)]; 902using var variables = TemporaryArray<ILocalSymbol>.Empty; 914void AddVariables(VariableDesignationSyntax designation, ref TemporaryArray<ILocalSymbol> variables) 919variables.Add((ILocalSymbol)model.GetRequiredDeclaredSymbol(singleVariableDesignation, CancellationToken));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpMoveDeclarationNearReferenceService.cs (2)
53Document document, ILocalSymbol localSymbol, 69protected override bool CanMoveToBlock(ILocalSymbol localSymbol, SyntaxNode currentBlock, SyntaxNode destinationBlock)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
47visibleSymbols = visibleSymbols.WhereAsArray(s => s is not ILocalSymbol and not IParameterSymbol);
Roslyn.Diagnostics.VisualBasic.Analyzers (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (1)
617Return CreateResult(DirectCast(symbol, ILocalSymbol).Type)