79 references to Expression
Microsoft.CodeAnalysis.CSharp (8)
Binder\ExpressionVariableFinder.cs (1)
80Visit(node.Expression);
Binder\LocalBinderFactory.cs (1)
794Visit(arm.Expression, armBinder);
Binder\SwitchExpressionArmBinder.cs (1)
46BoundExpression armResult = armBinder.BindValue(node.Expression, diagnostics, BindValueKind.RValue);
Syntax.xml.Main.Generated.cs (1)
1939=> node.Update((PatternSyntax?)Visit(node.Pattern) ?? throw new ArgumentNullException("pattern"), (WhenClauseSyntax?)Visit(node.WhenClause), VisitToken(node.EqualsGreaterThanToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"));
Syntax.xml.Syntax.Generated.cs (4)
8932if (pattern != this.Pattern || whenClause != this.WhenClause || equalsGreaterThanToken != this.EqualsGreaterThanToken || expression != this.Expression) 8942public SwitchExpressionArmSyntax WithPattern(PatternSyntax pattern) => Update(pattern, this.WhenClause, this.EqualsGreaterThanToken, this.Expression); 8943public SwitchExpressionArmSyntax WithWhenClause(WhenClauseSyntax? whenClause) => Update(this.Pattern, whenClause, this.EqualsGreaterThanToken, this.Expression); 8944public SwitchExpressionArmSyntax WithEqualsGreaterThanToken(SyntaxToken equalsGreaterThanToken) => Update(this.Pattern, this.WhenClause, equalsGreaterThanToken, this.Expression);
Microsoft.CodeAnalysis.CSharp.CodeStyle (7)
src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (1)
284if (current.Parent is SwitchExpressionArmSyntax switchArm && current == switchArm.Expression)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (1)
1019if (arm != switchExpressionArm && HasType(arm.Expression, out var armType))
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
300if (nodeParent is SwitchExpressionArmSyntax arm && arm.Expression == node)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
874static switchExpression => switchExpression.Arms.SelectAsArray(a => a.Expression), 880var arm = switchExpression.Arms.Single(a => a.Expression == armExpression); 883? switchExpression.Arms[1].Expression 884: switchExpression.Arms[armIndex - 1].Expression;
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (2)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (2)
2079var priorArmTypes = GetTypes(previousArm.Expression, objectAsDefault: false); 2087var priorArmTypes = GetTypes(nextArm.Expression, objectAsDefault: false);
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (39)
Semantics\PatternMatchingTests2.cs (39)
2889checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2890checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2891checkType(expr.Arms[2].Expression, null, "C", ConversionKind.ImplicitThrow); 2895checkType(expr.Arms[0].Expression, "A", "?", ConversionKind.NoConversion); 2896checkType(expr.Arms[1].Expression, "B", "?", ConversionKind.NoConversion); 2897checkType(expr.Arms[2].Expression, null, "?", ConversionKind.ImplicitThrow); 2901checkType(expr.Arms[0].Expression, "A", "D", ConversionKind.ImplicitUserDefined); 2902checkType(expr.Arms[1].Expression, "B", "D", ConversionKind.ImplicitUserDefined); 2903checkType(expr.Arms[2].Expression, null, "D", ConversionKind.ImplicitThrow); 2907checkType(expr.Arms[0].Expression, "E", "?", ConversionKind.NoConversion); 2908checkType(expr.Arms[1].Expression, "F", "?", ConversionKind.NoConversion); 2909checkType(expr.Arms[2].Expression, null, "?", ConversionKind.ImplicitThrow); 2914checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2915checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2916checkType(expr.Arms[2].Expression, "C", "C", ConversionKind.Identity); 2917checkType(expr.Arms[3].Expression, null, "C", ConversionKind.ImplicitThrow); 2921checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2922checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2923checkType(expr.Arms[2].Expression, "C", "C", ConversionKind.Identity); 2924checkType(expr.Arms[3].Expression, null, "C", ConversionKind.ImplicitThrow); 2928checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2929checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2930checkType(expr.Arms[2].Expression, "C", "C", ConversionKind.Identity); 2931checkType(expr.Arms[3].Expression, null, "C", ConversionKind.ImplicitThrow); 2935checkType(expr.Arms[0].Expression, "System.Int32", "D", ConversionKind.ImplicitUserDefined); 2936checkType(expr.Arms[1].Expression, "System.Int32", "D", ConversionKind.ImplicitUserDefined); 2937checkType(expr.Arms[2].Expression, null, "D", ConversionKind.ImplicitThrow); 2941checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2942checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2943checkType(expr.Arms[2].Expression, null, "C", ConversionKind.ImplicitThrow); 2948checkType(expr.Arms[0].Expression, "A", "D", ConversionKind.ImplicitUserDefined); 2949checkType(expr.Arms[1].Expression, "B", "D", ConversionKind.ImplicitUserDefined); 2950checkType(expr.Arms[2].Expression, null, "D", ConversionKind.ImplicitThrow); 2955checkType(expr.Arms[0].Expression, "E", "?", ConversionKind.NoConversion); 2956checkType(expr.Arms[1].Expression, "F", "?", ConversionKind.NoConversion); 2957checkType(expr.Arms[2].Expression, null, "?", ConversionKind.ImplicitThrow); 2962checkType(expr.Arms[0].Expression, "System.Int32", "D", ConversionKind.ImplicitUserDefined); 2963checkType(expr.Arms[1].Expression, "System.Int32", "D", ConversionKind.ImplicitUserDefined); 2964checkType(expr.Arms[2].Expression, null, "D", ConversionKind.ImplicitThrow);
Microsoft.CodeAnalysis.CSharp.Features (5)
EditAndContinue\BreakpointSpans.cs (2)
301=> CreateSpan((position <= switchArm.WhenClause?.FullSpan.End == true) ? switchArm.WhenClause : switchArm.Expression); 956Debug.Assert(((SwitchExpressionArmSyntax)parent).Expression == expression);
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (2)
288Debug.Assert(position == ((SwitchExpressionArmSyntax)node).Expression.SpanStart); 639span = ((SwitchExpressionArmSyntax)node).Expression.Span;
src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (1)
284if (current.Parent is SwitchExpressionArmSyntax switchArm && current == switchArm.Expression)
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (2)
Generated\Syntax.Test.xml.Generated.cs (2)
12877Assert.NotNull(node.Expression); 12878var newNode = node.WithPattern(node.Pattern).WithWhenClause(node.WhenClause).WithEqualsGreaterThanToken(node.EqualsGreaterThanToken).WithExpression(node.Expression);
Microsoft.CodeAnalysis.CSharp.Workspaces (8)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (1)
1019if (arm != switchExpressionArm && HasType(arm.Expression, out var armType))
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
300if (nodeParent is SwitchExpressionArmSyntax arm && arm.Expression == node)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
874static switchExpression => switchExpression.Arms.SelectAsArray(a => a.Expression), 880var arm = switchExpression.Arms.Single(a => a.Expression == armExpression); 883? switchExpression.Arms[1].Expression 884: switchExpression.Arms[armIndex - 1].Expression;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (2)
2079var priorArmTypes = GetTypes(previousArm.Expression, objectAsDefault: false); 2087var priorArmTypes = GetTypes(nextArm.Expression, objectAsDefault: false);
Roslyn.Diagnostics.CSharp.Analyzers (8)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (1)
1019if (arm != switchExpressionArm && HasType(arm.Expression, out var armType))
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
300if (nodeParent is SwitchExpressionArmSyntax arm && arm.Expression == node)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
874static switchExpression => switchExpression.Arms.SelectAsArray(a => a.Expression), 880var arm = switchExpression.Arms.Single(a => a.Expression == armExpression); 883? switchExpression.Arms[1].Expression 884: switchExpression.Arms[armIndex - 1].Expression;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (2)
2079var priorArmTypes = GetTypes(previousArm.Expression, objectAsDefault: false); 2087var priorArmTypes = GetTypes(nextArm.Expression, objectAsDefault: false);