151 references to LocalDeclarationKind
Microsoft.CodeAnalysis.CSharp (100)
Binder\Binder_Expressions.cs (1)
2951Debug.Assert(localSymbol.DeclarationKind == LocalDeclarationKind.OutVariable);
Binder\Binder_Statements.cs (22)
202BindForOrUsingOrFixedDeclarations(declarationSyntax, LocalDeclarationKind.FixedVariable, diagnostics, out declarations); 724var kind = isConst ? LocalDeclarationKind.Constant : LocalDeclarationKind.RegularVariable; 951LocalDeclarationKind kind, 977LocalDeclarationKind kind, 1060if (kind != LocalDeclarationKind.FixedVariable) 1074if (kind == LocalDeclarationKind.FixedVariable) 1111if (kind == LocalDeclarationKind.FixedVariable || kind == LocalDeclarationKind.UsingVariable) 1124else if (kind == LocalDeclarationKind.Constant && initializerOpt != null && !localDiagnostics.HasAnyResolvedErrors()) 1203private SourceLocalSymbol LocateDeclaredVariableSymbol(VariableDeclaratorSyntax declarator, TypeSyntax typeSyntax, LocalDeclarationKind outerKind) 1205LocalDeclarationKind kind = outerKind == LocalDeclarationKind.UsingVariable ? LocalDeclarationKind.UsingVariable : LocalDeclarationKind.RegularVariable; 1209private SourceLocalSymbol LocateDeclaredVariableSymbol(SyntaxToken identifier, TypeSyntax typeSyntax, EqualsValueClauseSyntax equalsValue, LocalDeclarationKind kind) 2693internal BoundStatement BindForOrUsingOrFixedDeclarations(VariableDeclarationSyntax nodeOpt, LocalDeclarationKind localKind, BindingDiagnosticBag diagnostics, out ImmutableArray<BoundLocalDeclaration> declarations) 2702Debug.Assert(typeSyntax is not ScopedTypeSyntax || localKind is LocalDeclarationKind.RegularVariable or LocalDeclarationKind.UsingVariable); 2713if (localKind == LocalDeclarationKind.RegularVariable) 3233if (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)
556kind: LocalDeclarationKind.PatternVariable, 578kind: node.IsOutVarDeclaration() ? LocalDeclarationKind.OutVariable : LocalDeclarationKind.DeclarationExpressionVariable, 603kind: LocalDeclarationKind.DeconstructionVariable,
Binder\FixedStatementBinder.cs (1)
48locals.Add(MakeLocal(_syntax.Declaration, declarator, LocalDeclarationKind.FixedVariable, allowScoped: false));
Binder\ForEachLoopBinder.cs (4)
64LocalDeclarationKind.ForEachIterationVariable, 87LocalDeclarationKind kind, 124LocalDeclarationKind kind, 406iterationVariables.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)
199LocalDeclarationKind kind; 202kind = LocalDeclarationKind.Constant; 206kind = LocalDeclarationKind.UsingVariable; 210kind = LocalDeclarationKind.RegularVariable; 285protected 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)
1764if (local.DeclarationKind == LocalDeclarationKind.FixedVariable && local.IsPinned) // Excludes pointer local and string local in fixed string case.
CodeGen\Optimizer.cs (2)
2221internal override LocalDeclarationKind DeclarationKind 2223get { return LocalDeclarationKind.None; }
Compilation\CSharpSemanticModel.cs (2)
3275return (local is SourceLocalSymbol { DeclarationKind: LocalDeclarationKind.ForEachIterationVariable } sourceLocal 3314return ((object)local != null && local.DeclarationKind == LocalDeclarationKind.CatchVariable)
FlowAnalysis\DataFlowsOutWalker.cs (1)
162return local?.DeclarationKind == LocalDeclarationKind.CatchVariable ? local : null;
FlowAnalysis\DefiniteAssignment.cs (3)
2105if (local.DeclarationKind == LocalDeclarationKind.UsingVariable) 2161if (symbol.DeclarationKind != LocalDeclarationKind.PatternVariable && !string.IsNullOrEmpty(symbol.Name)) // avoid diagnostics for parser-inserted names 2523ReportIfUnused(local, assigned: local.DeclarationKind != LocalDeclarationKind.CatchVariable);
FlowAnalysis\NullableWalker.cs (2)
3246if (local.DeclarationKind != LocalDeclarationKind.None) 11093if (local.DeclarationKind == LocalDeclarationKind.CatchVariable)
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (2)
53internal override LocalDeclarationKind DeclarationKind => LocalDeclarationKind.None;
FlowAnalysis\VariablesDeclaredWalker.cs (1)
150if (local?.DeclarationKind == LocalDeclarationKind.CatchVariable)
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
545Debug.Assert(l.LocalSymbol.DeclarationKind == LocalDeclarationKind.PatternVariable);
Lowering\MethodToClassRewriter.cs (1)
496Debug.Assert(leftLocal.LocalSymbol.DeclarationKind == LocalDeclarationKind.None);
Symbols\LocalSymbol.cs (11)
26internal abstract LocalDeclarationKind DeclarationKind 221return this.DeclarationKind == LocalDeclarationKind.CatchVariable; 232return this.DeclarationKind == LocalDeclarationKind.Constant; 249return this.DeclarationKind == LocalDeclarationKind.UsingVariable; 260return this.DeclarationKind == LocalDeclarationKind.FixedVariable; 271return this.DeclarationKind == LocalDeclarationKind.ForEachIterationVariable; 280/// tracked by the EnC diffing algorithm. For example, for <see cref="LocalDeclarationKind.CatchVariable"/> variable 299case LocalDeclarationKind.Constant: 300case LocalDeclarationKind.FixedVariable: 301case LocalDeclarationKind.ForEachIterationVariable: 302case LocalDeclarationKind.UsingVariable:
Symbols\Source\SourceLocalSymbol.cs (27)
34private readonly LocalDeclarationKind _declarationKind; 46LocalDeclarationKind declarationKind) 49Debug.Assert(declarationKind != LocalDeclarationKind.None); 116return new ForEachLocalSymbol(containingMethod, binder, typeSyntax, identifierToken, collection, LocalDeclarationKind.ForEachIterationVariable); 142LocalDeclarationKind kind, 162LocalDeclarationKind kind, 179return typeSyntax?.SkipScoped(out _).SkipRef().IsVar != false && kind != LocalDeclarationKind.DeclarationExpressionVariable 208LocalDeclarationKind declarationKind, 212Debug.Assert(declarationKind != LocalDeclarationKind.ForEachIterationVariable); 223internal override LocalDeclarationKind DeclarationKind 433case LocalDeclarationKind.RegularVariable: 437case LocalDeclarationKind.Constant: 438case LocalDeclarationKind.FixedVariable: 439case LocalDeclarationKind.UsingVariable: 443case LocalDeclarationKind.ForEachIterationVariable: 447case LocalDeclarationKind.CatchVariable: 451case LocalDeclarationKind.OutVariable: 452case LocalDeclarationKind.DeclarationExpressionVariable: 453case LocalDeclarationKind.DeconstructionVariable: 454case LocalDeclarationKind.PatternVariable: 532LocalDeclarationKind declarationKind, 536Debug.Assert(declarationKind != LocalDeclarationKind.ForEachIterationVariable); 615LocalDeclarationKind declarationKind) : 618Debug.Assert(declarationKind == LocalDeclarationKind.ForEachIterationVariable); 655LocalDeclarationKind declarationKind, 719LocalDeclarationKind declarationKind, 796Debug.Assert(this.DeclarationKind == LocalDeclarationKind.DeclarationExpressionVariable);
Symbols\Synthesized\SynthesizedLocal.cs (2)
108internal sealed override LocalDeclarationKind DeclarationKind 110get { return LocalDeclarationKind.None; }
Symbols\Synthesized\TypeSubstitutedLocalSymbol.cs (1)
37internal override LocalDeclarationKind DeclarationKind
Symbols\UpdatedContainingSymbolLocal.cs (1)
84internal override LocalDeclarationKind DeclarationKind => _underlyingLocal.DeclarationKind;
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (11)
CodeGen\CodeGenDeconstructTests.cs (11)
3564VerifyModelForDeconstruction(model, decl, LocalDeclarationKind.DeconstructionVariable, references); 3567private static void VerifyModelForLocal(SemanticModel model, SingleVariableDesignationSyntax decl, LocalDeclarationKind kind, params IdentifierNameSyntax[] references) 3574VerifyModelForDeconstruction(model, decl, LocalDeclarationKind.ForEachIterationVariable, references); 3577private static void VerifyModelForDeconstruction(SemanticModel model, SingleVariableDesignationSyntax decl, LocalDeclarationKind kind, params IdentifierNameSyntax[] references) 7363VerifyModelForLocal(model, x1, LocalDeclarationKind.OutVariable, x1Ref); 7364VerifyModelForLocal(model, x2, LocalDeclarationKind.PatternVariable, x2Ref); 7397VerifyModelForLocal(model, x1, LocalDeclarationKind.OutVariable, x1Ref); 7438VerifyModelForLocal(model, x1, LocalDeclarationKind.OutVariable, x1Ref.ToArray()); 7439VerifyModelForLocal(model, x2, LocalDeclarationKind.PatternVariable, x2Ref.ToArray()); 7571VerifyModelForDeconstruction(model, x1, LocalDeclarationKind.DeclarationExpressionVariable, x1Ref); 7572VerifyModelForDeconstruction(model, x2, LocalDeclarationKind.DeclarationExpressionVariable, x2Ref);
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (8)
Semantics\PatternMatchingTestBase.cs (6)
84Assert.Equal(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 145Assert.Equal(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 171Assert.Equal(LocalDeclarationKind.RegularVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 180LocalDeclarationKind kind = LocalDeclarationKind.PatternVariable) 207Assert.NotEqual(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind);
Semantics\PatternMatchingTests3.cs (2)
1891VerifyModelForDuplicateVariableDeclarationInSameScope(model, strDecl[1], LocalDeclarationKind.DeclarationExpressionVariable); 1895VerifyModelForDuplicateVariableDeclarationInSameScope(model, arrDecl[1], LocalDeclarationKind.DeclarationExpressionVariable);
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (16)
CSharpEESymbolProvider.cs (3)
37LocalDeclarationKind kind; 42kind = LocalDeclarationKind.FixedVariable; 48kind = LocalDeclarationKind.RegularVariable;
EEAssemblyBuilder.cs (2)
84if (local.DeclarationKind == LocalDeclarationKind.Constant) 100if (local.DeclarationKind == LocalDeclarationKind.FixedVariable)
Symbols\DisplayClassInstance.cs (1)
47Debug.Assert(local.DeclarationKind == LocalDeclarationKind.RegularVariable);
Symbols\EEDisplayClassFieldLocalSymbol.cs (2)
40internal override LocalDeclarationKind DeclarationKind 42get { return LocalDeclarationKind.RegularVariable; }
Symbols\EELocalConstantSymbol.cs (2)
52internal override LocalDeclarationKind DeclarationKind 54get { return LocalDeclarationKind.Constant; }
Symbols\EELocalSymbol.cs (4)
20private readonly LocalDeclarationKind _declarationKind; 34LocalDeclarationKind declarationKind, 49LocalDeclarationKind declarationKind, 79internal override LocalDeclarationKind DeclarationKind
Symbols\PlaceholderLocalSymbol.cs (2)
84internal override LocalDeclarationKind DeclarationKind 86get { return LocalDeclarationKind.RegularVariable; }
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (16)
Semantics\DeconstructionTests.cs (11)
3953Assert.Equal(LocalDeclarationKind.DeconstructionVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 3967Assert.Equal(LocalDeclarationKind.DeconstructionVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 4219StandAlone_01_VerifySemanticModel(comp1, LocalDeclarationKind.DeclarationExpressionVariable); 4233StandAlone_01_VerifySemanticModel(comp2, LocalDeclarationKind.DeconstructionVariable); 4236private static void StandAlone_01_VerifySemanticModel(CSharpCompilation comp, LocalDeclarationKind localDeclarationKind) 5168StandAlone_14_VerifySemanticModel(comp1, LocalDeclarationKind.DeclarationExpressionVariable); 5182StandAlone_14_VerifySemanticModel(comp2, LocalDeclarationKind.DeconstructionVariable); 5185private static void StandAlone_14_VerifySemanticModel(CSharpCompilation comp, LocalDeclarationKind localDeclarationKind) 5636StandAlone_18_VerifySemanticModel(comp1, LocalDeclarationKind.DeclarationExpressionVariable); 5650StandAlone_18_VerifySemanticModel(comp2, LocalDeclarationKind.DeconstructionVariable); 5653private static void StandAlone_18_VerifySemanticModel(CSharpCompilation comp, LocalDeclarationKind localDeclarationKind)
Semantics\OutVarTests.cs (4)
931VerifyModelForOutVar(model, decl, isDelegateCreation: false, isExecutableCode: true, isShadowed: false, verifyDataFlow: false, expectedLocalKind: LocalDeclarationKind.DeclarationExpressionVariable, references: references); 961LocalDeclarationKind expectedLocalKind = LocalDeclarationKind.OutVariable, 1143Assert.Equal(LocalDeclarationKind.OutVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind);
Semantics\UnsafeTests.cs (1)
7345Assert.Equal(LocalDeclarationKind.FixedVariable, symbol.GetSymbol().DeclarationKind);