102 references to LocalDeclarationKind
Microsoft.CodeAnalysis.CSharp (102)
Binder\Binder_Expressions.cs (1)
3293Debug.Assert(localSymbol.DeclarationKind == LocalDeclarationKind.OutVariable);
Binder\Binder_Statements.cs (21)
201BindForOrUsingOrFixedDeclarations(declarationSyntax, LocalDeclarationKind.FixedVariable, diagnostics, out declarations); 734var kind = isConst ? LocalDeclarationKind.Constant : LocalDeclarationKind.RegularVariable; 955LocalDeclarationKind kind, 981LocalDeclarationKind kind, 1064if (kind != LocalDeclarationKind.FixedVariable) 1078if (kind == LocalDeclarationKind.FixedVariable) 1115if (kind == LocalDeclarationKind.FixedVariable || kind == LocalDeclarationKind.UsingVariable) 1128else if (kind == LocalDeclarationKind.Constant && initializerOpt != null && !localDiagnostics.HasAnyResolvedErrors()) 1201private SourceLocalSymbol LocateDeclaredVariableSymbol(VariableDeclaratorSyntax declarator, TypeSyntax typeSyntax, LocalDeclarationKind outerKind, BindingDiagnosticBag diagnostics) 1203LocalDeclarationKind kind = outerKind == LocalDeclarationKind.UsingVariable ? LocalDeclarationKind.UsingVariable : LocalDeclarationKind.RegularVariable; 2843internal BoundStatement BindForOrUsingOrFixedDeclarations(VariableDeclarationSyntax nodeOpt, LocalDeclarationKind localKind, BindingDiagnosticBag diagnostics, out ImmutableArray<BoundLocalDeclaration> declarations) 2852Debug.Assert(typeSyntax is not ScopedTypeSyntax || localKind is LocalDeclarationKind.RegularVariable or LocalDeclarationKind.UsingVariable); 2863if (localKind == LocalDeclarationKind.RegularVariable) 3399if (local?.DeclarationKind == LocalDeclarationKind.CatchVariable)
Binder\CatchClauseBinder.cs (1)
34locals.Add(SourceLocalSymbol.MakeLocal(this.ContainingMemberOrLambda, this, allowRefKind: false, allowScoped: false, declarationOpt.Type, declarationOpt.Identifier, LocalDeclarationKind.CatchVariable, initializer: null));
Binder\ExpressionVariableFinder.cs (4)
621kind: LocalDeclarationKind.PatternVariable, 643kind: node.IsOutVarDeclaration() ? LocalDeclarationKind.OutVariable : LocalDeclarationKind.DeclarationExpressionVariable, 669kind: LocalDeclarationKind.DeconstructionVariable,
Binder\FixedStatementBinder.cs (1)
48locals.Add(MakeLocal(_syntax.Declaration, declarator, LocalDeclarationKind.FixedVariable, allowScoped: false));
Binder\ForEachLoopBinder.cs (4)
80LocalDeclarationKind.ForEachIterationVariable, 103LocalDeclarationKind kind, 140LocalDeclarationKind kind, 438iterationVariables.All(local => local.DeclarationKind == LocalDeclarationKind.ForEachIterationVariable),
Binder\ForLoopBinder.cs (2)
48var localSymbol = MakeLocal(_syntax.Declaration, vdecl, LocalDeclarationKind.RegularVariable, allowScoped: true); 84initializer = originalBinder.BindForOrUsingOrFixedDeclarations(node.Declaration, LocalDeclarationKind.RegularVariable, diagnostics, out _);
Binder\LocalScopeBinder.cs (5)
200LocalDeclarationKind kind; 203kind = LocalDeclarationKind.Constant; 207kind = LocalDeclarationKind.UsingVariable; 211kind = LocalDeclarationKind.RegularVariable; 331protected SourceLocalSymbol MakeLocal(VariableDeclarationSyntax declaration, VariableDeclaratorSyntax declarator, LocalDeclarationKind kind, bool allowScoped, Binder initializerBinderOpt = null)
Binder\UsingStatementBinder.cs (2)
58locals.Add(MakeLocal(declarationSyntax, declarator, LocalDeclarationKind.UsingVariable, allowScoped: true)); 128originalBinder.BindForOrUsingOrFixedDeclarations(declarationSyntax, LocalDeclarationKind.UsingVariable, diagnostics, out declarationsOpt);
CodeGen\EmitStatement.cs (1)
1821if (local.DeclarationKind == LocalDeclarationKind.FixedVariable && local.IsPinned) // Excludes pointer local and string local in fixed string case.
CodeGen\Optimizer.cs (2)
2403internal override LocalDeclarationKind DeclarationKind 2405get { return LocalDeclarationKind.None; }
Compilation\CSharpSemanticModel.cs (2)
3293return (local is SourceLocalSymbol { DeclarationKind: LocalDeclarationKind.ForEachIterationVariable } sourceLocal 3332return ((object)local != null && local.DeclarationKind == LocalDeclarationKind.CatchVariable)
FlowAnalysis\DataFlowsOutWalker.cs (1)
162return local?.DeclarationKind == LocalDeclarationKind.CatchVariable ? local : null;
FlowAnalysis\DefiniteAssignment.cs (3)
2226if (local.DeclarationKind == LocalDeclarationKind.UsingVariable) 2282if (symbol.DeclarationKind != LocalDeclarationKind.PatternVariable && !string.IsNullOrEmpty(symbol.Name)) // avoid diagnostics for parser-inserted names 2650ReportIfUnused(local, assigned: local.DeclarationKind != LocalDeclarationKind.CatchVariable);
FlowAnalysis\NullableWalker.cs (2)
3689if (local.DeclarationKind != LocalDeclarationKind.None) 13620if (local.DeclarationKind == LocalDeclarationKind.CatchVariable)
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (2)
53internal override LocalDeclarationKind DeclarationKind => LocalDeclarationKind.None;
FlowAnalysis\VariablesDeclaredWalker.cs (1)
233if (local?.DeclarationKind == LocalDeclarationKind.CatchVariable)
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
580Debug.Assert(l.LocalSymbol.DeclarationKind == LocalDeclarationKind.PatternVariable);
Lowering\MethodToClassRewriter.cs (1)
280Debug.Assert(leftLocal.LocalSymbol.DeclarationKind == LocalDeclarationKind.None);
Symbols\LocalSymbol.cs (11)
26internal abstract LocalDeclarationKind DeclarationKind 231return this.DeclarationKind == LocalDeclarationKind.CatchVariable; 242return this.DeclarationKind == LocalDeclarationKind.Constant; 259return this.DeclarationKind == LocalDeclarationKind.UsingVariable; 270return this.DeclarationKind == LocalDeclarationKind.FixedVariable; 281return this.DeclarationKind == LocalDeclarationKind.ForEachIterationVariable; 291/// tracked by the EnC diffing algorithm. For example, for <see cref="LocalDeclarationKind.CatchVariable"/> variable 316case LocalDeclarationKind.Constant: 317case LocalDeclarationKind.FixedVariable: 318case LocalDeclarationKind.ForEachIterationVariable: 319case LocalDeclarationKind.UsingVariable:
Symbols\Source\SourceLocalSymbol.cs (30)
34private readonly LocalDeclarationKind _declarationKind; 79LocalDeclarationKind declarationKind) 82Debug.Assert(declarationKind != LocalDeclarationKind.None); 146return new ForEachLocalSymbol(containingMethod, binder, typeSyntax, identifierToken, collection, LocalDeclarationKind.ForEachIterationVariable); 172LocalDeclarationKind kind, 194LocalDeclarationKind kind, 210return typeSyntax?.SkipScoped(out _).SkipRef().IsVar != false && kind != LocalDeclarationKind.DeclarationExpressionVariable 241LocalDeclarationKind declarationKind, 245Debug.Assert(declarationKind != LocalDeclarationKind.ForEachIterationVariable); 256internal override LocalDeclarationKind DeclarationKind 530case LocalDeclarationKind.RegularVariable: 534case LocalDeclarationKind.Constant: 535case LocalDeclarationKind.FixedVariable: 536case LocalDeclarationKind.UsingVariable: 540case LocalDeclarationKind.ForEachIterationVariable: 544case LocalDeclarationKind.CatchVariable: 548case LocalDeclarationKind.OutVariable: 549case LocalDeclarationKind.DeclarationExpressionVariable: 550case LocalDeclarationKind.DeconstructionVariable: 551case LocalDeclarationKind.PatternVariable: 629LocalDeclarationKind declarationKind, 633Debug.Assert(declarationKind != LocalDeclarationKind.ForEachIterationVariable); 727LocalDeclarationKind declarationKind) : 730Debug.Assert(declarationKind == LocalDeclarationKind.ForEachIterationVariable); 761LocalDeclarationKind declarationKind, 808LocalDeclarationKind declarationKind, 812Debug.Assert(declarationKind is LocalDeclarationKind.OutVariable or LocalDeclarationKind.PatternVariable); 882Debug.Assert(this.DeclarationKind is LocalDeclarationKind.DeclarationExpressionVariable or LocalDeclarationKind.OutVariable);
Symbols\Synthesized\SynthesizedLocal.cs (2)
108internal sealed override LocalDeclarationKind DeclarationKind 110get { return LocalDeclarationKind.None; }
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (1)
45internal override LocalDeclarationKind DeclarationKind
Symbols\UpdatedContainingSymbolLocal.cs (1)
84internal override LocalDeclarationKind DeclarationKind => _underlyingLocal.DeclarationKind;