1 instantiation of SwitchExpressionSyntax
Microsoft.CodeAnalysis.CSharp (1)
Syntax.xml.Internal.Generated.cs (1)
14338internal override SyntaxNode CreateRed(SyntaxNode? parent, int position) => new CSharp.Syntax.SwitchExpressionSyntax(this, parent, position);
160 references to SwitchExpressionSyntax
Microsoft.CodeAnalysis.CSharp (36)
Binder\Binder_Expressions.cs (3)
322var exprSyntax = (SwitchExpressionSyntax)expr.Syntax; 739return BindSwitchExpression((SwitchExpressionSyntax)node, diagnostics);
Binder\Binder_Patterns.cs (2)
155private BoundExpression BindSwitchExpression(SwitchExpressionSyntax node, BindingDiagnosticBag diagnostics) 167SwitchExpressionSyntax node,
Binder\BuckStopsHereBinder.cs (1)
192internal override BoundExpression BindSwitchExpressionCore(SwitchExpressionSyntax node, Binder originalBinder, BindingDiagnosticBag diagnostics)
Binder\ExpressionVariableFinder.cs (1)
68public override void VisitSwitchExpression(SwitchExpressionSyntax node)
Binder\LocalBinderFactory.cs (1)
778public override void VisitSwitchExpression(SwitchExpressionSyntax node)
Binder\SwitchExpressionBinder.cs (5)
18private readonly SwitchExpressionSyntax SwitchExpressionSyntax; 20internal SwitchExpressionBinder(SwitchExpressionSyntax switchExpressionSyntax, Binder next) 26internal override BoundExpression BindSwitchExpressionCore(SwitchExpressionSyntax node, Binder originalBinder, BindingDiagnosticBag diagnostics) 62SwitchExpressionSyntax node, 186private ImmutableArray<BoundSwitchExpressionArm> BindSwitchExpressionArms(SwitchExpressionSyntax node, Binder originalBinder, BoundExpression inputExpression, BindingDiagnosticBag diagnostics)
FlowAnalysis\NullableWalker_Patterns.cs (1)
1007((SwitchExpressionSyntax)node.Syntax).SwitchKeyword.GetLocation(),
Lowering\LocalRewriter\LocalRewriter_SwitchExpression.cs (2)
73var syntax = (SwitchExpressionSyntax)node.Syntax;
Syntax.xml.Main.Generated.cs (7)
451public virtual TResult? VisitSwitchExpression(SwitchExpressionSyntax node) => this.DefaultVisit(node); 1198public virtual void VisitSwitchExpression(SwitchExpressionSyntax node) => this.DefaultVisit(node); 1944public override SyntaxNode? VisitSwitchExpression(SwitchExpressionSyntax node) 4652public static SwitchExpressionSyntax SwitchExpression(ExpressionSyntax governingExpression, SyntaxToken switchKeyword, SyntaxToken openBraceToken, SeparatedSyntaxList<SwitchExpressionArmSyntax> arms, SyntaxToken closeBraceToken) 4658return (SwitchExpressionSyntax)Syntax.InternalSyntax.SyntaxFactory.SwitchExpression((Syntax.InternalSyntax.ExpressionSyntax)governingExpression.Green, (Syntax.InternalSyntax.SyntaxToken)switchKeyword.Node!, (Syntax.InternalSyntax.SyntaxToken)openBraceToken.Node!, arms.Node.ToGreenSeparatedList<Syntax.InternalSyntax.SwitchExpressionArmSyntax>(), (Syntax.InternalSyntax.SyntaxToken)closeBraceToken.Node!).CreateRed(); 4662public static SwitchExpressionSyntax SwitchExpression(ExpressionSyntax governingExpression, SeparatedSyntaxList<SwitchExpressionArmSyntax> arms) 4666public static SwitchExpressionSyntax SwitchExpression(ExpressionSyntax governingExpression)
Syntax.xml.Syntax.Generated.cs (8)
8908public SwitchExpressionSyntax Update(ExpressionSyntax governingExpression, SyntaxToken switchKeyword, SyntaxToken openBraceToken, SeparatedSyntaxList<SwitchExpressionArmSyntax> arms, SyntaxToken closeBraceToken) 8912var newNode = SyntaxFactory.SwitchExpression(governingExpression, switchKeyword, openBraceToken, arms, closeBraceToken); 8920public SwitchExpressionSyntax WithGoverningExpression(ExpressionSyntax governingExpression) => Update(governingExpression, this.SwitchKeyword, this.OpenBraceToken, this.Arms, this.CloseBraceToken); 8921public SwitchExpressionSyntax WithSwitchKeyword(SyntaxToken switchKeyword) => Update(this.GoverningExpression, switchKeyword, this.OpenBraceToken, this.Arms, this.CloseBraceToken); 8922public SwitchExpressionSyntax WithOpenBraceToken(SyntaxToken openBraceToken) => Update(this.GoverningExpression, this.SwitchKeyword, openBraceToken, this.Arms, this.CloseBraceToken); 8923public SwitchExpressionSyntax WithArms(SeparatedSyntaxList<SwitchExpressionArmSyntax> arms) => Update(this.GoverningExpression, this.SwitchKeyword, this.OpenBraceToken, arms, this.CloseBraceToken); 8924public SwitchExpressionSyntax WithCloseBraceToken(SyntaxToken closeBraceToken) => Update(this.GoverningExpression, this.SwitchKeyword, this.OpenBraceToken, this.Arms, closeBraceToken); 8926public SwitchExpressionSyntax AddArms(params SwitchExpressionArmSyntax[] items) => WithArms(this.Arms.AddRange(items));
Syntax\LambdaUtilities.cs (1)
483return (node is SwitchExpressionSyntax switchExpression) ? switchExpression.SwitchKeyword.SpanStart : node.SpanStart;
Syntax\SyntaxNormalizer.cs (4)
282return currentToken.Parent is EnumDeclarationSyntax or SwitchExpressionSyntax ? 1 : 0; 291case SyntaxKind.SwitchKeyword when currentToken.Parent is SwitchExpressionSyntax: 384if (currentTokenParent is SwitchExpressionSyntax or PropertyPatternClauseSyntax || 693if (next.IsKind(SyntaxKind.SwitchKeyword) && next.Parent is SwitchExpressionSyntax)
Microsoft.CodeAnalysis.CSharp.CodeStyle (11)
src\Analyzers\CSharp\Analyzers\PopulateSwitch\CSharpPopulateSwitchExpressionDiagnosticAnalyzer.cs (2)
13AbstractPopulateSwitchExpressionDiagnosticAnalyzer<SwitchExpressionSyntax> 15protected override Location GetDiagnosticLocation(SwitchExpressionSyntax switchBlock)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (2)
1014var switchExpression = (SwitchExpressionSyntax)switchExpressionArm.GetRequiredParent();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (1)
109SwitchExpressionSyntax switchExpression => (switchExpression.OpenBraceToken, switchExpression.CloseBraceToken),
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (1)
176case SwitchExpressionSyntax switchExpression:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
871static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression }
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (1)
158if (parent is MemberDeclarationSyntax or SwitchStatementSyntax or SwitchExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (3)
483else if (currentOriginalNode is SwitchExpressionSyntax originalSwitchExpression && 486var replacedSwitchExpression = (SwitchExpressionSyntax)currentReplacedNode;
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (6)
src\Analyzers\CSharp\CodeFixes\PopulateSwitch\CSharpPopulateSwitchExpressionCodeFixProvider.cs (3)
26SwitchExpressionSyntax, 39protected override SwitchExpressionSyntax InsertSwitchArms(SyntaxGenerator generator, SwitchExpressionSyntax switchNode, int insertLocation, List<SwitchExpressionArmSyntax> newArms)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (3)
248SwitchExpressionSyntax switchExpression => InferTypeInSwitchExpression(switchExpression, token), 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2178private IEnumerable<TypeInferenceInfo> InferTypeInSwitchExpression(SwitchExpressionSyntax switchExpression, SyntaxToken token)
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (1)
Structure\SwitchExpressionStructureTests.cs (1)
16public sealed class SwitchExpressionStructureTests : AbstractCSharpSyntaxNodeStructureTests<SwitchExpressionSyntax>
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (1)
CodeGen\PatternTests.cs (1)
4999var switchExpressions = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().ToArray();
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (23)
Semantics\PatternMatchingTestBase.cs (1)
464SwitchExpressionSyntax n => ((BoundSwitchExpression)binder.BindExpression(n, BindingDiagnosticBag.Discarded)).ReachabilityDecisionDag,
Semantics\PatternMatchingTests_ListPatterns.cs (3)
6799() => VerifyDecisionDagDump<SwitchExpressionSyntax>(comp, 6817() => VerifyDecisionDagDump<SwitchExpressionSyntax>(comp, 6861VerifyDecisionDagDump<SwitchExpressionSyntax>(comp,
Semantics\PatternMatchingTests2.cs (2)
2898var switches = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().ToArray(); 2901var expr = switches[i];
Semantics\PatternMatchingTests3.cs (1)
3007VerifyOperationTreeForTest<SwitchExpressionSyntax>(compilation, @"
Semantics\PatternMatchingTests4.cs (14)
4278var @switch = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 4325var @switch = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 4407var @switch = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 4496var @switch = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 4585var @switch = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 4667var @switch = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 4751var @switch = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single();
Semantics\PatternMatchingTests5.cs (2)
2727VerifyDecisionDagDump<SwitchExpressionSyntax>(comp, 4338VerifyDecisionDagDump<SwitchExpressionSyntax>(comp,
Microsoft.CodeAnalysis.CSharp.Features (15)
EditAndContinue\BreakpointSpans.cs (1)
304node is SwitchExpressionSyntax switchExpression &&
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (5)
262var switchExpression = (SwitchExpressionSyntax)node; 343private static TextSpan GetActiveSpan(SwitchExpressionSyntax node, SwitchExpressionPart part) 628span = GetActiveSpan((SwitchExpressionSyntax)node, (SwitchExpressionPart)statementPart); 1924return ((SwitchExpressionSyntax)node).SwitchKeyword.Span;
src\Analyzers\CSharp\Analyzers\PopulateSwitch\CSharpPopulateSwitchExpressionDiagnosticAnalyzer.cs (2)
13AbstractPopulateSwitchExpressionDiagnosticAnalyzer<SwitchExpressionSyntax> 15protected override Location GetDiagnosticLocation(SwitchExpressionSyntax switchBlock)
src\Analyzers\CSharp\CodeFixes\PopulateSwitch\CSharpPopulateSwitchExpressionCodeFixProvider.cs (3)
26SwitchExpressionSyntax, 39protected override SwitchExpressionSyntax InsertSwitchArms(SyntaxGenerator generator, SwitchExpressionSyntax switchNode, int insertLocation, List<SwitchExpressionArmSyntax> newArms)
src\Compilers\CSharp\Portable\Syntax\LambdaUtilities.cs (1)
483return (node is SwitchExpressionSyntax switchExpression) ? switchExpression.SwitchKeyword.SpanStart : node.SpanStart;
Structure\CSharpBlockStructureProvider.cs (1)
50builder.Add<SwitchExpressionSyntax, SwitchExpressionStructureProvider>();
Structure\Providers\SwitchExpressionStructureProvider.cs (2)
13internal sealed class SwitchExpressionStructureProvider : AbstractSyntaxNodeStructureProvider<SwitchExpressionSyntax> 17SwitchExpressionSyntax node,
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (17)
IOperation\IOperationTests_ISwitchExpression.cs (17)
77VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 121VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 149VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 185VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 233VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 275VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 321VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 354VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 388VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 427VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 461VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 501VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 539VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 581VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 619VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 658VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics); 702VerifyOperationTreeAndDiagnosticsForTest<SwitchExpressionSyntax>(source, expectedOperationTree, expectedDiagnostics);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (16)
Semantics\NullCoalesceAssignmentTests.cs (6)
739var switchExpression = tree.GetCompilationUnitRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 783var switchExpression = tree.GetCompilationUnitRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 827var switchExpression = tree.GetCompilationUnitRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single();
Semantics\TargetTypedSwitchExpressionTests.cs (10)
42var switchExpression = tree.GetCompilationUnitRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 90var switchExpression = tree.GetCompilationUnitRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 139var switchExpression = tree.GetCompilationUnitRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 192var switchExpression = tree.GetCompilationUnitRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single(); 243var switchExpression = tree.GetCompilationUnitRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single();
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (1)
Symbols\Source\NullablePublicAPITests.cs (1)
5062var switchExpressionInput = tree.GetRoot().DescendantNodes().OfType<SwitchExpressionSyntax>().Single().GoverningExpression;
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (5)
Generated\Syntax.Test.xml.Generated.cs (5)
10835private static SwitchExpressionSyntax GenerateSwitchExpression() 12912var node = GenerateSwitchExpression(); 12919var newNode = node.WithGoverningExpression(node.GoverningExpression).WithSwitchKeyword(node.SwitchKeyword).WithOpenBraceToken(node.OpenBraceToken).WithArms(node.Arms).WithCloseBraceToken(node.CloseBraceToken); 18087var oldNode = GenerateSwitchExpression(); 18103var oldNode = GenerateSwitchExpression();
Microsoft.CodeAnalysis.CSharp.Workspaces (12)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (2)
1014var switchExpression = (SwitchExpressionSyntax)switchExpressionArm.GetRequiredParent();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (1)
109SwitchExpressionSyntax switchExpression => (switchExpression.OpenBraceToken, switchExpression.CloseBraceToken),
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (1)
176case SwitchExpressionSyntax switchExpression:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
871static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression }
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (1)
158if (parent is MemberDeclarationSyntax or SwitchStatementSyntax or SwitchExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (3)
483else if (currentOriginalNode is SwitchExpressionSyntax originalSwitchExpression && 486var replacedSwitchExpression = (SwitchExpressionSyntax)currentReplacedNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (3)
248SwitchExpressionSyntax switchExpression => InferTypeInSwitchExpression(switchExpression, token), 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2178private IEnumerable<TypeInferenceInfo> InferTypeInSwitchExpression(SwitchExpressionSyntax switchExpression, SyntaxToken token)
Microsoft.CodeAnalysis.Test.Utilities (3)
Compilation\ControlFlowGraphVerifier.cs (3)
597return reference.Syntax is CSharp.Syntax.SwitchExpressionSyntax switchExpr && switchExpr.Arms.Count == 0; 616if (syntax.Parent is CSharp.Syntax.SwitchExpressionSyntax switchExpr && switchExpr.GoverningExpression == syntax) 1178if (((CSharp.Syntax.SwitchExpressionSyntax)parent).GoverningExpression == syntax)
Microsoft.VisualStudio.LanguageServices.CSharp (1)
LanguageService\CSharpHelpContextService.cs (1)
512if (token.IsKind(SyntaxKind.SwitchKeyword) && token.Parent is SwitchExpressionSyntax)
Roslyn.Diagnostics.CSharp.Analyzers (12)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (2)
1014var switchExpression = (SwitchExpressionSyntax)switchExpressionArm.GetRequiredParent();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (1)
109SwitchExpressionSyntax switchExpression => (switchExpression.OpenBraceToken, switchExpression.CloseBraceToken),
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (1)
176case SwitchExpressionSyntax switchExpression:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
871static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression }
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (1)
158if (parent is MemberDeclarationSyntax or SwitchStatementSyntax or SwitchExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (3)
483else if (currentOriginalNode is SwitchExpressionSyntax originalSwitchExpression && 486var replacedSwitchExpression = (SwitchExpressionSyntax)currentReplacedNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (3)
248SwitchExpressionSyntax switchExpression => InferTypeInSwitchExpression(switchExpression, token), 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2178private IEnumerable<TypeInferenceInfo> InferTypeInSwitchExpression(SwitchExpressionSyntax switchExpression, SyntaxToken token)