137 references to LocalDeclarationKind
Microsoft.CodeAnalysis.CSharp (102)
Binder\Binder_Expressions.cs (1)
3231Debug.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; 2831internal BoundStatement BindForOrUsingOrFixedDeclarations(VariableDeclarationSyntax nodeOpt, LocalDeclarationKind localKind, BindingDiagnosticBag diagnostics, out ImmutableArray<BoundLocalDeclaration> declarations) 2840Debug.Assert(typeSyntax is not ScopedTypeSyntax || localKind is LocalDeclarationKind.RegularVariable or LocalDeclarationKind.UsingVariable); 2851if (localKind == LocalDeclarationKind.RegularVariable) 3371if (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)
2353internal override LocalDeclarationKind DeclarationKind 2355get { return LocalDeclarationKind.None; }
Compilation\CSharpSemanticModel.cs (2)
3283return (local is SourceLocalSymbol { DeclarationKind: LocalDeclarationKind.ForEachIterationVariable } sourceLocal 3322return ((object)local != null && local.DeclarationKind == LocalDeclarationKind.CatchVariable)
FlowAnalysis\DataFlowsOutWalker.cs (1)
162return local?.DeclarationKind == LocalDeclarationKind.CatchVariable ? local : null;
FlowAnalysis\DefiniteAssignment.cs (3)
2225if (local.DeclarationKind == LocalDeclarationKind.UsingVariable) 2281if (symbol.DeclarationKind != LocalDeclarationKind.PatternVariable && !string.IsNullOrEmpty(symbol.Name)) // avoid diagnostics for parser-inserted names 2649ReportIfUnused(local, assigned: local.DeclarationKind != LocalDeclarationKind.CatchVariable);
FlowAnalysis\NullableWalker.cs (2)
3624if (local.DeclarationKind != LocalDeclarationKind.None) 12967if (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)
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;
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)
929VerifyModelForOutVar(model, decl, isDelegateCreation: false, isExecutableCode: true, isShadowed: false, verifyDataFlow: false, expectedLocalKind: LocalDeclarationKind.DeclarationExpressionVariable, references: references); 959LocalDeclarationKind expectedLocalKind = LocalDeclarationKind.OutVariable, 1141Assert.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);