134 references to LocalDeclarationKind
Microsoft.CodeAnalysis.CSharp (99)
Binder\Binder_Expressions.cs (1)
3219Debug.Assert(localSymbol.DeclarationKind == LocalDeclarationKind.OutVariable);
Binder\Binder_Statements.cs (21)
201BindForOrUsingOrFixedDeclarations(declarationSyntax, LocalDeclarationKind.FixedVariable, diagnostics, out declarations); 729var kind = isConst ? LocalDeclarationKind.Constant : LocalDeclarationKind.RegularVariable; 950LocalDeclarationKind kind, 976LocalDeclarationKind kind, 1059if (kind != LocalDeclarationKind.FixedVariable) 1073if (kind == LocalDeclarationKind.FixedVariable) 1110if (kind == LocalDeclarationKind.FixedVariable || kind == LocalDeclarationKind.UsingVariable) 1123else if (kind == LocalDeclarationKind.Constant && initializerOpt != null && !localDiagnostics.HasAnyResolvedErrors()) 1196private SourceLocalSymbol LocateDeclaredVariableSymbol(VariableDeclaratorSyntax declarator, TypeSyntax typeSyntax, LocalDeclarationKind outerKind, BindingDiagnosticBag diagnostics) 1198LocalDeclarationKind kind = outerKind == LocalDeclarationKind.UsingVariable ? LocalDeclarationKind.UsingVariable : LocalDeclarationKind.RegularVariable; 2808internal BoundStatement BindForOrUsingOrFixedDeclarations(VariableDeclarationSyntax nodeOpt, LocalDeclarationKind localKind, BindingDiagnosticBag diagnostics, out ImmutableArray<BoundLocalDeclaration> declarations) 2817Debug.Assert(typeSyntax is not ScopedTypeSyntax || localKind is LocalDeclarationKind.RegularVariable or LocalDeclarationKind.UsingVariable); 2828if (localKind == LocalDeclarationKind.RegularVariable) 3348if (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)
613kind: LocalDeclarationKind.PatternVariable, 635kind: node.IsOutVarDeclaration() ? LocalDeclarationKind.OutVariable : LocalDeclarationKind.DeclarationExpressionVariable, 660kind: 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)
1794if (local.DeclarationKind == LocalDeclarationKind.FixedVariable && local.IsPinned) // Excludes pointer local and string local in fixed string case.
CodeGen\Optimizer.cs (2)
2343internal override LocalDeclarationKind DeclarationKind 2345get { 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)
2274if (local.DeclarationKind == LocalDeclarationKind.UsingVariable) 2338if (symbol.DeclarationKind != LocalDeclarationKind.PatternVariable && !string.IsNullOrEmpty(symbol.Name)) // avoid diagnostics for parser-inserted names 2704ReportIfUnused(local, assigned: local.DeclarationKind != LocalDeclarationKind.CatchVariable);
FlowAnalysis\NullableWalker.cs (2)
3603if (local.DeclarationKind != LocalDeclarationKind.None) 12805if (local.DeclarationKind == LocalDeclarationKind.CatchVariable)
FlowAnalysis\NullableWalker.PlaceholderLocal.cs (2)
53internal override LocalDeclarationKind DeclarationKind => LocalDeclarationKind.None;
FlowAnalysis\VariablesDeclaredWalker.cs (1)
151if (local?.DeclarationKind == LocalDeclarationKind.CatchVariable)
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
549Debug.Assert(l.LocalSymbol.DeclarationKind == LocalDeclarationKind.PatternVariable);
Lowering\MethodToClassRewriter.cs (1)
279Debug.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; 281/// tracked by the EnC diffing algorithm. For example, for <see cref="LocalDeclarationKind.CatchVariable"/> variable 306case LocalDeclarationKind.Constant: 307case LocalDeclarationKind.FixedVariable: 308case LocalDeclarationKind.ForEachIterationVariable: 309case LocalDeclarationKind.UsingVariable:
Symbols\Source\SourceLocalSymbol.cs (27)
36private readonly LocalDeclarationKind _declarationKind; 48LocalDeclarationKind declarationKind) 51Debug.Assert(declarationKind != LocalDeclarationKind.None); 115return new ForEachLocalSymbol(containingMethod, binder, typeSyntax, identifierToken, collection, LocalDeclarationKind.ForEachIterationVariable); 141LocalDeclarationKind kind, 161LocalDeclarationKind kind, 178return typeSyntax?.SkipScoped(out _).SkipRef().IsVar != false && kind != LocalDeclarationKind.DeclarationExpressionVariable 207LocalDeclarationKind declarationKind, 211Debug.Assert(declarationKind != LocalDeclarationKind.ForEachIterationVariable); 222internal override LocalDeclarationKind DeclarationKind 432case LocalDeclarationKind.RegularVariable: 436case LocalDeclarationKind.Constant: 437case LocalDeclarationKind.FixedVariable: 438case LocalDeclarationKind.UsingVariable: 442case LocalDeclarationKind.ForEachIterationVariable: 446case LocalDeclarationKind.CatchVariable: 450case LocalDeclarationKind.OutVariable: 451case LocalDeclarationKind.DeclarationExpressionVariable: 452case LocalDeclarationKind.DeconstructionVariable: 453case LocalDeclarationKind.PatternVariable: 531LocalDeclarationKind declarationKind, 535Debug.Assert(declarationKind != LocalDeclarationKind.ForEachIterationVariable); 631LocalDeclarationKind declarationKind) : 634Debug.Assert(declarationKind == LocalDeclarationKind.ForEachIterationVariable); 671LocalDeclarationKind declarationKind, 735LocalDeclarationKind declarationKind, 812Debug.Assert(this.DeclarationKind == LocalDeclarationKind.DeclarationExpressionVariable);
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;
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.Emit3.UnitTests (12)
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\PatternMatchingTestBase.cs (6)
83Assert.Equal(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 144Assert.Equal(LocalDeclarationKind.PatternVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 170Assert.Equal(LocalDeclarationKind.RegularVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 179LocalDeclarationKind kind = LocalDeclarationKind.PatternVariable) 206Assert.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.Semantic.UnitTests (12)
Semantics\DeconstructionTests.cs (11)
3953Assert.Equal(LocalDeclarationKind.DeconstructionVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 3967Assert.Equal(LocalDeclarationKind.DeconstructionVariable, symbol.GetSymbol<LocalSymbol>().DeclarationKind); 4216StandAlone_01_VerifySemanticModel(comp1, LocalDeclarationKind.DeclarationExpressionVariable); 4230StandAlone_01_VerifySemanticModel(comp2, LocalDeclarationKind.DeconstructionVariable); 4233private static void StandAlone_01_VerifySemanticModel(CSharpCompilation comp, LocalDeclarationKind localDeclarationKind) 5165StandAlone_14_VerifySemanticModel(comp1, LocalDeclarationKind.DeclarationExpressionVariable); 5179StandAlone_14_VerifySemanticModel(comp2, LocalDeclarationKind.DeconstructionVariable); 5182private static void StandAlone_14_VerifySemanticModel(CSharpCompilation comp, LocalDeclarationKind localDeclarationKind) 5633StandAlone_18_VerifySemanticModel(comp1, LocalDeclarationKind.DeclarationExpressionVariable); 5647StandAlone_18_VerifySemanticModel(comp2, LocalDeclarationKind.DeconstructionVariable); 5650private static void StandAlone_18_VerifySemanticModel(CSharpCompilation comp, LocalDeclarationKind localDeclarationKind)
Semantics\UnsafeTests.cs (1)
10183Assert.Equal(LocalDeclarationKind.FixedVariable, symbol.GetSymbol().DeclarationKind);