47 types derived from ExpressionSyntax
Microsoft.CodeAnalysis.CSharp (47)
_generated\2\Syntax.xml.Syntax.Generated.cs (47)
309public abstract partial class TypeSyntax : ExpressionSyntax 1105public sealed partial class ParenthesizedExpressionSyntax : ExpressionSyntax 1154public sealed partial class TupleExpressionSyntax : ExpressionSyntax 1220public sealed partial class PrefixUnaryExpressionSyntax : ExpressionSyntax 1265public sealed partial class AwaitExpressionSyntax : ExpressionSyntax 1312public sealed partial class PostfixUnaryExpressionSyntax : ExpressionSyntax 1358public sealed partial class MemberAccessExpressionSyntax : ExpressionSyntax 1420public sealed partial class ConditionalAccessExpressionSyntax : ExpressionSyntax 1482public sealed partial class MemberBindingExpressionSyntax : ExpressionSyntax 1527public sealed partial class ElementBindingExpressionSyntax : ExpressionSyntax 1570public sealed partial class RangeExpressionSyntax : ExpressionSyntax 1632public sealed partial class ImplicitElementAccessSyntax : ExpressionSyntax 1696public sealed partial class BinaryExpressionSyntax : ExpressionSyntax 1770public sealed partial class AssignmentExpressionSyntax : ExpressionSyntax 1832public sealed partial class ConditionalExpressionSyntax : ExpressionSyntax 1899public abstract partial class InstanceExpressionSyntax : ExpressionSyntax 2002public sealed partial class LiteralExpressionSyntax : ExpressionSyntax 2042public sealed partial class FieldExpressionSyntax : ExpressionSyntax 2082public sealed partial class MakeRefExpressionSyntax : ExpressionSyntax 2135public sealed partial class RefTypeExpressionSyntax : ExpressionSyntax 2188public sealed partial class RefValueExpressionSyntax : ExpressionSyntax 2263public sealed partial class CheckedExpressionSyntax : ExpressionSyntax 2317public sealed partial class UnsafeExpressionSyntax : ExpressionSyntax 2371public sealed partial class DefaultExpressionSyntax : ExpressionSyntax 2424public sealed partial class TypeOfExpressionSyntax : ExpressionSyntax 2477public sealed partial class SizeOfExpressionSyntax : ExpressionSyntax 2530public sealed partial class InvocationExpressionSyntax : ExpressionSyntax 2590public sealed partial class ElementAccessExpressionSyntax : ExpressionSyntax 2962public sealed partial class DeclarationExpressionSyntax : ExpressionSyntax 3019public sealed partial class CastExpressionSyntax : ExpressionSyntax 3079public abstract partial class AnonymousFunctionExpressionSyntax : ExpressionSyntax 3368public sealed partial class RefExpressionSyntax : ExpressionSyntax 3535public sealed partial class InitializerExpressionSyntax : ExpressionSyntax 3586public abstract partial class BaseObjectCreationExpressionSyntax : ExpressionSyntax 3765public sealed partial class WithExpressionSyntax : ExpressionSyntax 3884public sealed partial class AnonymousObjectCreationExpressionSyntax : ExpressionSyntax 3946public sealed partial class ArrayCreationExpressionSyntax : ExpressionSyntax 4010public sealed partial class ImplicitArrayCreationExpressionSyntax : ExpressionSyntax 4077public sealed partial class StackAllocArrayCreationExpressionSyntax : ExpressionSyntax 4139public sealed partial class ImplicitStackAllocArrayCreationExpressionSyntax : ExpressionSyntax 4193public sealed partial class CollectionExpressionSyntax : ExpressionSyntax 4399public sealed partial class QueryExpressionSyntax : ExpressionSyntax 5059public sealed partial class OmittedArraySizeExpressionSyntax : ExpressionSyntax 5098public sealed partial class InterpolatedStringExpressionSyntax : ExpressionSyntax 5149public sealed partial class IsPatternExpressionSyntax : ExpressionSyntax 5209public sealed partial class ThrowExpressionSyntax : ExpressionSyntax 8957public sealed partial class SwitchExpressionSyntax : ExpressionSyntax
3605 references to ExpressionSyntax
Microsoft.Analyzers.Extra (11)
CallAnalysis\Fixers\LegacyLoggingFixer.cs (10)
70internal async Task<(ExpressionSyntax? invocationExpression, FixDetails? details)> 74if (root?.FindNode(span) is not ExpressionSyntax invocationExpression) 136ExpressionSyntax invocationExpression, 320private static async Task<(Document document, ExpressionSyntax expressionSyntax)> 321RemapAsync(Solution sol, DocumentId docId, ExpressionSyntax invocationExpression) 326return (doc, (root!.FindNode(invocationExpression.Span) as ExpressionSyntax)!); 465ExpressionSyntax invocationExpression, 524invocationExpression = (ExpressionSyntax)invocationExpression.Parent; 535private async Task<Solution> ApplyFixAsync(Document invocationDoc, ExpressionSyntax invocationExpression, FixDetails details, CancellationToken cancellationToken) 573ExpressionSyntax invocationExpression,
Utilities\SyntaxNodeExtensions.cs (1)
133public static bool IdentifierNameEquals(this ExpressionSyntax expression, string expectedName)
Microsoft.AspNetCore.App.Analyzers (2)
Infrastructure\VirtualChars\CSharpVirtualCharService.cs (1)
184SyntaxToken token, ExpressionSyntax parentExpression, bool tokenIncludeDelimiters)
RouteEmbeddedLanguage\Infrastructure\RouteUsageDetector.cs (1)
53ExpressionSyntax DelegateExpression);
Microsoft.AspNetCore.App.CodeFixes (1)
Kestrel\ListenOnIPv6AnyFixer.cs (1)
56var instanceVariableInvoked = memberAccessExpressionSyntax.Expression;
Microsoft.AspNetCore.Components.Analyzers (2)
PersistentStateAnalyzer.cs (1)
85private static bool IsDefaultValueInitializer(ExpressionSyntax expression)
SupplyParameterFromFormAnalyzer.cs (1)
85private static bool IsDefaultValueInitializer(ExpressionSyntax expression)
Microsoft.AspNetCore.Mvc.Api.Analyzers (3)
AddResponseTypeAttributeCodeFixAction.cs (3)
204var statusCodeSyntax = CreateStatusCodeSyntax(context, statusCode, out addUsingDirective); 217var statusCodeSyntax = CreateStatusCodeSyntax(context, statusCode, out addUsingDirective); 230private static ExpressionSyntax CreateStatusCodeSyntax(CodeActionContext context, int statusCode, out bool addUsingDirective)
Microsoft.CodeAnalysis.CSharp (1022)
_generated\0\Syntax.xml.Main.Generated.cs (252)
1591=> node.Update(VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken)); 1597=> node.Update(VisitToken(node.OperatorToken), (ExpressionSyntax?)Visit(node.Operand) ?? throw new ArgumentNullException("operand")); 1600=> node.Update(VisitToken(node.AwaitKeyword), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1603=> node.Update((ExpressionSyntax?)Visit(node.Operand) ?? throw new ArgumentNullException("operand"), VisitToken(node.OperatorToken)); 1606=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.OperatorToken), (SimpleNameSyntax?)Visit(node.Name) ?? throw new ArgumentNullException("name")); 1609=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.OperatorToken), (ExpressionSyntax?)Visit(node.WhenNotNull) ?? throw new ArgumentNullException("whenNotNull")); 1618=> node.Update((ExpressionSyntax?)Visit(node.LeftOperand), VisitToken(node.OperatorToken), (ExpressionSyntax?)Visit(node.RightOperand)); 1624=> node.Update((ExpressionSyntax?)Visit(node.Left) ?? throw new ArgumentNullException("left"), VisitToken(node.OperatorToken), (ExpressionSyntax?)Visit(node.Right) ?? throw new ArgumentNullException("right")); 1627=> node.Update((ExpressionSyntax?)Visit(node.Left) ?? throw new ArgumentNullException("left"), VisitToken(node.OperatorToken), (ExpressionSyntax?)Visit(node.Right) ?? throw new ArgumentNullException("right")); 1630=> node.Update((ExpressionSyntax?)Visit(node.Condition) ?? throw new ArgumentNullException("condition"), VisitToken(node.QuestionToken), (ExpressionSyntax?)Visit(node.WhenTrue) ?? throw new ArgumentNullException("whenTrue"), VisitToken(node.ColonToken), (ExpressionSyntax?)Visit(node.WhenFalse) ?? throw new ArgumentNullException("whenFalse")); 1645=> node.Update(VisitToken(node.Keyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken)); 1648=> node.Update(VisitToken(node.Keyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken)); 1651=> node.Update(VisitToken(node.Keyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.Comma), (TypeSyntax?)Visit(node.Type) ?? throw new ArgumentNullException("type"), VisitToken(node.CloseParenToken)); 1654=> node.Update(VisitToken(node.Keyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken)); 1658=> node.Update(VisitToken(node.Keyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken)); 1670=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), (ArgumentListSyntax?)Visit(node.ArgumentList) ?? throw new ArgumentNullException("argumentList")); 1673=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), (BracketedArgumentListSyntax?)Visit(node.ArgumentList) ?? throw new ArgumentNullException("argumentList")); 1682=> node.Update((NameColonSyntax?)Visit(node.NameColon), VisitToken(node.RefKindKeyword), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1685=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.ColonToken)); 1694=> node.Update(VisitToken(node.OpenParenToken), (TypeSyntax?)Visit(node.Type) ?? throw new ArgumentNullException("type"), VisitToken(node.CloseParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1697=> node.Update(VisitList(node.Modifiers), VisitToken(node.DelegateKeyword), (ParameterListSyntax?)Visit(node.ParameterList), (BlockSyntax?)Visit(node.Block) ?? throw new ArgumentNullException("block"), (ExpressionSyntax?)Visit(node.ExpressionBody)); 1700=> node.Update(VisitList(node.AttributeLists), VisitList(node.Modifiers), (ParameterSyntax?)Visit(node.Parameter) ?? throw new ArgumentNullException("parameter"), VisitToken(node.ArrowToken), (BlockSyntax?)Visit(node.Block), (ExpressionSyntax?)Visit(node.ExpressionBody)); 1703=> node.Update(VisitToken(node.RefKeyword), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1706=> node.Update(VisitList(node.AttributeLists), VisitList(node.Modifiers), (TypeSyntax?)Visit(node.ReturnType), (ParameterListSyntax?)Visit(node.ParameterList) ?? throw new ArgumentNullException("parameterList"), VisitToken(node.ArrowToken), (BlockSyntax?)Visit(node.Block), (ExpressionSyntax?)Visit(node.ExpressionBody)); 1718=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.WithKeyword), (InitializerExpressionSyntax?)Visit(node.Initializer) ?? throw new ArgumentNullException("initializer")); 1721=> node.Update((NameEqualsSyntax?)Visit(node.NameEquals), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1742=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1745=> node.Update(VisitToken(node.OperatorToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1758=> node.Update(VisitToken(node.FromKeyword), (TypeSyntax?)Visit(node.Type), VisitToken(node.Identifier), VisitToken(node.InKeyword), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1761=> node.Update(VisitToken(node.LetKeyword), VisitToken(node.Identifier), VisitToken(node.EqualsToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1764=> node.Update(VisitToken(node.JoinKeyword), (TypeSyntax?)Visit(node.Type), VisitToken(node.Identifier), VisitToken(node.InKeyword), (ExpressionSyntax?)Visit(node.InExpression) ?? throw new ArgumentNullException("inExpression"), VisitToken(node.OnKeyword), (ExpressionSyntax?)Visit(node.LeftExpression) ?? throw new ArgumentNullException("leftExpression"), VisitToken(node.EqualsKeyword), (ExpressionSyntax?)Visit(node.RightExpression) ?? throw new ArgumentNullException("rightExpression"), (JoinIntoClauseSyntax?)Visit(node.Into)); 1770=> node.Update(VisitToken(node.WhereKeyword), (ExpressionSyntax?)Visit(node.Condition) ?? throw new ArgumentNullException("condition")); 1776=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.AscendingOrDescendingKeyword)); 1779=> node.Update(VisitToken(node.SelectKeyword), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1782=> node.Update(VisitToken(node.GroupKeyword), (ExpressionSyntax?)Visit(node.GroupExpression) ?? throw new ArgumentNullException("groupExpression"), VisitToken(node.ByKeyword), (ExpressionSyntax?)Visit(node.ByExpression) ?? throw new ArgumentNullException("byExpression")); 1794=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.IsKeyword), (PatternSyntax?)Visit(node.Pattern) ?? throw new ArgumentNullException("pattern")); 1797=> node.Update(VisitToken(node.ThrowKeyword), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1800=> node.Update(VisitToken(node.WhenKeyword), (ExpressionSyntax?)Visit(node.Condition) ?? throw new ArgumentNullException("condition")); 1824=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1830=> node.Update(VisitToken(node.OperatorToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 1851=> node.Update(VisitToken(node.OpenBraceToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), (InterpolationAlignmentClauseSyntax?)Visit(node.AlignmentClause), (InterpolationFormatClauseSyntax?)Visit(node.FormatClause), VisitToken(node.CloseBraceToken)); 1854=> node.Update(VisitToken(node.CommaToken), (ExpressionSyntax?)Visit(node.Value) ?? throw new ArgumentNullException("value")); 1878=> node.Update(VisitToken(node.EqualsToken), (ExpressionSyntax?)Visit(node.Value) ?? throw new ArgumentNullException("value")); 1890=> node.Update(VisitList(node.AttributeLists), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.SemicolonToken)); 1899=> node.Update(VisitList(node.AttributeLists), VisitToken(node.GotoKeyword), VisitToken(node.CaseOrDefaultKeyword), (ExpressionSyntax?)Visit(node.Expression), VisitToken(node.SemicolonToken)); 1908=> node.Update(VisitList(node.AttributeLists), VisitToken(node.ReturnKeyword), (ExpressionSyntax?)Visit(node.Expression), VisitToken(node.SemicolonToken)); 1911=> node.Update(VisitList(node.AttributeLists), VisitToken(node.ThrowKeyword), (ExpressionSyntax?)Visit(node.Expression), VisitToken(node.SemicolonToken)); 1914=> node.Update(VisitList(node.AttributeLists), VisitToken(node.YieldKeyword), VisitToken(node.ReturnOrBreakKeyword), (ExpressionSyntax?)Visit(node.Expression), VisitToken(node.SemicolonToken)); 1917=> node.Update(VisitList(node.AttributeLists), VisitToken(node.WhileKeyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Condition) ?? throw new ArgumentNullException("condition"), VisitToken(node.CloseParenToken), (StatementSyntax?)Visit(node.Statement) ?? throw new ArgumentNullException("statement")); 1920=> node.Update(VisitList(node.AttributeLists), VisitToken(node.DoKeyword), (StatementSyntax?)Visit(node.Statement) ?? throw new ArgumentNullException("statement"), VisitToken(node.WhileKeyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Condition) ?? throw new ArgumentNullException("condition"), VisitToken(node.CloseParenToken), VisitToken(node.SemicolonToken)); 1923=> node.Update(VisitList(node.AttributeLists), VisitToken(node.ForKeyword), VisitToken(node.OpenParenToken), (VariableDeclarationSyntax?)Visit(node.Declaration), VisitList(node.Initializers), VisitToken(node.FirstSemicolonToken), (ExpressionSyntax?)Visit(node.Condition), VisitToken(node.SecondSemicolonToken), VisitList(node.Incrementors), VisitToken(node.CloseParenToken), (StatementSyntax?)Visit(node.Statement) ?? throw new ArgumentNullException("statement")); 1926=> node.Update(VisitList(node.AttributeLists), VisitToken(node.AwaitKeyword), VisitToken(node.ForEachKeyword), VisitToken(node.OpenParenToken), (TypeSyntax?)Visit(node.Type) ?? throw new ArgumentNullException("type"), VisitToken(node.Identifier), VisitToken(node.InKeyword), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken), (StatementSyntax?)Visit(node.Statement) ?? throw new ArgumentNullException("statement")); 1929=> node.Update(VisitList(node.AttributeLists), VisitToken(node.AwaitKeyword), VisitToken(node.ForEachKeyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Variable) ?? throw new ArgumentNullException("variable"), VisitToken(node.InKeyword), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken), (StatementSyntax?)Visit(node.Statement) ?? throw new ArgumentNullException("statement")); 1932=> node.Update(VisitList(node.AttributeLists), VisitToken(node.AwaitKeyword), VisitToken(node.UsingKeyword), VisitToken(node.OpenParenToken), (VariableDeclarationSyntax?)Visit(node.Declaration), (ExpressionSyntax?)Visit(node.Expression), VisitToken(node.CloseParenToken), (StatementSyntax?)Visit(node.Statement) ?? throw new ArgumentNullException("statement")); 1944=> node.Update(VisitList(node.AttributeLists), VisitToken(node.LockKeyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken), (StatementSyntax?)Visit(node.Statement) ?? throw new ArgumentNullException("statement")); 1947=> node.Update(VisitList(node.AttributeLists), VisitToken(node.IfKeyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Condition) ?? throw new ArgumentNullException("condition"), VisitToken(node.CloseParenToken), (StatementSyntax?)Visit(node.Statement) ?? throw new ArgumentNullException("statement"), (ElseClauseSyntax?)Visit(node.Else)); 1953=> node.Update(VisitList(node.AttributeLists), VisitToken(node.SwitchKeyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.CloseParenToken), VisitToken(node.OpenBraceToken), VisitList(node.Sections), VisitToken(node.CloseBraceToken)); 1962=> node.Update(VisitToken(node.Keyword), (ExpressionSyntax?)Visit(node.Value) ?? throw new ArgumentNullException("value"), VisitToken(node.ColonToken)); 1968=> node.Update((ExpressionSyntax?)Visit(node.GoverningExpression) ?? throw new ArgumentNullException("governingExpression"), VisitToken(node.SwitchKeyword), VisitToken(node.OpenBraceToken), VisitList(node.Arms), VisitToken(node.CloseBraceToken)); 1971=> 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")); 1983=> node.Update(VisitToken(node.WhenKeyword), VisitToken(node.OpenParenToken), (ExpressionSyntax?)Visit(node.FilterExpression) ?? throw new ArgumentNullException("filterExpression"), VisitToken(node.CloseParenToken)); 2016=> node.Update((NameEqualsSyntax?)Visit(node.NameEquals), (NameColonSyntax?)Visit(node.NameColon), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 2116=> node.Update(VisitToken(node.ArrowToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression")); 2221=> node.Update(VisitToken(node.HashToken), VisitToken(node.IfKeyword), (ExpressionSyntax?)Visit(node.Condition) ?? throw new ArgumentNullException("condition"), VisitToken(node.EndOfDirectiveToken), node.IsActive, node.BranchTaken, node.ConditionValue); 2224=> node.Update(VisitToken(node.HashToken), VisitToken(node.ElifKeyword), (ExpressionSyntax?)Visit(node.Condition) ?? throw new ArgumentNullException("condition"), VisitToken(node.EndOfDirectiveToken), node.IsActive, node.BranchTaken, node.ConditionValue); 2395public static ArrayRankSpecifierSyntax ArrayRankSpecifier(SyntaxToken openBracketToken, SeparatedSyntaxList<ExpressionSyntax> sizes, SyntaxToken closeBracketToken) 2403public static ArrayRankSpecifierSyntax ArrayRankSpecifier(SeparatedSyntaxList<ExpressionSyntax> sizes = default) 2565public static ParenthesizedExpressionSyntax ParenthesizedExpression(SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 2574public static ParenthesizedExpressionSyntax ParenthesizedExpression(ExpressionSyntax expression) 2590public static PrefixUnaryExpressionSyntax PrefixUnaryExpression(SyntaxKind kind, SyntaxToken operatorToken, ExpressionSyntax operand) 2623public static PrefixUnaryExpressionSyntax PrefixUnaryExpression(SyntaxKind kind, ExpressionSyntax operand) 2642public static AwaitExpressionSyntax AwaitExpression(SyntaxToken awaitKeyword, ExpressionSyntax expression) 2650public static AwaitExpressionSyntax AwaitExpression(ExpressionSyntax expression) 2654public static PostfixUnaryExpressionSyntax PostfixUnaryExpression(SyntaxKind kind, ExpressionSyntax operand, SyntaxToken operatorToken) 2675public static PostfixUnaryExpressionSyntax PostfixUnaryExpression(SyntaxKind kind, ExpressionSyntax operand) 2688public static MemberAccessExpressionSyntax MemberAccessExpression(SyntaxKind kind, ExpressionSyntax expression, SyntaxToken operatorToken, SimpleNameSyntax name) 2708public static MemberAccessExpressionSyntax MemberAccessExpression(SyntaxKind kind, ExpressionSyntax expression, SimpleNameSyntax name) 2720public static ConditionalAccessExpressionSyntax ConditionalAccessExpression(ExpressionSyntax expression, SyntaxToken operatorToken, ExpressionSyntax whenNotNull) 2729public static ConditionalAccessExpressionSyntax ConditionalAccessExpression(ExpressionSyntax expression, ExpressionSyntax whenNotNull) 2756public static RangeExpressionSyntax RangeExpression(ExpressionSyntax? leftOperand, SyntaxToken operatorToken, ExpressionSyntax? rightOperand) 2763public static RangeExpressionSyntax RangeExpression(ExpressionSyntax? leftOperand, ExpressionSyntax? rightOperand) 2782public static BinaryExpressionSyntax BinaryExpression(SyntaxKind kind, ExpressionSyntax left, SyntaxToken operatorToken, ExpressionSyntax right) 2842public static BinaryExpressionSyntax BinaryExpression(SyntaxKind kind, ExpressionSyntax left, ExpressionSyntax right) 2874public static AssignmentExpressionSyntax AssignmentExpression(SyntaxKind kind, ExpressionSyntax left, SyntaxToken operatorToken, ExpressionSyntax right) 2916public static AssignmentExpressionSyntax AssignmentExpression(SyntaxKind kind, ExpressionSyntax left, ExpressionSyntax right) 2939public static ConditionalExpressionSyntax ConditionalExpression(ExpressionSyntax condition, SyntaxToken questionToken, ExpressionSyntax whenTrue, SyntaxToken colonToken, ExpressionSyntax whenFalse) 2950public static ConditionalExpressionSyntax ConditionalExpression(ExpressionSyntax condition, ExpressionSyntax whenTrue, ExpressionSyntax whenFalse) 3023public static MakeRefExpressionSyntax MakeRefExpression(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 3033public static MakeRefExpressionSyntax MakeRefExpression(ExpressionSyntax expression) 3037public static RefTypeExpressionSyntax RefTypeExpression(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 3047public static RefTypeExpressionSyntax RefTypeExpression(ExpressionSyntax expression) 3051public static RefValueExpressionSyntax RefValueExpression(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken comma, TypeSyntax type, SyntaxToken closeParenToken) 3063public static RefValueExpressionSyntax RefValueExpression(ExpressionSyntax expression, TypeSyntax type) 3067public static CheckedExpressionSyntax CheckedExpression(SyntaxKind kind, SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 3088public static CheckedExpressionSyntax CheckedExpression(SyntaxKind kind, ExpressionSyntax expression) 3101public static UnsafeExpressionSyntax UnsafeExpression(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 3112public static UnsafeExpressionSyntax UnsafeExpression(ExpressionSyntax expression) 3158public static InvocationExpressionSyntax InvocationExpression(ExpressionSyntax expression, ArgumentListSyntax argumentList) 3166public static InvocationExpressionSyntax InvocationExpression(ExpressionSyntax expression) 3170public static ElementAccessExpressionSyntax ElementAccessExpression(ExpressionSyntax expression, BracketedArgumentListSyntax argumentList) 3178public static ElementAccessExpressionSyntax ElementAccessExpression(ExpressionSyntax expression) 3206public static ArgumentSyntax Argument(NameColonSyntax? nameColon, SyntaxToken refKindKeyword, ExpressionSyntax expression) 3221public static ArgumentSyntax Argument(ExpressionSyntax expression) 3225public static ExpressionColonSyntax ExpressionColon(ExpressionSyntax expression, SyntaxToken colonToken) 3249public static CastExpressionSyntax CastExpression(SyntaxToken openParenToken, TypeSyntax type, SyntaxToken closeParenToken, ExpressionSyntax expression) 3259public static CastExpressionSyntax CastExpression(TypeSyntax type, ExpressionSyntax expression) 3263public static AnonymousMethodExpressionSyntax AnonymousMethodExpression(SyntaxTokenList modifiers, SyntaxToken delegateKeyword, ParameterListSyntax? parameterList, BlockSyntax block, ExpressionSyntax? expressionBody) 3271public static SimpleLambdaExpressionSyntax SimpleLambdaExpression(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, ParameterSyntax parameter, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 3279public static RefExpressionSyntax RefExpression(SyntaxToken refKeyword, ExpressionSyntax expression) 3287public static RefExpressionSyntax RefExpression(ExpressionSyntax expression) 3291public static ParenthesizedLambdaExpressionSyntax ParenthesizedLambdaExpression(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, TypeSyntax? returnType, ParameterListSyntax parameterList, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 3299public static ParenthesizedLambdaExpressionSyntax ParenthesizedLambdaExpression(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, TypeSyntax? returnType, ParameterListSyntax parameterList, BlockSyntax? block, ExpressionSyntax? expressionBody) 3307public static InitializerExpressionSyntax InitializerExpression(SyntaxKind kind, SyntaxToken openBraceToken, SeparatedSyntaxList<ExpressionSyntax> expressions, SyntaxToken closeBraceToken) 3324public static InitializerExpressionSyntax InitializerExpression(SyntaxKind kind, SeparatedSyntaxList<ExpressionSyntax> expressions = default) 3360public static WithExpressionSyntax WithExpression(ExpressionSyntax expression, SyntaxToken withKeyword, InitializerExpressionSyntax initializer) 3369public static WithExpressionSyntax WithExpression(ExpressionSyntax expression, InitializerExpressionSyntax initializer) 3373public static AnonymousObjectMemberDeclaratorSyntax AnonymousObjectMemberDeclarator(NameEqualsSyntax? nameEquals, ExpressionSyntax expression) 3380public static AnonymousObjectMemberDeclaratorSyntax AnonymousObjectMemberDeclarator(ExpressionSyntax expression) 3473public static ExpressionElementSyntax ExpressionElement(ExpressionSyntax expression) 3480public static SpreadElementSyntax SpreadElement(SyntaxToken operatorToken, ExpressionSyntax expression) 3488public static SpreadElementSyntax SpreadElement(ExpressionSyntax expression) 3525public static FromClauseSyntax FromClause(SyntaxToken fromKeyword, TypeSyntax? type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression) 3535public static FromClauseSyntax FromClause(TypeSyntax? type, SyntaxToken identifier, ExpressionSyntax expression) 3539public static FromClauseSyntax FromClause(SyntaxToken identifier, ExpressionSyntax expression) 3543public static FromClauseSyntax FromClause(string identifier, ExpressionSyntax expression) 3547public static LetClauseSyntax LetClause(SyntaxToken letKeyword, SyntaxToken identifier, SyntaxToken equalsToken, ExpressionSyntax expression) 3557public static LetClauseSyntax LetClause(SyntaxToken identifier, ExpressionSyntax expression) 3561public static LetClauseSyntax LetClause(string identifier, ExpressionSyntax expression) 3565public static JoinClauseSyntax JoinClause(SyntaxToken joinKeyword, TypeSyntax? type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax inExpression, SyntaxToken onKeyword, ExpressionSyntax leftExpression, SyntaxToken equalsKeyword, ExpressionSyntax rightExpression, JoinIntoClauseSyntax? into) 3579public static JoinClauseSyntax JoinClause(TypeSyntax? type, SyntaxToken identifier, ExpressionSyntax inExpression, ExpressionSyntax leftExpression, ExpressionSyntax rightExpression, JoinIntoClauseSyntax? into) 3583public static JoinClauseSyntax JoinClause(SyntaxToken identifier, ExpressionSyntax inExpression, ExpressionSyntax leftExpression, ExpressionSyntax rightExpression) 3587public static JoinClauseSyntax JoinClause(string identifier, ExpressionSyntax inExpression, ExpressionSyntax leftExpression, ExpressionSyntax rightExpression) 3607public static WhereClauseSyntax WhereClause(SyntaxToken whereKeyword, ExpressionSyntax condition) 3615public static WhereClauseSyntax WhereClause(ExpressionSyntax condition) 3630public static OrderingSyntax Ordering(SyntaxKind kind, ExpressionSyntax expression, SyntaxToken ascendingOrDescendingKeyword) 3650public static OrderingSyntax Ordering(SyntaxKind kind, ExpressionSyntax expression) 3662public static SelectClauseSyntax SelectClause(SyntaxToken selectKeyword, ExpressionSyntax expression) 3670public static SelectClauseSyntax SelectClause(ExpressionSyntax expression) 3674public static GroupClauseSyntax GroupClause(SyntaxToken groupKeyword, ExpressionSyntax groupExpression, SyntaxToken byKeyword, ExpressionSyntax byExpression) 3684public static GroupClauseSyntax GroupClause(ExpressionSyntax groupExpression, ExpressionSyntax byExpression) 3740public static IsPatternExpressionSyntax IsPatternExpression(ExpressionSyntax expression, SyntaxToken isKeyword, PatternSyntax pattern) 3749public static IsPatternExpressionSyntax IsPatternExpression(ExpressionSyntax expression, PatternSyntax pattern) 3753public static ThrowExpressionSyntax ThrowExpression(SyntaxToken throwKeyword, ExpressionSyntax expression) 3761public static ThrowExpressionSyntax ThrowExpression(ExpressionSyntax expression) 3765public static WhenClauseSyntax WhenClause(SyntaxToken whenKeyword, ExpressionSyntax condition) 3773public static WhenClauseSyntax WhenClause(ExpressionSyntax condition) 3853public static ConstantPatternSyntax ConstantPattern(ExpressionSyntax expression) 3873public static RelationalPatternSyntax RelationalPattern(SyntaxToken operatorToken, ExpressionSyntax expression) 3979public static InterpolationSyntax Interpolation(SyntaxToken openBraceToken, ExpressionSyntax expression, InterpolationAlignmentClauseSyntax? alignmentClause, InterpolationFormatClauseSyntax? formatClause, SyntaxToken closeBraceToken) 3988public static InterpolationSyntax Interpolation(ExpressionSyntax expression, InterpolationAlignmentClauseSyntax? alignmentClause, InterpolationFormatClauseSyntax? formatClause) 3992public static InterpolationSyntax Interpolation(ExpressionSyntax expression) 3996public static InterpolationAlignmentClauseSyntax InterpolationAlignmentClause(SyntaxToken commaToken, ExpressionSyntax value) 4124public static EqualsValueClauseSyntax EqualsValueClause(SyntaxToken equalsToken, ExpressionSyntax value) 4132public static EqualsValueClauseSyntax EqualsValueClause(ExpressionSyntax value) 4166public static ExpressionStatementSyntax ExpressionStatement(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax expression, SyntaxToken semicolonToken) 4174public static ExpressionStatementSyntax ExpressionStatement(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax expression) 4178public static ExpressionStatementSyntax ExpressionStatement(ExpressionSyntax expression) 4218public static GotoStatementSyntax GotoStatement(SyntaxKind kind, SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken gotoKeyword, SyntaxToken caseOrDefaultKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 4240public static GotoStatementSyntax GotoStatement(SyntaxKind kind, SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken caseOrDefaultKeyword, ExpressionSyntax? expression) 4245public static GotoStatementSyntax GotoStatement(SyntaxKind kind, ExpressionSyntax? expression = default) 4292public static ReturnStatementSyntax ReturnStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken returnKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 4300public static ReturnStatementSyntax ReturnStatement(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax? expression) 4305public static ReturnStatementSyntax ReturnStatement(ExpressionSyntax? expression = default) 4310public static ThrowStatementSyntax ThrowStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken throwKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 4318public static ThrowStatementSyntax ThrowStatement(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax? expression) 4323public static ThrowStatementSyntax ThrowStatement(ExpressionSyntax? expression = default) 4328public static YieldStatementSyntax YieldStatement(SyntaxKind kind, SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken yieldKeyword, SyntaxToken returnOrBreakKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 4348public static YieldStatementSyntax YieldStatement(SyntaxKind kind, SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax? expression) 4353public static YieldStatementSyntax YieldStatement(SyntaxKind kind, ExpressionSyntax? expression = default) 4366public static WhileStatementSyntax WhileStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken whileKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, StatementSyntax statement) 4377public static WhileStatementSyntax WhileStatement(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax condition, StatementSyntax statement) 4381public static WhileStatementSyntax WhileStatement(ExpressionSyntax condition, StatementSyntax statement) 4385public static DoStatementSyntax DoStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken doKeyword, StatementSyntax statement, SyntaxToken whileKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, SyntaxToken semicolonToken) 4398public static DoStatementSyntax DoStatement(SyntaxList<AttributeListSyntax> attributeLists, StatementSyntax statement, ExpressionSyntax condition) 4402public static DoStatementSyntax DoStatement(StatementSyntax statement, ExpressionSyntax condition) 4406public static ForStatementSyntax ForStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken forKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, SeparatedSyntaxList<ExpressionSyntax> initializers, SyntaxToken firstSemicolonToken, ExpressionSyntax? condition, SyntaxToken secondSemicolonToken, SeparatedSyntaxList<ExpressionSyntax> incrementors, SyntaxToken closeParenToken, StatementSyntax statement) 4418public static ForStatementSyntax ForStatement(SyntaxList<AttributeListSyntax> attributeLists, VariableDeclarationSyntax? declaration, SeparatedSyntaxList<ExpressionSyntax> initializers, ExpressionSyntax? condition, SeparatedSyntaxList<ExpressionSyntax> incrementors, StatementSyntax statement) 4426public static ForEachStatementSyntax ForEachStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 4446public static ForEachStatementSyntax ForEachStatement(SyntaxList<AttributeListSyntax> attributeLists, TypeSyntax type, SyntaxToken identifier, ExpressionSyntax expression, StatementSyntax statement) 4450public static ForEachStatementSyntax ForEachStatement(TypeSyntax type, SyntaxToken identifier, ExpressionSyntax expression, StatementSyntax statement) 4454public static ForEachStatementSyntax ForEachStatement(TypeSyntax type, string identifier, ExpressionSyntax expression, StatementSyntax statement) 4458public static ForEachVariableStatementSyntax ForEachVariableStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, ExpressionSyntax variable, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 4477public static ForEachVariableStatementSyntax ForEachVariableStatement(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax variable, ExpressionSyntax expression, StatementSyntax statement) 4481public static ForEachVariableStatementSyntax ForEachVariableStatement(ExpressionSyntax variable, ExpressionSyntax expression, StatementSyntax statement) 4485public static UsingStatementSyntax UsingStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken usingKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, ExpressionSyntax? expression, SyntaxToken closeParenToken, StatementSyntax statement) 4501public static UsingStatementSyntax UsingStatement(SyntaxList<AttributeListSyntax> attributeLists, VariableDeclarationSyntax? declaration, ExpressionSyntax? expression, StatementSyntax statement) 4583public static LockStatementSyntax LockStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken lockKeyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 4594public static LockStatementSyntax LockStatement(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax expression, StatementSyntax statement) 4598public static LockStatementSyntax LockStatement(ExpressionSyntax expression, StatementSyntax statement) 4602public static IfStatementSyntax IfStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken ifKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, StatementSyntax statement, ElseClauseSyntax? @else) 4613public static IfStatementSyntax IfStatement(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax condition, StatementSyntax statement, ElseClauseSyntax? @else) 4617public static IfStatementSyntax IfStatement(ExpressionSyntax condition, StatementSyntax statement) 4633public static SwitchStatementSyntax SwitchStatement(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken switchKeyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken, SyntaxToken openBraceToken, SyntaxList<SwitchSectionSyntax> sections, SyntaxToken closeBraceToken) 4682public static CaseSwitchLabelSyntax CaseSwitchLabel(SyntaxToken keyword, ExpressionSyntax value, SyntaxToken colonToken) 4691public static CaseSwitchLabelSyntax CaseSwitchLabel(ExpressionSyntax value, SyntaxToken colonToken) 4707public static SwitchExpressionSyntax SwitchExpression(ExpressionSyntax governingExpression, SyntaxToken switchKeyword, SyntaxToken openBraceToken, SeparatedSyntaxList<SwitchExpressionArmSyntax> arms, SyntaxToken closeBraceToken) 4717public static SwitchExpressionSyntax SwitchExpression(ExpressionSyntax governingExpression, SeparatedSyntaxList<SwitchExpressionArmSyntax> arms) 4721public static SwitchExpressionSyntax SwitchExpression(ExpressionSyntax governingExpression) 4725public static SwitchExpressionArmSyntax SwitchExpressionArm(PatternSyntax pattern, WhenClauseSyntax? whenClause, SyntaxToken equalsGreaterThanToken, ExpressionSyntax expression) 4734public static SwitchExpressionArmSyntax SwitchExpressionArm(PatternSyntax pattern, WhenClauseSyntax? whenClause, ExpressionSyntax expression) 4738public static SwitchExpressionArmSyntax SwitchExpressionArm(PatternSyntax pattern, ExpressionSyntax expression) 4799public static CatchFilterClauseSyntax CatchFilterClause(SyntaxToken whenKeyword, SyntaxToken openParenToken, ExpressionSyntax filterExpression, SyntaxToken closeParenToken) 4809public static CatchFilterClauseSyntax CatchFilterClause(ExpressionSyntax filterExpression) 4984public static AttributeArgumentSyntax AttributeArgument(NameEqualsSyntax? nameEquals, NameColonSyntax? nameColon, ExpressionSyntax expression) 4991public static AttributeArgumentSyntax AttributeArgument(ExpressionSyntax expression) 5732public static ArrowExpressionClauseSyntax ArrowExpressionClause(SyntaxToken arrowToken, ExpressionSyntax expression) 5740public static ArrowExpressionClauseSyntax ArrowExpressionClause(ExpressionSyntax expression) 6368public static IfDirectiveTriviaSyntax IfDirectiveTrivia(SyntaxToken hashToken, SyntaxToken ifKeyword, ExpressionSyntax condition, SyntaxToken endOfDirectiveToken, bool isActive, bool branchTaken, bool conditionValue) 6378public static IfDirectiveTriviaSyntax IfDirectiveTrivia(ExpressionSyntax condition, bool isActive, bool branchTaken, bool conditionValue) 6382public static ElifDirectiveTriviaSyntax ElifDirectiveTrivia(SyntaxToken hashToken, SyntaxToken elifKeyword, ExpressionSyntax condition, SyntaxToken endOfDirectiveToken, bool isActive, bool branchTaken, bool conditionValue) 6392public static ElifDirectiveTriviaSyntax ElifDirectiveTrivia(ExpressionSyntax condition, bool isActive, bool branchTaken, bool conditionValue) 6594public static PragmaWarningDirectiveTriviaSyntax PragmaWarningDirectiveTrivia(SyntaxToken hashToken, SyntaxToken pragmaKeyword, SyntaxToken warningKeyword, SyntaxToken disableOrRestoreKeyword, SeparatedSyntaxList<ExpressionSyntax> errorCodes, SyntaxToken endOfDirectiveToken, bool isActive) 6610public static PragmaWarningDirectiveTriviaSyntax PragmaWarningDirectiveTrivia(SyntaxToken disableOrRestoreKeyword, SeparatedSyntaxList<ExpressionSyntax> errorCodes, bool isActive)
_generated\2\Syntax.xml.Syntax.Generated.cs (349)
434public SeparatedSyntaxList<ExpressionSyntax> Sizes 439return red != null ? new SeparatedSyntaxList<ExpressionSyntax>(red, GetChildIndex(1)) : default; 452public ArrayRankSpecifierSyntax Update(SyntaxToken openBracketToken, SeparatedSyntaxList<ExpressionSyntax> sizes, SyntaxToken closeBracketToken) 465public ArrayRankSpecifierSyntax WithSizes(SeparatedSyntaxList<ExpressionSyntax> sizes) => Update(this.OpenBracketToken, sizes, this.CloseBracketToken); 468public ArrayRankSpecifierSyntax AddSizes(params ExpressionSyntax[] items) => WithSizes(this.Sizes.AddRange(items)); 1107private ExpressionSyntax? expression; 1118public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 1130public ParenthesizedExpressionSyntax Update(SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 1143public ParenthesizedExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.OpenParenToken, expression, this.CloseParenToken); 1222private ExpressionSyntax? operand; 1233public ExpressionSyntax Operand => GetRed(ref this.operand, 1)!; 1242public PrefixUnaryExpressionSyntax Update(SyntaxToken operatorToken, ExpressionSyntax operand) 1255public PrefixUnaryExpressionSyntax WithOperand(ExpressionSyntax operand) => Update(this.OperatorToken, operand); 1267private ExpressionSyntax? expression; 1278public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 1287public AwaitExpressionSyntax Update(SyntaxToken awaitKeyword, ExpressionSyntax expression) 1300public AwaitExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.AwaitKeyword, expression); 1314private ExpressionSyntax? operand; 1322public ExpressionSyntax Operand => GetRedAtZero(ref this.operand)!; 1334public PostfixUnaryExpressionSyntax Update(ExpressionSyntax operand, SyntaxToken operatorToken) 1346public PostfixUnaryExpressionSyntax WithOperand(ExpressionSyntax operand) => Update(operand, this.OperatorToken); 1360private ExpressionSyntax? expression; 1369public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 1396public MemberAccessExpressionSyntax Update(ExpressionSyntax expression, SyntaxToken operatorToken, SimpleNameSyntax name) 1408public MemberAccessExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.OperatorToken, this.Name); 1422private ExpressionSyntax? expression; 1423private ExpressionSyntax? whenNotNull; 1431public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 1437public ExpressionSyntax WhenNotNull => GetRed(ref this.whenNotNull, 2)!; 1458public ConditionalAccessExpressionSyntax Update(ExpressionSyntax expression, SyntaxToken operatorToken, ExpressionSyntax whenNotNull) 1470public ConditionalAccessExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.OperatorToken, this.WhenNotNull); 1472public ConditionalAccessExpressionSyntax WithWhenNotNull(ExpressionSyntax whenNotNull) => Update(this.Expression, this.OperatorToken, whenNotNull); 1572private ExpressionSyntax? leftOperand; 1573private ExpressionSyntax? rightOperand; 1581public ExpressionSyntax? LeftOperand => GetRedAtZero(ref this.leftOperand); 1587public ExpressionSyntax? RightOperand => GetRed(ref this.rightOperand, 2); 1608public RangeExpressionSyntax Update(ExpressionSyntax? leftOperand, SyntaxToken operatorToken, ExpressionSyntax? rightOperand) 1620public RangeExpressionSyntax WithLeftOperand(ExpressionSyntax? leftOperand) => Update(leftOperand, this.OperatorToken, this.RightOperand); 1622public RangeExpressionSyntax WithRightOperand(ExpressionSyntax? rightOperand) => Update(this.LeftOperand, this.OperatorToken, rightOperand); 1698private ExpressionSyntax? left; 1699private ExpressionSyntax? right; 1707public ExpressionSyntax Left => GetRedAtZero(ref this.left)!; 1713public ExpressionSyntax Right => GetRed(ref this.right, 2)!; 1734public BinaryExpressionSyntax Update(ExpressionSyntax left, SyntaxToken operatorToken, ExpressionSyntax right) 1746public BinaryExpressionSyntax WithLeft(ExpressionSyntax left) => Update(left, this.OperatorToken, this.Right); 1748public BinaryExpressionSyntax WithRight(ExpressionSyntax right) => Update(this.Left, this.OperatorToken, right); 1772private ExpressionSyntax? left; 1773private ExpressionSyntax? right; 1781public ExpressionSyntax Left => GetRedAtZero(ref this.left)!; 1787public ExpressionSyntax Right => GetRed(ref this.right, 2)!; 1808public AssignmentExpressionSyntax Update(ExpressionSyntax left, SyntaxToken operatorToken, ExpressionSyntax right) 1820public AssignmentExpressionSyntax WithLeft(ExpressionSyntax left) => Update(left, this.OperatorToken, this.Right); 1822public AssignmentExpressionSyntax WithRight(ExpressionSyntax right) => Update(this.Left, this.OperatorToken, right); 1834private ExpressionSyntax? condition; 1835private ExpressionSyntax? whenTrue; 1836private ExpressionSyntax? whenFalse; 1844public ExpressionSyntax Condition => GetRedAtZero(ref this.condition)!; 1850public ExpressionSyntax WhenTrue => GetRed(ref this.whenTrue, 2)!; 1856public ExpressionSyntax WhenFalse => GetRed(ref this.whenFalse, 4)!; 1879public ConditionalExpressionSyntax Update(ExpressionSyntax condition, SyntaxToken questionToken, ExpressionSyntax whenTrue, SyntaxToken colonToken, ExpressionSyntax whenFalse) 1891public ConditionalExpressionSyntax WithCondition(ExpressionSyntax condition) => Update(condition, this.QuestionToken, this.WhenTrue, this.ColonToken, this.WhenFalse); 1893public ConditionalExpressionSyntax WithWhenTrue(ExpressionSyntax whenTrue) => Update(this.Condition, this.QuestionToken, whenTrue, this.ColonToken, this.WhenFalse); 1895public ConditionalExpressionSyntax WithWhenFalse(ExpressionSyntax whenFalse) => Update(this.Condition, this.QuestionToken, this.WhenTrue, this.ColonToken, whenFalse); 2084private ExpressionSyntax? expression; 2098public ExpressionSyntax Expression => GetRed(ref this.expression, 2)!; 2110public MakeRefExpressionSyntax Update(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 2124public MakeRefExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.Keyword, this.OpenParenToken, expression, this.CloseParenToken); 2137private ExpressionSyntax? expression; 2151public ExpressionSyntax Expression => GetRed(ref this.expression, 2)!; 2163public RefTypeExpressionSyntax Update(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 2177public RefTypeExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.Keyword, this.OpenParenToken, expression, this.CloseParenToken); 2190private ExpressionSyntax? expression; 2205public ExpressionSyntax Expression => GetRed(ref this.expression, 2)!; 2235public RefValueExpressionSyntax Update(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken comma, TypeSyntax type, SyntaxToken closeParenToken) 2249public RefValueExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.Keyword, this.OpenParenToken, expression, this.Comma, this.Type, this.CloseParenToken); 2265private ExpressionSyntax? expression; 2279public ExpressionSyntax Expression => GetRed(ref this.expression, 2)!; 2291public CheckedExpressionSyntax Update(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 2305public CheckedExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.Keyword, this.OpenParenToken, expression, this.CloseParenToken); 2319private ExpressionSyntax? expression; 2333public ExpressionSyntax Expression => GetRed(ref this.expression, 2)!; 2346public UnsafeExpressionSyntax Update(SyntaxToken keyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken) 2360public UnsafeExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.Keyword, this.OpenParenToken, expression, this.CloseParenToken); 2532private ExpressionSyntax? expression; 2541public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 2565public InvocationExpressionSyntax Update(ExpressionSyntax expression, ArgumentListSyntax argumentList) 2577public InvocationExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.ArgumentList); 2592private ExpressionSyntax? expression; 2601public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 2625public ElementAccessExpressionSyntax Update(ExpressionSyntax expression, BracketedArgumentListSyntax argumentList) 2637public ElementAccessExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.ArgumentList); 2790private ExpressionSyntax? expression; 2811public ExpressionSyntax Expression => GetRed(ref this.expression, 2)!; 2832public ArgumentSyntax Update(NameColonSyntax? nameColon, SyntaxToken refKindKeyword, ExpressionSyntax expression) 2846public ArgumentSyntax WithExpression(ExpressionSyntax expression) => Update(this.NameColon, this.RefKindKeyword, expression); 2856public abstract ExpressionSyntax Expression { get; } 2857public BaseExpressionColonSyntax WithExpression(ExpressionSyntax expression) => WithExpressionCore(expression); 2858internal abstract BaseExpressionColonSyntax WithExpressionCore(ExpressionSyntax expression); 2873private ExpressionSyntax? expression; 2880public override ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 2891public ExpressionColonSyntax Update(ExpressionSyntax expression, SyntaxToken colonToken) 2903internal override BaseExpressionColonSyntax WithExpressionCore(ExpressionSyntax expression) => WithExpression(expression); 2904public new ExpressionColonSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.ColonToken); 3022private ExpressionSyntax? expression; 3039public ExpressionSyntax Expression => GetRed(ref this.expression, 3)!; 3060public CastExpressionSyntax Update(SyntaxToken openParenToken, TypeSyntax type, SyntaxToken closeParenToken, ExpressionSyntax expression) 3075public CastExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.OpenParenToken, this.Type, this.CloseParenToken, expression); 3111public abstract ExpressionSyntax? ExpressionBody { get; } 3112public AnonymousFunctionExpressionSyntax WithExpressionBody(ExpressionSyntax? expressionBody) => WithExpressionBodyCore(expressionBody); 3113internal abstract AnonymousFunctionExpressionSyntax WithExpressionBodyCore(ExpressionSyntax? expressionBody); 3127private ExpressionSyntax? expressionBody; 3159public override ExpressionSyntax? ExpressionBody => GetRed(ref this.expressionBody, 4); 3182public AnonymousMethodExpressionSyntax Update(SyntaxTokenList modifiers, SyntaxToken delegateKeyword, ParameterListSyntax? parameterList, BlockSyntax block, ExpressionSyntax? expressionBody) 3200internal override AnonymousFunctionExpressionSyntax WithExpressionBodyCore(ExpressionSyntax? expressionBody) => WithExpressionBody(expressionBody); 3201public new AnonymousMethodExpressionSyntax WithExpressionBody(ExpressionSyntax? expressionBody) => Update(this.Modifiers, this.DelegateKeyword, this.ParameterList, this.Block, expressionBody); 3238public new LambdaExpressionSyntax WithExpressionBody(ExpressionSyntax? expressionBody) => (LambdaExpressionSyntax)WithExpressionBodyCore(expressionBody); 3259private ExpressionSyntax? expressionBody; 3293public override ExpressionSyntax? ExpressionBody => GetRed(ref this.expressionBody, 5); 3318public SimpleLambdaExpressionSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, ParameterSyntax parameter, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 3339internal override AnonymousFunctionExpressionSyntax WithExpressionBodyCore(ExpressionSyntax? expressionBody) => WithExpressionBody(expressionBody); 3340public new SimpleLambdaExpressionSyntax WithExpressionBody(ExpressionSyntax? expressionBody) => Update(this.AttributeLists, this.Modifiers, this.Parameter, this.ArrowToken, this.Block, expressionBody); 3370private ExpressionSyntax? expression; 3379public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 3388public RefExpressionSyntax Update(SyntaxToken refKeyword, ExpressionSyntax expression) 3401public RefExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.RefKeyword, expression); 3417private ExpressionSyntax? expressionBody; 3453public override ExpressionSyntax? ExpressionBody => GetRed(ref this.expressionBody, 6); 3480public ParenthesizedLambdaExpressionSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, TypeSyntax? returnType, ParameterListSyntax parameterList, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 3502internal override AnonymousFunctionExpressionSyntax WithExpressionBodyCore(ExpressionSyntax? expressionBody) => WithExpressionBody(expressionBody); 3503public new ParenthesizedLambdaExpressionSyntax WithExpressionBody(ExpressionSyntax? expressionBody) => Update(this.AttributeLists, this.Modifiers, this.ReturnType, this.ParameterList, this.ArrowToken, this.Block, expressionBody); 3548public SeparatedSyntaxList<ExpressionSyntax> Expressions 3553return red != null ? new SeparatedSyntaxList<ExpressionSyntax>(red, GetChildIndex(1)) : default; 3567public InitializerExpressionSyntax Update(SyntaxToken openBraceToken, SeparatedSyntaxList<ExpressionSyntax> expressions, SyntaxToken closeBraceToken) 3580public InitializerExpressionSyntax WithExpressions(SeparatedSyntaxList<ExpressionSyntax> expressions) => Update(this.OpenBraceToken, expressions, this.CloseBraceToken); 3583public InitializerExpressionSyntax AddExpressions(params ExpressionSyntax[] items) => WithExpressions(this.Expressions.AddRange(items)); 3767private ExpressionSyntax? expression; 3775public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 3801public WithExpressionSyntax Update(ExpressionSyntax expression, SyntaxToken withKeyword, InitializerExpressionSyntax initializer) 3813public WithExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.WithKeyword, this.Initializer); 3817public WithExpressionSyntax AddInitializerExpressions(params ExpressionSyntax[] items) => WithInitializer(this.Initializer.WithExpressions(this.Initializer.Expressions.AddRange(items))); 3829private ExpressionSyntax? expression; 3840public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 3861public AnonymousObjectMemberDeclaratorSyntax Update(NameEqualsSyntax? nameEquals, ExpressionSyntax expression) 3874public AnonymousObjectMemberDeclaratorSyntax WithExpression(ExpressionSyntax expression) => Update(this.NameEquals, expression); 4067public ImplicitArrayCreationExpressionSyntax AddInitializerExpressions(params ExpressionSyntax[] items) => WithInitializer(this.Initializer.WithExpressions(this.Initializer.Expressions.AddRange(items))); 4184public ImplicitStackAllocArrayCreationExpressionSyntax AddInitializerExpressions(params ExpressionSyntax[] items) => WithInitializer(this.Initializer.WithExpressions(this.Initializer.Expressions.AddRange(items))); 4258private ExpressionSyntax? expression; 4265public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 4274public ExpressionElementSyntax Update(ExpressionSyntax expression) 4286public ExpressionElementSyntax WithExpression(ExpressionSyntax expression) => Update(expression); 4297private ExpressionSyntax? expression; 4306public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 4315public SpreadElementSyntax Update(SyntaxToken operatorToken, ExpressionSyntax expression) 4328public SpreadElementSyntax WithExpression(ExpressionSyntax expression) => Update(this.OperatorToken, expression); 4522private ExpressionSyntax? expression; 4538public ExpressionSyntax Expression => GetRed(ref this.expression, 4)!; 4559public FromClauseSyntax Update(SyntaxToken fromKeyword, TypeSyntax? type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression) 4575public FromClauseSyntax WithExpression(ExpressionSyntax expression) => Update(this.FromKeyword, this.Type, this.Identifier, this.InKeyword, expression); 4586private ExpressionSyntax? expression; 4600public ExpressionSyntax Expression => GetRed(ref this.expression, 3)!; 4609public LetClauseSyntax Update(SyntaxToken letKeyword, SyntaxToken identifier, SyntaxToken equalsToken, ExpressionSyntax expression) 4624public LetClauseSyntax WithExpression(ExpressionSyntax expression) => Update(this.LetKeyword, this.Identifier, this.EqualsToken, expression); 4636private ExpressionSyntax? inExpression; 4637private ExpressionSyntax? leftExpression; 4638private ExpressionSyntax? rightExpression; 4655public ExpressionSyntax InExpression => GetRed(ref this.inExpression, 4)!; 4659public ExpressionSyntax LeftExpression => GetRed(ref this.leftExpression, 6)!; 4663public ExpressionSyntax RightExpression => GetRed(ref this.rightExpression, 8)!; 4692public JoinClauseSyntax Update(SyntaxToken joinKeyword, TypeSyntax? type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax inExpression, SyntaxToken onKeyword, ExpressionSyntax leftExpression, SyntaxToken equalsKeyword, ExpressionSyntax rightExpression, JoinIntoClauseSyntax? into) 4708public JoinClauseSyntax WithInExpression(ExpressionSyntax inExpression) => Update(this.JoinKeyword, this.Type, this.Identifier, this.InKeyword, inExpression, this.OnKeyword, this.LeftExpression, this.EqualsKeyword, this.RightExpression, this.Into); 4710public JoinClauseSyntax WithLeftExpression(ExpressionSyntax leftExpression) => Update(this.JoinKeyword, this.Type, this.Identifier, this.InKeyword, this.InExpression, this.OnKeyword, leftExpression, this.EqualsKeyword, this.RightExpression, this.Into); 4712public JoinClauseSyntax WithRightExpression(ExpressionSyntax rightExpression) => Update(this.JoinKeyword, this.Type, this.Identifier, this.InKeyword, this.InExpression, this.OnKeyword, this.LeftExpression, this.EqualsKeyword, rightExpression, this.Into); 4766private ExpressionSyntax? condition; 4775public ExpressionSyntax Condition => GetRed(ref this.condition, 1)!; 4784public WhereClauseSyntax Update(SyntaxToken whereKeyword, ExpressionSyntax condition) 4797public WhereClauseSyntax WithCondition(ExpressionSyntax condition) => Update(this.WhereKeyword, condition); 4860private ExpressionSyntax? expression; 4867public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 4885public OrderingSyntax Update(ExpressionSyntax expression, SyntaxToken ascendingOrDescendingKeyword) 4897public OrderingSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.AscendingOrDescendingKeyword); 4909private ExpressionSyntax? expression; 4918public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 4927public SelectClauseSyntax Update(SyntaxToken selectKeyword, ExpressionSyntax expression) 4940public SelectClauseSyntax WithExpression(ExpressionSyntax expression) => Update(this.SelectKeyword, expression); 4951private ExpressionSyntax? groupExpression; 4952private ExpressionSyntax? byExpression; 4961public ExpressionSyntax GroupExpression => GetRed(ref this.groupExpression, 1)!; 4965public ExpressionSyntax ByExpression => GetRed(ref this.byExpression, 3)!; 4986public GroupClauseSyntax Update(SyntaxToken groupKeyword, ExpressionSyntax groupExpression, SyntaxToken byKeyword, ExpressionSyntax byExpression) 4999public GroupClauseSyntax WithGroupExpression(ExpressionSyntax groupExpression) => Update(this.GroupKeyword, groupExpression, this.ByKeyword, this.ByExpression); 5001public GroupClauseSyntax WithByExpression(ExpressionSyntax byExpression) => Update(this.GroupKeyword, this.GroupExpression, this.ByKeyword, byExpression); 5151private ExpressionSyntax? expression; 5160public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 5186public IsPatternExpressionSyntax Update(ExpressionSyntax expression, SyntaxToken isKeyword, PatternSyntax pattern) 5198public IsPatternExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.IsKeyword, this.Pattern); 5211private ExpressionSyntax? expression; 5220public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 5229public ThrowExpressionSyntax Update(SyntaxToken throwKeyword, ExpressionSyntax expression) 5242public ThrowExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(this.ThrowKeyword, expression); 5253private ExpressionSyntax? condition; 5262public ExpressionSyntax Condition => GetRed(ref this.condition, 1)!; 5271public WhenClauseSyntax Update(SyntaxToken whenKeyword, ExpressionSyntax condition) 5284public WhenClauseSyntax WithCondition(ExpressionSyntax condition) => Update(this.WhenKeyword, condition); 5679private ExpressionSyntax? expression; 5687public ExpressionSyntax Expression => GetRedAtZero(ref this.expression)!; 5696public ConstantPatternSyntax Update(ExpressionSyntax expression) 5708public ConstantPatternSyntax WithExpression(ExpressionSyntax expression) => Update(expression); 5764private ExpressionSyntax? expression; 5774public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 5783public RelationalPatternSyntax Update(SyntaxToken operatorToken, ExpressionSyntax expression) 5796public RelationalPatternSyntax WithExpression(ExpressionSyntax expression) => Update(this.OperatorToken, expression); 6107private ExpressionSyntax? expression; 6119public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 6151public InterpolationSyntax Update(SyntaxToken openBraceToken, ExpressionSyntax expression, InterpolationAlignmentClauseSyntax? alignmentClause, InterpolationFormatClauseSyntax? formatClause, SyntaxToken closeBraceToken) 6164public InterpolationSyntax WithExpression(ExpressionSyntax expression) => Update(this.OpenBraceToken, expression, this.AlignmentClause, this.FormatClause, this.CloseBraceToken); 6178private ExpressionSyntax? value; 6187public ExpressionSyntax Value => GetRed(ref this.value, 1)!; 6196public InterpolationAlignmentClauseSyntax Update(SyntaxToken commaToken, ExpressionSyntax value) 6209public InterpolationAlignmentClauseSyntax WithValue(ExpressionSyntax value) => Update(this.CommaToken, value); 6773private ExpressionSyntax? value; 6782public ExpressionSyntax Value => GetRed(ref this.value, 1)!; 6791public EqualsValueClauseSyntax Update(SyntaxToken equalsToken, ExpressionSyntax value) 6804public EqualsValueClauseSyntax WithValue(ExpressionSyntax value) => Update(this.EqualsToken, value); 6954private ExpressionSyntax? expression; 6963public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 6986public ExpressionStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, ExpressionSyntax expression, SyntaxToken semicolonToken) 7000public ExpressionStatementSyntax WithExpression(ExpressionSyntax expression) => Update(this.AttributeLists, expression, this.SemicolonToken); 7135private ExpressionSyntax? expression; 7164public ExpressionSyntax? Expression => GetRed(ref this.expression, 3); 7190public GotoStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken gotoKeyword, SyntaxToken caseOrDefaultKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 7206public GotoStatementSyntax WithExpression(ExpressionSyntax? expression) => Update(this.AttributeLists, this.GotoKeyword, this.CaseOrDefaultKeyword, expression, this.SemicolonToken); 7358private ExpressionSyntax? expression; 7369public ExpressionSyntax? Expression => GetRed(ref this.expression, 2); 7392public ReturnStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken returnKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 7407public ReturnStatementSyntax WithExpression(ExpressionSyntax? expression) => Update(this.AttributeLists, this.ReturnKeyword, expression, this.SemicolonToken); 7423private ExpressionSyntax? expression; 7434public ExpressionSyntax? Expression => GetRed(ref this.expression, 2); 7457public ThrowStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken throwKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 7472public ThrowStatementSyntax WithExpression(ExpressionSyntax? expression) => Update(this.AttributeLists, this.ThrowKeyword, expression, this.SemicolonToken); 7489private ExpressionSyntax? expression; 7502public ExpressionSyntax? Expression => GetRed(ref this.expression, 3); 7525public YieldStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken yieldKeyword, SyntaxToken returnOrBreakKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 7541public YieldStatementSyntax WithExpression(ExpressionSyntax? expression) => Update(this.AttributeLists, this.YieldKeyword, this.ReturnOrBreakKeyword, expression, this.SemicolonToken); 7557private ExpressionSyntax? condition; 7571public ExpressionSyntax Condition => GetRed(ref this.condition, 3)!; 7598public WhileStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken whileKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, StatementSyntax statement) 7614public WhileStatementSyntax WithCondition(ExpressionSyntax condition) => Update(this.AttributeLists, this.WhileKeyword, this.OpenParenToken, condition, this.CloseParenToken, this.Statement); 7632private ExpressionSyntax? condition; 7649public ExpressionSyntax Condition => GetRed(ref this.condition, 5)!; 7676public DoStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken doKeyword, StatementSyntax statement, SyntaxToken whileKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, SyntaxToken semicolonToken) 7694public DoStatementSyntax WithCondition(ExpressionSyntax condition) => Update(this.AttributeLists, this.DoKeyword, this.Statement, this.WhileKeyword, this.OpenParenToken, condition, this.CloseParenToken, this.SemicolonToken); 7713private ExpressionSyntax? condition; 7730public SeparatedSyntaxList<ExpressionSyntax> Initializers 7735return red != null ? new SeparatedSyntaxList<ExpressionSyntax>(red, GetChildIndex(4)) : default; 7741public ExpressionSyntax? Condition => GetRed(ref this.condition, 6); 7745public SeparatedSyntaxList<ExpressionSyntax> Incrementors 7750return red != null ? new SeparatedSyntaxList<ExpressionSyntax>(red, GetChildIndex(8)) : default; 7785public ForStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken forKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, SeparatedSyntaxList<ExpressionSyntax> initializers, SyntaxToken firstSemicolonToken, ExpressionSyntax? condition, SyntaxToken secondSemicolonToken, SeparatedSyntaxList<ExpressionSyntax> incrementors, SyntaxToken closeParenToken, StatementSyntax statement) 7802public ForStatementSyntax WithInitializers(SeparatedSyntaxList<ExpressionSyntax> initializers) => Update(this.AttributeLists, this.ForKeyword, this.OpenParenToken, this.Declaration, initializers, this.FirstSemicolonToken, this.Condition, this.SecondSemicolonToken, this.Incrementors, this.CloseParenToken, this.Statement); 7804public ForStatementSyntax WithCondition(ExpressionSyntax? condition) => Update(this.AttributeLists, this.ForKeyword, this.OpenParenToken, this.Declaration, this.Initializers, this.FirstSemicolonToken, condition, this.SecondSemicolonToken, this.Incrementors, this.CloseParenToken, this.Statement); 7806public ForStatementSyntax WithIncrementors(SeparatedSyntaxList<ExpressionSyntax> incrementors) => Update(this.AttributeLists, this.ForKeyword, this.OpenParenToken, this.Declaration, this.Initializers, this.FirstSemicolonToken, this.Condition, this.SecondSemicolonToken, incrementors, this.CloseParenToken, this.Statement); 7812public ForStatementSyntax AddInitializers(params ExpressionSyntax[] items) => WithInitializers(this.Initializers.AddRange(items)); 7813public ForStatementSyntax AddIncrementors(params ExpressionSyntax[] items) => WithIncrementors(this.Incrementors.AddRange(items)); 7839public abstract ExpressionSyntax Expression { get; } 7840public CommonForEachStatementSyntax WithExpression(ExpressionSyntax expression) => WithExpressionCore(expression); 7841internal abstract CommonForEachStatementSyntax WithExpressionCore(ExpressionSyntax expression); 7866private ExpressionSyntax? expression; 7896public override ExpressionSyntax Expression => GetRed(ref this.expression, 7)!; 7925public ForEachStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 7949internal override CommonForEachStatementSyntax WithExpressionCore(ExpressionSyntax expression) => WithExpression(expression); 7950public new ForEachStatementSyntax WithExpression(ExpressionSyntax expression) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Type, this.Identifier, this.InKeyword, expression, this.CloseParenToken, this.Statement); 7969private ExpressionSyntax? variable; 7970private ExpressionSyntax? expression; 7999public ExpressionSyntax Variable => GetRed(ref this.variable, 4)!; 8003public override ExpressionSyntax Expression => GetRed(ref this.expression, 6)!; 8032public ForEachVariableStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, ExpressionSyntax variable, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 8052public ForEachVariableStatementSyntax WithVariable(ExpressionSyntax variable) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, variable, this.InKeyword, this.Expression, this.CloseParenToken, this.Statement); 8055internal override CommonForEachStatementSyntax WithExpressionCore(ExpressionSyntax expression) => WithExpression(expression); 8056public new ForEachVariableStatementSyntax WithExpression(ExpressionSyntax expression) => Update(this.AttributeLists, this.AwaitKeyword, this.ForEachKeyword, this.OpenParenToken, this.Variable, this.InKeyword, expression, this.CloseParenToken, this.Statement); 8076private ExpressionSyntax? expression; 8101public ExpressionSyntax? Expression => GetRed(ref this.expression, 5); 8130public UsingStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken awaitKeyword, SyntaxToken usingKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, ExpressionSyntax? expression, SyntaxToken closeParenToken, StatementSyntax statement) 8148public UsingStatementSyntax WithExpression(ExpressionSyntax? expression) => Update(this.AttributeLists, this.AwaitKeyword, this.UsingKeyword, this.OpenParenToken, this.Declaration, expression, this.CloseParenToken, this.Statement); 8369private ExpressionSyntax? expression; 8383public ExpressionSyntax Expression => GetRed(ref this.expression, 3)!; 8410public LockStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken lockKeyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 8426public LockStatementSyntax WithExpression(ExpressionSyntax expression) => Update(this.AttributeLists, this.LockKeyword, this.OpenParenToken, expression, this.CloseParenToken, this.Statement); 8446private ExpressionSyntax? condition; 8470public ExpressionSyntax Condition => GetRed(ref this.condition, 3)!; 8510public IfStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken ifKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, StatementSyntax statement, ElseClauseSyntax? @else) 8526public IfStatementSyntax WithCondition(ExpressionSyntax condition) => Update(this.AttributeLists, this.IfKeyword, this.OpenParenToken, condition, this.CloseParenToken, this.Statement, this.Else); 8591private ExpressionSyntax? expression; 8621public ExpressionSyntax Expression => GetRed(ref this.expression, 3)!; 8671public SwitchStatementSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxToken switchKeyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken, SyntaxToken openBraceToken, SyntaxList<SwitchSectionSyntax> sections, SyntaxToken closeBraceToken) 8687public SwitchStatementSyntax WithExpression(ExpressionSyntax expression) => Update(this.AttributeLists, this.SwitchKeyword, this.OpenParenToken, expression, this.CloseParenToken, this.OpenBraceToken, this.Sections, this.CloseBraceToken); 8863private ExpressionSyntax? value; 8876public ExpressionSyntax Value => GetRed(ref this.value, 1)!; 8887public CaseSwitchLabelSyntax Update(SyntaxToken keyword, ExpressionSyntax value, SyntaxToken colonToken) 8901public CaseSwitchLabelSyntax WithValue(ExpressionSyntax value) => Update(this.Keyword, value, this.ColonToken); 8959private ExpressionSyntax? governingExpression; 8967public ExpressionSyntax GoverningExpression => GetRedAtZero(ref this.governingExpression)!; 9003public SwitchExpressionSyntax Update(ExpressionSyntax governingExpression, SyntaxToken switchKeyword, SyntaxToken openBraceToken, SeparatedSyntaxList<SwitchExpressionArmSyntax> arms, SyntaxToken closeBraceToken) 9015public SwitchExpressionSyntax WithGoverningExpression(ExpressionSyntax governingExpression) => Update(governingExpression, this.SwitchKeyword, this.OpenBraceToken, this.Arms, this.CloseBraceToken); 9034private ExpressionSyntax? expression; 9047public ExpressionSyntax Expression => GetRed(ref this.expression, 3)!; 9070public SwitchExpressionArmSyntax Update(PatternSyntax pattern, WhenClauseSyntax? whenClause, SyntaxToken equalsGreaterThanToken, ExpressionSyntax expression) 9085public SwitchExpressionArmSyntax WithExpression(ExpressionSyntax expression) => Update(this.Pattern, this.WhenClause, this.EqualsGreaterThanToken, expression); 9295private ExpressionSyntax? filterExpression; 9306public ExpressionSyntax FilterExpression => GetRed(ref this.filterExpression, 2)!; 9317public CatchFilterClauseSyntax Update(SyntaxToken whenKeyword, SyntaxToken openParenToken, ExpressionSyntax filterExpression, SyntaxToken closeParenToken) 9331public CatchFilterClauseSyntax WithFilterExpression(ExpressionSyntax filterExpression) => Update(this.WhenKeyword, this.OpenParenToken, filterExpression, this.CloseParenToken); 10149private ExpressionSyntax? expression; 10161public ExpressionSyntax Expression => GetRed(ref this.expression, 2)!; 10184public AttributeArgumentSyntax Update(NameEqualsSyntax? nameEquals, NameColonSyntax? nameColon, ExpressionSyntax expression) 10198public AttributeArgumentSyntax WithExpression(ExpressionSyntax expression) => Update(this.NameEquals, this.NameColon, expression); 13478private ExpressionSyntax? expression; 13487public ExpressionSyntax Expression => GetRed(ref this.expression, 1)!; 13496public ArrowExpressionClauseSyntax Update(SyntaxToken arrowToken, ExpressionSyntax expression) 13509public ArrowExpressionClauseSyntax WithExpression(ExpressionSyntax expression) => Update(this.ArrowToken, expression); 15881public abstract ExpressionSyntax Condition { get; } 15882public ConditionalDirectiveTriviaSyntax WithCondition(ExpressionSyntax condition) => WithConditionCore(condition); 15883internal abstract ConditionalDirectiveTriviaSyntax WithConditionCore(ExpressionSyntax condition); 15896private ExpressionSyntax? condition; 15907public override ExpressionSyntax Condition => GetRed(ref this.condition, 2)!; 15924public IfDirectiveTriviaSyntax Update(SyntaxToken hashToken, SyntaxToken ifKeyword, ExpressionSyntax condition, SyntaxToken endOfDirectiveToken, bool isActive, bool branchTaken, bool conditionValue) 15939internal override ConditionalDirectiveTriviaSyntax WithConditionCore(ExpressionSyntax condition) => WithCondition(condition); 15940public new IfDirectiveTriviaSyntax WithCondition(ExpressionSyntax condition) => Update(this.HashToken, this.IfKeyword, condition, this.EndOfDirectiveToken, this.IsActive, this.BranchTaken, this.ConditionValue); 15956private ExpressionSyntax? condition; 15967public override ExpressionSyntax Condition => GetRed(ref this.condition, 2)!; 15984public ElifDirectiveTriviaSyntax Update(SyntaxToken hashToken, SyntaxToken elifKeyword, ExpressionSyntax condition, SyntaxToken endOfDirectiveToken, bool isActive, bool branchTaken, bool conditionValue) 15999internal override ConditionalDirectiveTriviaSyntax WithConditionCore(ExpressionSyntax condition) => WithCondition(condition); 16000public new ElifDirectiveTriviaSyntax WithCondition(ExpressionSyntax condition) => Update(this.HashToken, this.ElifKeyword, condition, this.EndOfDirectiveToken, this.IsActive, this.BranchTaken, this.ConditionValue); 16701public SeparatedSyntaxList<ExpressionSyntax> ErrorCodes 16706return red != null ? new SeparatedSyntaxList<ExpressionSyntax>(red, GetChildIndex(4)) : default; 16721public PragmaWarningDirectiveTriviaSyntax Update(SyntaxToken hashToken, SyntaxToken pragmaKeyword, SyntaxToken warningKeyword, SyntaxToken disableOrRestoreKeyword, SeparatedSyntaxList<ExpressionSyntax> errorCodes, SyntaxToken endOfDirectiveToken, bool isActive) 16738public PragmaWarningDirectiveTriviaSyntax WithErrorCodes(SeparatedSyntaxList<ExpressionSyntax> errorCodes) => Update(this.HashToken, this.PragmaKeyword, this.WarningKeyword, this.DisableOrRestoreKeyword, errorCodes, this.EndOfDirectiveToken, this.IsActive); 16743public PragmaWarningDirectiveTriviaSyntax AddErrorCodes(params ExpressionSyntax[] items) => WithErrorCodes(this.ErrorCodes.AddRange(items));
Binder\Binder.IdentifierUsedAsValueFinder.cs (5)
162case ExpressionSyntax expression: 384var v = selectClause.Expression; 397var v = groupClause.GroupExpression; 398var k = groupClause.ByExpression; 545private bool MakeQueryUnboundLambda(Binder enclosingBinder, RangeVariableMap qvm, RangeVariableSymbol parameter, ExpressionSyntax expression)
Binder\Binder_AnonymousTypes.cs (2)
47ExpressionSyntax expression = fieldInitializer.Expression; 151private static bool IsAnonymousTypeMemberExpression(ExpressionSyntax expr)
Binder\Binder_Deconstruct.cs (10)
31var left = node.Left; 32var right = node.Right; 34ExpressionSyntax? expression = null; 87ExpressionSyntax left, 88ExpressionSyntax right, 91ref ExpressionSyntax? expression, 114ExpressionSyntax left, 177private static bool IsDeconstructionResultUsed(ExpressionSyntax left) 736ExpressionSyntax node, 739ref ExpressionSyntax? expression)
Binder\Binder_Expressions.cs (62)
26/// This portion of the binder converts an <see cref="ExpressionSyntax"/> into a <see cref="BoundExpression"/>. 260internal BoundExpression BindValue(ExpressionSyntax node, BindingDiagnosticBag diagnostics, BindValueKind valueKind) 266internal BoundExpression BindRValueWithoutTargetType(ExpressionSyntax node, BindingDiagnosticBag diagnostics, bool reportNoTargetType = true) 275internal BoundExpression BindTypeOrRValue(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 467internal BoundExpression BindValueAllowArgList(ExpressionSyntax node, BindingDiagnosticBag diagnostics, BindValueKind valueKind) 513ExpressionSyntax value; 568public BoundExpression BindExpression(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 573protected BoundExpression BindExpression(ExpressionSyntax node, BindingDiagnosticBag diagnostics, bool invoked, bool indexed) 591protected BoundExpression BindExpressionAllowArgList(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 598private void CheckContextForPointerTypes(ExpressionSyntax node, BindingDiagnosticBag diagnostics, BoundExpression expr) 611private BoundExpression BindExpressionInternal(ExpressionSyntax node, BindingDiagnosticBag diagnostics, bool invoked, bool indexed) 627BoundExpression bindExpressionInternal(ExpressionSyntax node, BindingDiagnosticBag diagnostics, bool invoked, bool indexed) 900private BoundExpression BindRefType(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 907private BoundExpression BindScopedType(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 1397private BoundExpression BindParenthesizedExpression(ExpressionSyntax innerExpression, BindingDiagnosticBag diagnostics) 1411ExpressionSyntax typeSyntax = node.Type; 1466ExpressionSyntax typeSyntax = node.Type; 2487public BoundExpression BindNamespaceOrTypeOrExpression(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 2513public BoundExpression BindLabel(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 2541public BoundExpression BindNamespaceOrType(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 2553private static BoundExpression CreateBoundNamespaceOrTypeExpression(ExpressionSyntax node, Symbol symbol) 2789private BoundExpression BindRangeExpressionOperand(ExpressionSyntax operand, BindingDiagnosticBag diagnostics) 2825private BoundExpression BindCastCore(ExpressionSyntax node, BoundExpression operand, TypeWithAnnotations targetTypeWithAnnotations, bool wasCompilerGenerated, BindingDiagnosticBag diagnostics) 3004private BoundExpression BindExplicitNullableCastFromNonNullable(ExpressionSyntax node, BoundExpression operand, TypeWithAnnotations targetTypeWithAnnotations, BindingDiagnosticBag diagnostics) 3103private static string GetName(ExpressionSyntax syntax) 3478private BoundExpression BindArgumentExpression(BindingDiagnosticBag diagnostics, ExpressionSyntax argumentExpression, RefKind refKind, bool allowArglist) 4139foreach (var arg in firstRankSpecifier.Sizes) 4158foreach (var arg in dimension) 4178private BoundExpression BindArrayDimension(ExpressionSyntax dimension, BindingDiagnosticBag diagnostics, ref bool hasErrors) 4297foreach (var expression in initializer.Expressions) 4306foreach (var expression in initializer.Expressions) 4370foreach (var expressionSyntax in node.Expressions) 4384foreach (var expr in node.Expressions) 4503ExpressionSyntax creationSyntax, 4624foreach (ExpressionSyntax size in rankSpecifier.Sizes) 4641ExpressionSyntax countSyntax = rankSpecifiers[0].Sizes[0]; 5827ExpressionSyntax syntax, 5871foreach (var memberInitializer in initializerSyntax.Expressions) 5890ExpressionSyntax memberInitializer, 5908var rhsExpr = initializer.Right.CheckAndUnwrapRefExpression(diagnostics, out RefKind refKind); 5967var leftSyntax = namedAssignment.Left; 5979ExpressionSyntax leftSyntax, 5989ExpressionSyntax leftSyntax, 6206ExpressionSyntax memberNameSyntax, 6230ExpressionSyntax memberNameSyntax, 6438foreach (var elementInitializer in initializerSyntax.Expressions) 6491ExpressionSyntax elementInitializer, 6547foreach (var childElementInitializer in elementInitializerExpressions) 7647ExpressionSyntax exprSyntax = node.Expression; 7694private BoundExpression BindLeftOfPotentialColorColorMemberAccess(ExpressionSyntax left, BindingDiagnosticBag diagnostics) 7828ExpressionSyntax node, 7905ExpressionSyntax node, 8056ExpressionSyntax node, 8128ExpressionSyntax node, 10306private BoundExpression BindElementAccess(ExpressionSyntax node, BoundExpression receiver, BracketedArgumentListSyntax argumentList, bool allowInlineArrayElementAccess, BindingDiagnosticBag diagnostics) 10331private BoundExpression BindElementOrIndexerAccess(ExpressionSyntax node, BoundExpression expr, AnalyzedArguments analyzedArguments, bool allowInlineArrayElementAccess, BindingDiagnosticBag diagnostics) 10397BoundExpression tryImplicitConversionToInlineArrayIndex(ExpressionSyntax node, BoundExpression index, BindingDiagnosticBag diagnostics, out WellKnownType indexOrRangeWellknownType) 10423BoundExpression bindInlineArrayElementAccess(ExpressionSyntax node, BoundExpression expr, int length, AnalyzedArguments analyzedArguments, BoundExpression convertedIndex, WellKnownType indexOrRangeWellknownType, FieldSymbol elementField, BindingDiagnosticBag diagnostics) 12405private bool ResultIsUsed(ExpressionSyntax node) 12478var receiver = node.Expression; 12488private BoundExpression GetReceiverForConditionalBinding(ExpressionSyntax binding, BindingDiagnosticBag diagnostics) 12515var receiverSyntax = node.Expression;
Binder\Binder_Invocation.cs (4)
21/// This portion of the binder converts an <see cref="ExpressionSyntax"/> into a <see cref="BoundExpression"/>. 25private BoundExpression BindMethodGroup(ExpressionSyntax node, bool invoked, bool indexed, BindingDiagnosticBag diagnostics) 2404var argument = node.ArgumentList.Arguments[0].Expression; 2482private bool CheckSyntaxForNameofArgument(ExpressionSyntax argument, out string name, BindingDiagnosticBag diagnostics, bool top = true)
Binder\Binder_Operators.cs (22)
561TypeSymbol getResultType(ExpressionSyntax node, TypeSymbol leftType, BindingDiagnosticBag diagnostics) 894ExpressionSyntax current = node; 1324private void ReportBinaryOperatorError(ExpressionSyntax node, BindingDiagnosticBag diagnostics, SyntaxToken operatorToken, BoundExpression left, BoundExpression right, 1394ExpressionSyntax child; 3263private BoundExpression BindIncrementOperator(ExpressionSyntax node, ExpressionSyntax operandSyntax, SyntaxToken operatorToken, BindingDiagnosticBag diagnostics) 3270BoundExpression bindIncrementOperator(ExpressionSyntax node, ExpressionSyntax operandSyntax, SyntaxToken operatorToken, ref OperatorResolutionForReporting operatorResolutionForReporting, BindingDiagnosticBag diagnostics) 3444ExpressionSyntax node, 3487ExpressionSyntax node, 3527ExpressionSyntax node, 3669TypeSymbol getResultType(ExpressionSyntax node, TypeSymbol operandType, InstanceUserDefinedIncrementUsageMode mode, BindingDiagnosticBag diagnostics) 3678ExpressionSyntax node, 3762ExpressionSyntax node, 4818protected static bool IsUnderscore(ExpressionSyntax node) => 4989ExpressionSyntax possibleType, 5926var whenTrue = node.WhenTrue.CheckAndUnwrapRefExpression(diagnostics, out var whenTrueRefKind); 5927var whenFalse = node.WhenFalse.CheckAndUnwrapRefExpression(diagnostics, out var whenFalseRefKind); 5951private BoundExpression BindValueConditionalOperator(ConditionalExpressionSyntax node, ExpressionSyntax whenTrue, ExpressionSyntax whenFalse, BindingDiagnosticBag diagnostics) 5992private BoundExpression BindRefConditionalOperator(ConditionalExpressionSyntax node, ExpressionSyntax whenTrue, ExpressionSyntax whenFalse, BindingDiagnosticBag diagnostics)
Binder\Binder_Patterns.cs (10)
971ExpressionSyntax expression, 982ExpressionSyntax innerExpression = SkipParensAndNullSuppressions(expression, diagnostics, ref hasErrors); 1061private static ExpressionSyntax SkipParensAndNullSuppressions(ExpressionSyntax e, BindingDiagnosticBag diagnostics, ref bool hasErrors) 1092ExpressionSyntax patternExpression, 1122ExpressionSyntax patternExpression, 1142ExpressionSyntax patternExpression, 2251ExpressionSyntax? expr = p.ExpressionColon?.Expression; 2302TypeSymbol inputType, ExpressionSyntax expr, BindingDiagnosticBag diagnostics, ref bool hasErrors, out NamedTypeSymbol? unionType) 2459ExpressionSyntax innerExpression = SkipParensAndNullSuppressions(node.Expression, diagnostics, ref hasErrors);
Binder\Binder_Query.cs (8)
231var v = selectClause.Expression; 254var v = groupClause.GroupExpression; 255var k = groupClause.ByExpression; 773private BoundBlock CreateLambdaBlockForQueryClause(ExpressionSyntax expression, BoundExpression result, BindingDiagnosticBag diagnostics) 831private UnboundLambda MakeQueryUnboundLambda(RangeVariableMap qvm, RangeVariableSymbol parameter, ExpressionSyntax expression, bool withDependencies) 836private UnboundLambda MakeQueryUnboundLambda(RangeVariableMap qvm, ImmutableArray<RangeVariableSymbol> parameters, ExpressionSyntax expression, bool withDependencies) 847private UnboundLambda MakeQueryUnboundLambdaWithCast(RangeVariableMap qvm, RangeVariableSymbol parameter, ExpressionSyntax expression, TypeSyntax castTypeSyntax, TypeWithAnnotations castType, bool withDependencies) 872Debug.Assert(node is ExpressionSyntax || LambdaUtilities.IsQueryPairLambda(node));
Binder\Binder_Statements.cs (20)
393private BoundExpression BindThrownExpression(ExpressionSyntax exprSyntax, BindingDiagnosticBag diagnostics, ref bool hasErrors) 439ExpressionSyntax exprSyntax = node.Expression; 649private BoundExpressionStatement BindExpressionStatement(CSharpSyntaxNode node, ExpressionSyntax syntax, bool allowsAnyExpression, BindingDiagnosticBag diagnostics) 872ExpressionSyntax value; 878protected BoundExpression BindInferredVariableInitializer(BindingDiagnosticBag diagnostics, ExpressionSyntax initializer, BindValueKind valueKind, CSharpSyntaxNode errorSyntax) 920out ExpressionSyntax value) 1013ExpressionSyntax value; 1146foreach (var expressionSyntax in rankSpecifier.Sizes) 1421var rhsExpr = node.Right.CheckAndUnwrapRefExpression(diagnostics, out var refKind); 1867ExpressionSyntax node, 2650internal BoundExpression BindBooleanExpression(ExpressionSyntax node, BindingDiagnosticBag diagnostics) 2905internal BoundStatement BindStatementExpressionList(SeparatedSyntaxList<ExpressionSyntax> statements, BindingDiagnosticBag diagnostics) 2914var syntax = statements[0]; 2922var syntax = statements[i]; 3064var expressionSyntax = syntax.Expression?.CheckAndUnwrapRefExpression(diagnostics, out refKind); 3538internal BoundBlock CreateBlockFromExpression(CSharpSyntaxNode node, ImmutableArray<LocalSymbol> locals, RefKind refKind, BoundExpression expression, ExpressionSyntax expressionSyntax, BindingDiagnosticBag diagnostics) 3666ExpressionSyntax expressionSyntax = expressionBody.Expression.CheckAndUnwrapRefExpression(diagnostics, out refKind); 3676public BoundBlock BindLambdaExpressionAsBlock(ExpressionSyntax body, BindingDiagnosticBag diagnostics) 3682var expressionSyntax = body.CheckAndUnwrapRefExpression(diagnostics, out refKind); 3688public BoundBlock CreateBlockFromExpression(ExpressionSyntax body, BoundExpression expression, BindingDiagnosticBag diagnostics)
Binder\Binder_Symbols.cs (10)
187/// Otherwise, call <see cref="Binder.BindTypeOrAlias(ExpressionSyntax, BindingDiagnosticBag, ConsList{TypeSymbol}, bool)"/> instead. 305internal TypeWithAnnotations BindType(ExpressionSyntax syntax, BindingDiagnosticBag diagnostics, ConsList<TypeSymbol> basesBeingResolved = null, bool suppressUseSiteDiagnostics = false) 314internal TypeWithAnnotations BindType(ExpressionSyntax syntax, BindingDiagnosticBag diagnostics, out AliasSymbol alias, ConsList<TypeSymbol> basesBeingResolved = null) 323internal NamespaceOrTypeOrAliasSymbolWithAnnotations BindTypeOrAlias(ExpressionSyntax syntax, BindingDiagnosticBag diagnostics, ConsList<TypeSymbol> basesBeingResolved = null, bool suppressUseSiteDiagnostics = false) 387internal NamespaceOrTypeOrAliasSymbolWithAnnotations BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, BindingDiagnosticBag diagnostics, ConsList<TypeSymbol> basesBeingResolved = null) 397internal NamespaceOrTypeOrAliasSymbolWithAnnotations BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, BindingDiagnosticBag diagnostics, ConsList<TypeSymbol> basesBeingResolved, bool suppressUseSiteDiagnostics) 411/// <see cref="BindQualifiedName(ExpressionSyntax, SimpleNameSyntax, BindingDiagnosticBag, ConsList{TypeSymbol}, bool)"/> 420internal NamespaceOrTypeOrAliasSymbolWithAnnotations BindNamespaceOrTypeOrAliasSymbol(ExpressionSyntax syntax, BindingDiagnosticBag diagnostics, ConsList<TypeSymbol> basesBeingResolved, bool suppressUseSiteDiagnostics) 1665ExpressionSyntax leftName, 2390while (node is ExpressionSyntax)
Binder\EarlyWellKnownAttributeBinder.cs (1)
57internal static bool CanBeValidAttributeArgument(ExpressionSyntax node)
Binder\ExpressionListVariableBinder.cs (2)
18private readonly SeparatedSyntaxList<ExpressionSyntax> _expressions; 20internal ExpressionListVariableBinder(SeparatedSyntaxList<ExpressionSyntax> expressions, Binder next) : base(next)
Binder\ExpressionVariableFinder.cs (7)
58Debug.Assert(node is ExpressionSyntax); 113SeparatedSyntaxList<ExpressionSyntax> nodes) 119foreach (ExpressionSyntax n in nodes) 323var operands = ArrayBuilder<ExpressionSyntax>.GetInstance(); 324ExpressionSyntax current = node; 467ExpressionSyntax possibleTupleDeclaration, 579SeparatedSyntaxList<ExpressionSyntax> nodes)
Binder\FixedStatementBinder.cs (1)
37foreach (var size in rankSpecifier.Sizes)
Binder\ForEachLoopBinder.cs (8)
102ExpressionSyntax declaration, 197ExpressionSyntax variables = ((ForEachVariableStatementSyntax)_syntax).Variable; 203ExpressionSyntax expression = null; 261var expr = _syntax.Expression; 382var variables = node.Variable; 387ExpressionSyntax expression = null; 620var expr = _syntax.Expression; 628internal TypeWithAnnotations InferCollectionElementType(BindingDiagnosticBag diagnostics, ExpressionSyntax collectionSyntax)
Binder\ForLoopBinder.cs (4)
37foreach (var size in rankSpecifier.Sizes) 93ExpressionSyntax conditionSyntax = node.Condition; 102SeparatedSyntaxList<ExpressionSyntax> incrementors = node.Incrementors; 105var scopeDesignator = incrementors.First();
Binder\LocalBinderFactory.cs (10)
58foreach (var size in rankSpecifier.Sizes) 80var expressionSyntax = syntax as ExpressionSyntax; 233var argumentExpression = node.ArgumentList.Arguments[0].Expression; 559ExpressionSyntax expressionSyntax = node.Expression; 619foreach (ExpressionSyntax initializer in node.Initializers) 625ExpressionSyntax condition = node.Condition; 633SeparatedSyntaxList<ExpressionSyntax> incrementors = node.Incrementors; 638foreach (ExpressionSyntax incrementor in incrementors) 1027(node == _root && node is ExpressionSyntax));
Binder\LocalScopeBinder.cs (4)
193foreach (var expression in rankSpecifier.Sizes) 234foreach (var expression in rankSpecifier.Sizes) 249foreach (var expression in rankSpecifier.Sizes) 287static void findExpressionVariablesInRankSpecifier(ExpressionSyntax expression, (LocalScopeBinder localScopeBinder, ArrayBuilder<LocalSymbol> locals, Binder localDeclarationBinder) args)
Binder\LockBinder.cs (2)
26protected override ExpressionSyntax TargetExpressionSyntax 38ExpressionSyntax exprSyntax = TargetExpressionSyntax;
Binder\LockOrUsingBinder.cs (2)
29protected abstract ExpressionSyntax TargetExpressionSyntax { get; } 39ExpressionSyntax targetExpressionSyntax = TargetExpressionSyntax;
Binder\NameofBinder.cs (2)
24private readonly ExpressionSyntax _nameofArgument; 31internal NameofBinder(ExpressionSyntax nameofArgument, Binder next, WithTypeParametersBinder? withTypeParametersBinder, Binder? withParametersBinder)
Binder\OpenTypeVisitor.cs (1)
33public static void Visit(ExpressionSyntax typeSyntax, out Dictionary<GenericNameSyntax, bool>? allowedMap)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (2)
682if (!binder.TryGetCollectionIterationType((ExpressionSyntax)argument.Syntax, targetType.StrippedType(), out TypeWithAnnotations targetElementType)) 907if (!binder.TryGetCollectionIterationType((ExpressionSyntax)argument.Syntax, formalType.Type, out TypeWithAnnotations targetElementType))
Binder\SwitchBinder.cs (1)
397ExpressionSyntax node = SwitchSyntax.Expression;
Binder\SwitchBinder_Patterns.cs (1)
298void reportIfConstantNamedUnderscore(BoundPattern pattern, ExpressionSyntax expression)
Binder\TypeofBinder.cs (1)
27internal TypeofBinder(ExpressionSyntax typeExpression, Binder next)
Binder\UsingStatementBinder.cs (4)
29ExpressionSyntax expressionSyntax = TargetExpressionSyntax; 47foreach (var size in rankSpecifier.Sizes) 68protected override ExpressionSyntax TargetExpressionSyntax 78ExpressionSyntax expressionSyntax = TargetExpressionSyntax;
Binder\WhileBinder.cs (1)
51ExpressionSyntax condition;
BoundTree\BoundTreeVisitors.cs (3)
187if (syntax is not (ExpressionSyntax or PatternSyntax)) 189syntax = syntax.DescendantNodes(n => n is not (ExpressionSyntax or PatternSyntax)).FirstOrDefault(n => n is ExpressionSyntax or PatternSyntax) ?? syntax;
BoundTree\UnboundLambda.cs (3)
92syntax is ExpressionSyntax && LambdaUtilities.IsLambdaBody(syntax, allowReducedLambdas: true) || // query lambdas 1653return lambdaBodyBinder.CreateBlockFromExpression((ExpressionSyntax)this.Body, expression, diagnostics); 1660return lambdaBodyBinder.BindLambdaExpressionAsBlock((ExpressionSyntax)this.Body, diagnostics);
Compilation\CSharpCompilation.cs (1)
886var expression = expressionStatement.Expression;
Compilation\CSharpSemanticModel.cs (33)
122(node is ExpressionSyntax && (isSpeculative || allowNamedArgumentName || !SyntaxFacts.IsNamedArgumentName(node))) || 148internal abstract SymbolInfo GetCollectionInitializerSymbolInfoWorker(InitializerExpressionSyntax collectionInitializer, ExpressionSyntax node, CancellationToken cancellationToken = default(CancellationToken)); 169internal abstract BoundExpression GetSpeculativelyBoundExpression(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols); 204internal Binder GetSpeculativeBinder(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 253private static BoundExpression GetSpeculativelyBoundExpressionHelper(Binder binder, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 281protected BoundExpression GetSpeculativelyBoundExpressionWithoutNullability(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols) 523public SymbolInfo GetSymbolInfo(ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 612public SymbolInfo GetCollectionInitializerSymbolInfo(ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 732public SymbolInfo GetSpeculativeSymbolInfo(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 966public TypeInfo GetTypeInfo(ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 1055public TypeInfo GetSpeculativeTypeInfo(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 1060internal CSharpTypeInfo GetSpeculativeTypeInfoWorker(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 1085public Conversion GetSpeculativeConversion(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 1100public ImmutableArray<ISymbol> GetMemberGroup(ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 1151public ImmutableArray<IPropertySymbol> GetIndexerGroup(ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 1164public Optional<object> GetConstantValue(ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 1633var parentExpr = token.Parent as ExpressionSyntax; 2408case ExpressionSyntax expression: 2469/// Analyze data-flow within an <see cref="ExpressionSyntax"/>. 2473public virtual DataFlowAnalysis AnalyzeDataFlow(ExpressionSyntax expression) 2819public abstract Conversion ClassifyConversion(ExpressionSyntax expression, ITypeSymbol destination, bool isExplicitInSource = false); 2837public Conversion ClassifyConversion(int position, ExpressionSyntax expression, ITypeSymbol destination, bool isExplicitInSource = false) 2890internal abstract Conversion ClassifyConversionForCast(ExpressionSyntax expression, TypeSymbol destination); 2906internal Conversion ClassifyConversionForCast(int position, ExpressionSyntax expression, TypeSymbol destination) 4291if (invocation != null && invocation.Expression.SkipParens() == ((ExpressionSyntax)boundNode.Syntax).SkipParens() && (object)call.Method != null) 5015case ExpressionSyntax expression: 5044case ExpressionSyntax expression: 5065case ExpressionSyntax expression: 5086case ExpressionSyntax expression: 5103return node is ExpressionSyntax expression 5438case ExpressionSyntax expressionSyntax: 5456return node is ExpressionSyntax expression
Compilation\MemberSemanticModel.cs (11)
172var expression = SyntaxFactory.GetStandaloneExpression(type); 192internal override BoundExpression GetSpeculativelyBoundExpression(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols) 230ExpressionSyntax typeOfArgument = null; 338else if ((current as ExpressionSyntax).IsValidScopeDesignator()) 438ExpressionSyntax expression, 495ExpressionSyntax expression, 856return GetLambdaParameterSymbol(parameter, (ExpressionSyntax)paramList.Parent, cancellationToken); 872ExpressionSyntax lambda, 1315internal override SymbolInfo GetCollectionInitializerSymbolInfoWorker(InitializerExpressionSyntax collectionInitializer, ExpressionSyntax node, CancellationToken cancellationToken = default(CancellationToken)) 2297!(node is ExpressionSyntax) && 2327if (!(node is ExpressionSyntax))
Compilation\SpeculativeSemanticModelWithMemberModel.cs (4)
221ExpressionSyntax expression, 229ExpressionSyntax expression, 485internal override SymbolInfo GetCollectionInitializerSymbolInfoWorker(InitializerExpressionSyntax collectionInitializer, ExpressionSyntax node, CancellationToken cancellationToken = default(CancellationToken)) 575internal override BoundExpression GetSpeculativelyBoundExpression(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols)
Compilation\SpeculativeSyntaxTreeSemanticModel.cs (5)
101private SpeculativeBindingOption GetSpeculativeBindingOption(ExpressionSyntax node) 119var expression = (ExpressionSyntax)node; 132var expression = (ExpressionSyntax)node;
Compilation\SyntaxTreeSemanticModel.cs (8)
223if ((object)result.Symbol == null && result.CandidateReason == CandidateReason.None && node is ExpressionSyntax && SyntaxFacts.IsInNamespaceOrTypeContext((ExpressionSyntax)node)) 233BoundExpression bound = binder.BindExpression((ExpressionSyntax)node, BindingDiagnosticBag.Discarded); 291internal override SymbolInfo GetCollectionInitializerSymbolInfoWorker(InitializerExpressionSyntax collectionInitializer, ExpressionSyntax node, CancellationToken cancellationToken = default(CancellationToken)) 520public override Conversion ClassifyConversion(ExpressionSyntax expression, ITypeSymbol destination, bool isExplicitInSource = false) 558internal override Conversion ClassifyConversionForCast(ExpressionSyntax expression, TypeSymbol destination) 738internal override BoundExpression GetSpeculativelyBoundExpression(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols) 2288public override DataFlowAnalysis AnalyzeDataFlow(ExpressionSyntax expression)
Compilation\SyntaxTreeSemanticModel_RegionAnalysisContext.cs (1)
20private RegionAnalysisContext RegionAnalysisContext(ExpressionSyntax expression)
Compiler\MethodCompiler.cs (1)
2215case ExpressionSyntax expression:
CSharpExtensions.cs (13)
496public static SymbolInfo GetSymbolInfo(this SemanticModel? semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 513public static SymbolInfo GetCollectionInitializerSymbolInfo(this SemanticModel? semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 595public static SymbolInfo GetSpeculativeSymbolInfo(this SemanticModel? semanticModel, int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 717public static TypeInfo GetTypeInfo(this SemanticModel? semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 751public static TypeInfo GetSpeculativeTypeInfo(this SemanticModel? semanticModel, int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 878public static Conversion GetSpeculativeConversion(this SemanticModel? semanticModel, int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption) 964public static ImmutableArray<ISymbol> GetMemberGroup(this SemanticModel? semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 1006public static ImmutableArray<IPropertySymbol> GetIndexerGroup(this SemanticModel? semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 1019public static Optional<object> GetConstantValue(this SemanticModel? semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken)) 1105/// Analyze data-flow within an <see cref="ExpressionSyntax"/>. 1107public static DataFlowAnalysis? AnalyzeDataFlow(this SemanticModel? semanticModel, ExpressionSyntax expression) 1330public static Conversion ClassifyConversion(this SemanticModel? semanticModel, ExpressionSyntax expression, ITypeSymbol destination, bool isExplicitInSource = false) 1350public static Conversion ClassifyConversion(this SemanticModel? semanticModel, int position, ExpressionSyntax expression, ITypeSymbol destination, bool isExplicitInSource = false)
FlowAnalysis\NullableWalker.cs (1)
4252var foundIterationType = _binder.TryGetCollectionIterationType((ExpressionSyntax)node.Syntax, collectionType, out targetElementType);
Lowering\LocalRewriter\LocalRewriter.cs (1)
878if (syntax is ExpressionSyntax { Parent: { } parent } && parent.Kind() == SyntaxKind.EqualsValueClause) // Should be the initial value.
SymbolDisplay\SymbolDisplayVisitor_Minimal.cs (1)
56return SyntaxFacts.IsInNamespaceOrTypeContext(startNode as ExpressionSyntax) || token.IsKind(SyntaxKind.NewKeyword) || this.InNamespaceOrType;
Symbols\Source\GlobalExpressionVariable.cs (3)
52Debug.Assert(nodeToBind.Kind() == SyntaxKind.VariableDeclarator || nodeToBind is ExpressionSyntax); 179Debug.Assert(nodeToBind.Kind() == SyntaxKind.VariableDeclarator || nodeToBind is ExpressionSyntax); 208binder.BindExpression((ExpressionSyntax)nodeToBind, BindingDiagnosticBag.Discarded);
Symbols\Source\SourceFixedFieldSymbol.cs (1)
84ExpressionSyntax sizeExpression = arguments[0].Expression;
Symbols\Source\SourceLocalSymbol.cs (7)
144ExpressionSyntax collection) 208nodeToBind is ExpressionSyntax); 719private readonly ExpressionSyntax _collection; 726ExpressionSyntax collection, 780ExpressionSyntax? expression = null; 822nodeToBind is ExpressionSyntax); 876_nodeBinder.BindExpression((ExpressionSyntax)_nodeToBind, BindingDiagnosticBag.Discarded);
Syntax\AnonymousFunctionExpressionSyntax.cs (1)
20: WithExpressionBody((ExpressionSyntax)body).WithBlock(null);
Syntax\AnonymousMethodExpressionSyntax.cs (4)
17: WithExpressionBody((ExpressionSyntax)body).WithBlock(null); 22: Update(asyncKeyword, delegateKeyword, parameterList, null, (ExpressionSyntax)body); 31public AnonymousMethodExpressionSyntax Update(SyntaxToken asyncKeyword, SyntaxToken delegateKeyword, ParameterListSyntax parameterList, BlockSyntax block, ExpressionSyntax expressionBody) 49public static AnonymousMethodExpressionSyntax AnonymousMethodExpression(SyntaxToken asyncKeyword, SyntaxToken delegateKeyword, ParameterListSyntax parameterList, BlockSyntax block, ExpressionSyntax expressionBody)
Syntax\CSharpPragmaWarningStateMap.cs (1)
120var currentErrorCode = currentPragmaDirective.ErrorCodes[x];
Syntax\DoStatementSyntax.cs (2)
11public DoStatementSyntax Update(SyntaxToken doKeyword, StatementSyntax statement, SyntaxToken whileKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, SyntaxToken semicolonToken) 20public static DoStatementSyntax DoStatement(SyntaxToken doKeyword, StatementSyntax statement, SyntaxToken whileKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, SyntaxToken semicolonToken)
Syntax\ExpressionStatementSyntax.cs (2)
28public ExpressionStatementSyntax Update(ExpressionSyntax expression, SyntaxToken semicolonToken) 37public static ExpressionStatementSyntax ExpressionStatement(ExpressionSyntax expression, SyntaxToken semicolonToken)
Syntax\ForEachStatementSyntax.cs (4)
11public ForEachStatementSyntax Update(SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 14public ForEachStatementSyntax Update(SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 23public static ForEachStatementSyntax ForEachStatement(SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 26public static ForEachStatementSyntax ForEachStatement(SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
Syntax\ForEachVariableStatementSyntax.cs (8)
11public ForEachVariableStatementSyntax Update(SyntaxToken forEachKeyword, SyntaxToken openParenToken, ExpressionSyntax variable, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 14public ForEachVariableStatementSyntax Update(SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, ExpressionSyntax variable, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 23public static ForEachVariableStatementSyntax ForEachVariableStatement(SyntaxToken forEachKeyword, SyntaxToken openParenToken, ExpressionSyntax variable, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 26public static ForEachVariableStatementSyntax ForEachVariableStatement(SyntaxToken awaitKeyword, SyntaxToken forEachKeyword, SyntaxToken openParenToken, ExpressionSyntax variable, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
Syntax\ForStatementSyntax.cs (9)
11public ForStatementSyntax Update(SyntaxToken forKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, SeparatedSyntaxList<ExpressionSyntax> initializers, SyntaxToken firstSemicolonToken, ExpressionSyntax? condition, SyntaxToken secondSemicolonToken, SeparatedSyntaxList<ExpressionSyntax> incrementors, SyntaxToken closeParenToken, StatementSyntax statement) 20public static ForStatementSyntax ForStatement(VariableDeclarationSyntax? declaration, SeparatedSyntaxList<ExpressionSyntax> initializers, ExpressionSyntax? condition, SeparatedSyntaxList<ExpressionSyntax> incrementors, StatementSyntax statement) 23public static ForStatementSyntax ForStatement(SyntaxToken forKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, SeparatedSyntaxList<ExpressionSyntax> initializers, SyntaxToken firstSemicolonToken, ExpressionSyntax? condition, SyntaxToken secondSemicolonToken, SeparatedSyntaxList<ExpressionSyntax> incrementors, SyntaxToken closeParenToken, StatementSyntax statement)
Syntax\GotoStatementSyntax.cs (3)
11public GotoStatementSyntax Update(SyntaxToken gotoKeyword, SyntaxToken caseOrDefaultKeyword, ExpressionSyntax expression, SyntaxToken semicolonToken) 20public static GotoStatementSyntax GotoStatement(SyntaxKind kind, SyntaxToken caseOrDefaultKeyword, ExpressionSyntax expression) 23public static GotoStatementSyntax GotoStatement(SyntaxKind kind, SyntaxToken gotoKeyword, SyntaxToken caseOrDefaultKeyword, ExpressionSyntax expression, SyntaxToken semicolonToken)
Syntax\IfStatementSyntax.cs (3)
11public IfStatementSyntax Update(SyntaxToken ifKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, StatementSyntax statement, ElseClauseSyntax? @else) 20public static IfStatementSyntax IfStatement(ExpressionSyntax condition, StatementSyntax statement, ElseClauseSyntax? @else) 23public static IfStatementSyntax IfStatement(SyntaxToken ifKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, StatementSyntax statement, ElseClauseSyntax? @else)
Syntax\LambdaExpressionSyntax.cs (1)
15: WithExpressionBody((ExpressionSyntax)body).WithBlock(null);
Syntax\LambdaUtilities.cs (3)
218private static bool IsReducedSelectOrGroupByClause(SelectOrGroupClauseSyntax selectOrGroupClause, ExpressionSyntax selectOrGroupExpression) 450SeparatedSyntaxList<ExpressionSyntax> incrementors = ((ForStatementSyntax)node.Parent).Incrementors; 468if (node is ExpressionSyntax && node.Parent != null && node.Parent.Parent == null)
Syntax\LockStatementSyntax.cs (2)
11public LockStatementSyntax Update(SyntaxToken lockKeyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement) 20public static LockStatementSyntax LockStatement(SyntaxToken lockKeyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
Syntax\NameColonSyntax.cs (2)
11public override ExpressionSyntax Expression => Name; 13internal override BaseExpressionColonSyntax WithExpressionCore(ExpressionSyntax expression)
Syntax\ParenthesizedLambdaExpressionSyntax.cs (10)
14: WithExpressionBody((ExpressionSyntax)body).WithBlock(null); 19: Update(asyncKeyword, parameterList, arrowToken, null, (ExpressionSyntax)body); 30public ParenthesizedLambdaExpressionSyntax Update(SyntaxToken asyncKeyword, ParameterListSyntax parameterList, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 33public ParenthesizedLambdaExpressionSyntax Update(SyntaxTokenList modifiers, ParameterListSyntax parameterList, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 36public ParenthesizedLambdaExpressionSyntax Update(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, ParameterListSyntax parameterList, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 45public static ParenthesizedLambdaExpressionSyntax ParenthesizedLambdaExpression(SyntaxToken asyncKeyword, ParameterListSyntax parameterList, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 48public static ParenthesizedLambdaExpressionSyntax ParenthesizedLambdaExpression(ParameterListSyntax parameterList, BlockSyntax? block, ExpressionSyntax? expressionBody) 51public static ParenthesizedLambdaExpressionSyntax ParenthesizedLambdaExpression(SyntaxTokenList modifiers, ParameterListSyntax parameterList, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 54public static ParenthesizedLambdaExpressionSyntax ParenthesizedLambdaExpression(SyntaxTokenList modifiers, ParameterListSyntax parameterList, BlockSyntax? block, ExpressionSyntax? expressionBody) 57public static ParenthesizedLambdaExpressionSyntax ParenthesizedLambdaExpression(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, ParameterListSyntax parameterList, BlockSyntax? block, ExpressionSyntax? expressionBody)
Syntax\ReturnStatementSyntax.cs (2)
11public ReturnStatementSyntax Update(SyntaxToken returnKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken) 20public static ReturnStatementSyntax ReturnStatement(SyntaxToken returnKeyword, ExpressionSyntax? expression, SyntaxToken semicolonToken)
Syntax\SimpleLambdaExpressionSyntax.cs (9)
14: WithExpressionBody((ExpressionSyntax)body).WithBlock(null); 19: Update(asyncKeyword, parameter, arrowToken, null, (ExpressionSyntax)body); 30public SimpleLambdaExpressionSyntax Update(SyntaxToken asyncKeyword, ParameterSyntax parameter, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 33public SimpleLambdaExpressionSyntax Update(SyntaxTokenList modifiers, ParameterSyntax parameter, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 43public static SimpleLambdaExpressionSyntax SimpleLambdaExpression(SyntaxList<AttributeListSyntax> attributeLists, SyntaxTokenList modifiers, ParameterSyntax parameter, BlockSyntax? block, ExpressionSyntax? expressionBody) 50public static SimpleLambdaExpressionSyntax SimpleLambdaExpression(SyntaxToken asyncKeyword, ParameterSyntax parameter, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 53public static SimpleLambdaExpressionSyntax SimpleLambdaExpression(ParameterSyntax parameter, BlockSyntax? block, ExpressionSyntax? expressionBody) 56public static SimpleLambdaExpressionSyntax SimpleLambdaExpression(SyntaxTokenList modifiers, ParameterSyntax parameter, SyntaxToken arrowToken, BlockSyntax? block, ExpressionSyntax? expressionBody) 59public static SimpleLambdaExpressionSyntax SimpleLambdaExpression(SyntaxTokenList modifiers, ParameterSyntax parameter, BlockSyntax? block, ExpressionSyntax? expressionBody)
Syntax\SwitchStatementSyntax.cs (2)
11public SwitchStatementSyntax Update(SyntaxToken switchKeyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken, SyntaxToken openBraceToken, SyntaxList<SwitchSectionSyntax> sections, SyntaxToken closeBraceToken) 20public static SwitchStatementSyntax SwitchStatement(SyntaxToken switchKeyword, SyntaxToken openParenToken, ExpressionSyntax expression, SyntaxToken closeParenToken, SyntaxToken openBraceToken, SyntaxList<SwitchSectionSyntax> sections, SyntaxToken closeBraceToken)
Syntax\SyntaxExtensions.cs (4)
202internal static ExpressionSyntax SkipParens(this ExpressionSyntax expression) 215internal static bool IsDeconstructionLeft(this ExpressionSyntax node) 343internal static CSharpSyntaxNode? GetContainingDeconstruction(this ExpressionSyntax expr)
Syntax\SyntaxFactory.cs (17)
1761public static ExpressionSyntax ParseExpression(string text, int offset = 0, ParseOptions? options = null, bool consumeFullText = true) 1768return CreateRed<ExpressionSyntax>(node, lexer.Options); 2107var parent = node.Parent as ExpressionSyntax; 2141public static ExpressionSyntax GetStandaloneExpression(ExpressionSyntax expression) 2143return SyntaxFactory.GetStandaloneNode(expression) as ExpressionSyntax ?? expression; 2159if (node == null || !(node is ExpressionSyntax || node is CrefSyntax)) 2323public static ExpressionSyntax? GetNonGenericExpression(ExpressionSyntax expression) 2475public static CaseSwitchLabelSyntax CaseSwitchLabel(ExpressionSyntax value) 2769public static SwitchStatementSyntax SwitchStatement(ExpressionSyntax expression, SyntaxList<SwitchSectionSyntax> sections) 2786public static SwitchStatementSyntax SwitchStatement(ExpressionSyntax expression) 2794: SimpleLambdaExpression(parameter, null, (ExpressionSyntax)body); 2799: SimpleLambdaExpression(asyncKeyword, parameter, arrowToken, null, (ExpressionSyntax)body); 2807: ParenthesizedLambdaExpression(parameterList, null, (ExpressionSyntax)body); 2812: ParenthesizedLambdaExpression(asyncKeyword, parameterList, arrowToken, null, (ExpressionSyntax)body);
Syntax\SyntaxFacts.cs (9)
54public static bool IsInvoked(ExpressionSyntax node) 56node = (ExpressionSyntax)SyntaxFactory.GetStandaloneExpression(node); 64public static bool IsIndexed(ExpressionSyntax node) 66node = (ExpressionSyntax)SyntaxFactory.GetStandaloneExpression(node); 71public static bool IsNamespaceAliasQualifier(ExpressionSyntax node) 82public static bool IsInTypeOnlyContext(ExpressionSyntax node) 240public static bool IsInNamespaceOrTypeContext(ExpressionSyntax? node) 489if (syntax is ExpressionSyntax expr) 616node.DescendantNodesAndSelf(child => !IsNestedFunction(child) && !(node is ExpressionSyntax)).Any(n => n is ReturnStatementSyntax { Expression: { } });
Syntax\SyntaxNodeExtensions.cs (8)
110return syntax is StatementSyntax || IsValidScopeDesignator(syntax as ExpressionSyntax); 114internal static bool IsValidScopeDesignator(this ExpressionSyntax? expression) 195internal static SyntaxToken ExtractAnonymousTypeMemberName(this ExpressionSyntax input) 318internal static ExpressionSyntax? CheckAndUnwrapRefExpression( 319this ExpressionSyntax? syntax, 336internal static void CheckDeconstructionCompatibleArgument(this ExpressionSyntax expression, BindingDiagnosticBag diagnostics) 352private static bool IsDeconstructionCompatibleArgument(ExpressionSyntax expression) 357var invocationTarget = invocation.Expression;
Syntax\ThrowStatementSyntax.cs (2)
11public ThrowStatementSyntax Update(SyntaxToken throwKeyword, ExpressionSyntax expression, SyntaxToken semicolonToken) 20public static ThrowStatementSyntax ThrowStatement(SyntaxToken throwKeyword, ExpressionSyntax expression, SyntaxToken semicolonToken)
Syntax\UsingStatementSyntax.cs (5)
11public UsingStatementSyntax Update(SyntaxToken usingKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, ExpressionSyntax? expression, SyntaxToken closeParenToken, StatementSyntax statement) 14public UsingStatementSyntax Update(SyntaxToken awaitKeyword, SyntaxToken usingKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, ExpressionSyntax? expression, SyntaxToken closeParenToken, StatementSyntax statement) 23public static UsingStatementSyntax UsingStatement(SyntaxToken usingKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, ExpressionSyntax? expression, SyntaxToken closeParenToken, StatementSyntax statement) 26public static UsingStatementSyntax UsingStatement(SyntaxToken awaitKeyword, SyntaxToken usingKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax? declaration, ExpressionSyntax? expression, SyntaxToken closeParenToken, StatementSyntax statement) 29public static UsingStatementSyntax UsingStatement(VariableDeclarationSyntax? declaration, ExpressionSyntax? expression, StatementSyntax statement)
Syntax\WhileStatementSyntax.cs (2)
11public WhileStatementSyntax Update(SyntaxToken whileKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, StatementSyntax statement) 20public static WhileStatementSyntax WhileStatement(SyntaxToken whileKeyword, SyntaxToken openParenToken, ExpressionSyntax condition, SyntaxToken closeParenToken, StatementSyntax statement)
Syntax\YieldStatementSyntax.cs (2)
11public YieldStatementSyntax Update(SyntaxToken yieldKeyword, SyntaxToken returnOrBreakKeyword, ExpressionSyntax expression, SyntaxToken semicolonToken) 20public static YieldStatementSyntax YieldStatement(SyntaxKind kind, SyntaxToken yieldKeyword, SyntaxToken returnOrBreakKeyword, ExpressionSyntax expression, SyntaxToken semicolonToken)
Microsoft.CodeAnalysis.CSharp.Analyzers (4)
MetaAnalyzers\Fixers\CSharpCompareSymbolsCorrectlyFix.cs (2)
20=> SyntaxFactory.ConditionalAccessExpression((ExpressionSyntax)expression, (ExpressionSyntax)whenNotNull);
MetaAnalyzers\Fixers\CSharpPreferIsKindFix.cs (2)
80private static ExpressionSyntax ConvertKindNameToIsKind(ExpressionSyntax expression)
Microsoft.CodeAnalysis.CSharp.CodeStyle (396)
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (13)
18ExpressionSyntax, ExpressionSyntax, SyntaxKind>(CSharpExpressionPrecedenceService.Instance) 49protected override int GetPrecedence(ExpressionSyntax binaryLike) 52protected override bool IsBinaryLike(ExpressionSyntax node) 59protected override (ExpressionSyntax, SyntaxToken, ExpressionSyntax) GetPartsOfBinaryLike(ExpressionSyntax binaryLike) 71protected override ExpressionSyntax? TryGetAppropriateParent(ExpressionSyntax binaryLike) 74ExpressionSyntax expression => expression, 75ConstantPatternSyntax { Parent: ExpressionSyntax expression } => expression, 76ConstantPatternSyntax { Parent: UnaryPatternSyntax { Parent: ExpressionSyntax expression } } => expression, 80protected override bool IsAsExpression(ExpressionSyntax node)
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionDiagnosticAnalyzer.Analyzer.cs (1)
24private ExpressionSyntax? _assignmentTargetOpt;
src\roslyn\src\Analyzers\CSharp\Analyzers\HiddenExplicitCast\CSharpHiddenExplicitCastDiagnosticAnalyzer.cs (2)
43var currentExpression = castExpression.Expression; 46var inner = currentExpression.WalkDownParentheses().WalkDownSuppressions();
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (1)
88var argumentExpression = argumentNode.Expression;
src\roslyn\src\Analyzers\CSharp\Analyzers\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs (4)
122var expr = condition.Left.IsKind(SyntaxKind.NullLiteralExpression) 145bool InvocationExpressionIsEquivalent(ExpressionSyntax expression) 308private static bool IsNullCheckExpression(ExpressionSyntax left, ExpressionSyntax right)
src\roslyn\src\Analyzers\CSharp\Analyzers\QualifyMemberAccess\CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (2)
18: AbstractQualifyMemberAccessDiagnosticAnalyzer<SyntaxKind, ExpressionSyntax, SimpleNameSyntax> 23protected override bool IsAlreadyQualifiedMemberAccess(ExpressionSyntax node)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveConfusingSuppression\CSharpRemoveConfusingSuppressionDiagnosticAnalyzer.cs (1)
31var left = node switch
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryCast\CSharpRemoveUnnecessaryCastDiagnosticAnalyzer.cs (3)
20: AbstractRemoveUnnecessaryCastDiagnosticAnalyzer<SyntaxKind, ExpressionSyntax> 25protected override bool IsUnnecessaryCast(SemanticModel model, ExpressionSyntax cast, CancellationToken cancellationToken) 28protected override TextSpan GetFadeSpan(ExpressionSyntax node)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (6)
87var invokedExpression = invocation.Expression; 192foreach (var candidate in outermostBody.DescendantNodes().OfType<ExpressionSyntax>()) 208var rewrittenExpression = analyzer.ReplacedExpression; 288private static bool MayHaveSideEffects(ExpressionSyntax expression) 334ExpressionSyntax expression,
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (2)
50var inner = parenthesizedExpression.Expression; 56ExpressionSyntax parentExpression;
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyBooleanExpression\CSharpSimplifyConditionalDiagnosticAnalyzer.cs (2)
19ExpressionSyntax, 25protected override CommonConversion GetConversion(SemanticModel semanticModel, ExpressionSyntax node, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationDiagnosticAnalyzer.cs (2)
18: AbstractSimplifyInterpolationDiagnosticAnalyzer<InterpolationSyntax, ExpressionSyntax> 22protected override AbstractSimplifyInterpolationHelpers<InterpolationSyntax, ExpressionSyntax> Helpers => CSharpSimplifyInterpolationHelpers.Instance;
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationHelpers.cs (1)
11: AbstractSimplifyInterpolationHelpers<InterpolationSyntax, ExpressionSyntax>
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqExpressionDiagnosticAnalyzer.cs (1)
17ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorDiagnosticAnalyzer.cs (1)
71static bool IsFieldValueAssignmentExpression(ExpressionSyntax expression)
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
49public static bool IsMergable([NotNullWhen(true)] ExpressionSyntax? expression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseAutoProperty\CSharpUseAutoPropertyAnalyzer.cs (11)
26ExpressionSyntax, 44protected override ExpressionSyntax? GetFieldInitializer(VariableDeclaratorSyntax variable, CancellationToken cancellationToken) 87bool CouldReferenceField(ExpressionSyntax expression) 94void AddIneligibleFieldsForExpression(ExpressionSyntax expression, bool alwaysRestricted = false) 153private static bool CheckExpressionSyntactically(ExpressionSyntax expression) 171protected override ExpressionSyntax? GetGetterExpression(IMethodSymbol getMethod, CancellationToken cancellationToken) 181var expr = GetGetterExpressionFromSymbol(getMethod, cancellationToken); 188private static ExpressionSyntax? GetGetterExpressionFromSymbol(IMethodSymbol getMethod, CancellationToken cancellationToken) 204protected override ExpressionSyntax? GetSetterExpression( 214var setExpression = GetExpressionFromSetter(setAccessor); 226private static ExpressionSyntax? GetExpressionFromSetter(AccessorDeclarationSyntax? setAccessor)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForIfNullStatementCheckDiagnosticAnalyzer.cs (4)
20ExpressionSyntax, 37protected override ExpressionSyntax GetConditionOfIfStatement(IfStatementSyntax ifStatement) 40protected override bool IsNullCheck(ExpressionSyntax condition, [NotNullWhen(true)] out ExpressionSyntax? checkedExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
18ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
18ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForArrayDiagnosticAnalyzer.cs (3)
156var arrayCreationExpression = isConcreteOrImplicitArrayCreation 157? (ExpressionSyntax)initializer.GetRequiredParent() 205SyntaxNodeAnalysisContext context, SyntaxTree syntaxTree, NotificationOption2 notification, ExpressionSyntax expression, bool changesSemantics)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (1)
155var state = new UpdateExpressionState<ExpressionSyntax, StatementSyntax>(
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (2)
38var nodeToReplace = 42? (ExpressionSyntax)invocation
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs (5)
25using FluentState = UpdateExpressionState<ExpressionSyntax, StatementSyntax>; 177var current = memberAccess.Expression; 292void AddFinalMatch(ExpressionSyntax expression) 326bool IsListLike(ExpressionSyntax expression) 343foreach (var expression in initializer.Expressions)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (22)
63ExpressionSyntax expression, 81ExpressionSyntax expression, 93var topMostExpression = expression.WalkUpParentheses(); 354SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 395using var _1 = ArrayBuilder<ExpressionSyntax>.GetInstance(out var expressionsToProcess); 396using var _2 = PooledHashSet<ExpressionSyntax>.GetInstance(out var seenExpressions); 405var locallyScopedExpression = expressionsToProcess.Pop().WalkUpParentheses(); 492void AddExpressionToProcess(ExpressionSyntax expression) 554if (argument.Parent is not BaseArgumentListSyntax { Parent: ExpressionSyntax parentInvocation } argumentList) 593bool IsPrimitiveConstant(ExpressionSyntax expression) 606i => i.IsToken ? i : CreateElement((ExpressionSyntax)i.AsNode()!)); 623CollectionElementSyntax CreateElement(ExpressionSyntax expression) 758where TArrayCreationExpressionSyntax : ExpressionSyntax 1025var argExpression = argument.Expression; 1059public static bool IsIterable(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 1093ExpressionSyntax expression, 1168static bool IsPossiblyDottedGenericName(ExpressionSyntax expression) 1173if (expression is MemberAccessExpressionSyntax { Expression: ExpressionSyntax childName, Name: GenericNameSyntax } && 1182static bool IsPossiblyDottedName(ExpressionSyntax name) 1187if (name is MemberAccessExpressionSyntax { Expression: ExpressionSyntax childName, Name: IdentifierNameSyntax } && 1207var expression = arguments.Single().Expression; 1223nodeOrToken => nodeOrToken.IsToken ? nodeOrToken : Argument((ExpressionSyntax)nodeOrToken.AsNode()!)));
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUpdateExpressionSyntaxHelper.cs (3)
11internal sealed class CSharpUpdateExpressionSyntaxHelper : IUpdateExpressionSyntaxHelper<ExpressionSyntax, StatementSyntax> 20out ExpressionSyntax expression, 36out ExpressionSyntax condition,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (8)
19ExpressionSyntax, 29protected override IUpdateExpressionSyntaxHelper<ExpressionSyntax, StatementSyntax> SyntaxHelper 167using var _1 = ArrayBuilder<ExpressionSyntax>.GetInstance(out var spreadElements); 194var currentArgumentExpression = argumentList.Arguments[0].Expression; 195using var _2 = ArrayBuilder<ExpressionSyntax>.GetInstance(out var expressionPieces); 219var piece = expressionPieces[i]; 238foreach (var piece in expressionPieces) 241var current = piece;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerDiagnosticAnalyzer.cs (3)
28ExpressionSyntax, 71if (match.Node is ExpressionSyntax expression) 86foreach (var expression in initializer.Expressions)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCompoundAssignment\CSharpUseCompoundCoalesceAssignmentDiagnosticAnalyzer.cs (7)
62var coalesceLeft = coalesceExpression.Left; 63var coalesceRight = coalesceExpression.Right; 134if (!IsReferenceEqualsNullCheck(semanticModel, ifStatement.Condition, cancellationToken, out var testedExpression)) 174ExpressionSyntax condition, 176[NotNullWhen(true)] out ExpressionSyntax? testedExpression) 195var arg0 = invocation.ArgumentList.Arguments[0].Expression; 196var arg1 = invocation.ArgumentList.Arguments[1].Expression;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBodyForLambda\UseExpressionBodyForLambdaHelpers.cs (5)
32var expressionBodyOpt = GetBodyAsExpression(declaration); 77var expressionBody = GetBodyAsExpression(declaration); 89internal static ExpressionSyntax? GetBodyAsExpression(LambdaExpressionSyntax declaration) 90=> declaration.Body as ExpressionSyntax; 114[NotNullWhen(true)] out ExpressionSyntax? expression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorDiagnosticAnalyzer.cs (2)
70SemanticModel semanticModel, ExpressionSyntax left, ExpressionSyntax right)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (2)
271var nodeToCheck = identifierName.WalkUpParentheses(); 336var value = variableDeclarator.Initializer.Value.WalkDownParentheses();
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (4)
20ExpressionSyntax, 43ISyntaxFacts syntaxFacts, ExpressionSyntax conditionNode, 44[NotNullWhen(true)] out ExpressionSyntax? conditionPartToCheck, out bool isEquals) 71[NotNullWhen(true)] out ExpressionSyntax? condition,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseObjectInitializer\CSharpUseNamedMemberInitializerAnalyzer.cs (1)
14ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseObjectInitializer\CSharpUseObjectInitializerDiagnosticAnalyzer.cs (1)
18ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\AnalyzedPattern.cs (4)
92internal sealed class Constant(ExpressionSyntax expression, IOperation target) : AnalyzedPattern(target) 94public readonly ExpressionSyntax ExpressionSyntax = expression; 100internal sealed class Relational(BinaryOperatorKind operatorKind, ExpressionSyntax value, IOperation target) : AnalyzedPattern(target) 103public readonly ExpressionSyntax Value = value;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (5)
18return pattern?.Target.Syntax is ExpressionSyntax ? pattern : null; 101ConstantResult.Left when op.LeftOperand.Syntax is ExpressionSyntax left 106ConstantResult.Right when op.RightOperand.Syntax is ExpressionSyntax right 116ConstantResult.Left when op.LeftOperand.Syntax is ExpressionSyntax left 118ConstantResult.Right when op.RightOperand.Syntax is ExpressionSyntax right
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (4)
49var expression = (ExpressionSyntax)context.Node; 123private static bool IsTopmostExpression(ExpressionSyntax node) 130ExpressionSyntax => false,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (10)
21private readonly ExpressionSyntax _comparison; 22private readonly ExpressionSyntax _operand; 31ExpressionSyntax comparison, 32ExpressionSyntax operand, 58ExpressionSyntax comparison, 59ExpressionSyntax operand, 229case ExpressionSyntax expression: 263if (node is ExpressionSyntax currentExpression && 269if (_declarator.DescendantNodesAndSelf().OfType<ExpressionSyntax>().Any( 312private bool CheckExpression(ExpressionSyntax exprsesion)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (8)
71var comparison = (ExpressionSyntax)node; 79var operand = GetNullCheckOperand(comparisonLeft, comparison.Kind(), comparisonRight)?.WalkDownParentheses(); 120var typeNode = asExpression.Right; 294var initializerValue = declarator.Initializer?.Value; 336private static ExpressionSyntax? GetNullCheckOperand(ExpressionSyntax left, SyntaxKind comparisonKind, SyntaxNode right) 342return (ExpressionSyntax)right;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (1)
196var declaratorValue = declarator.Initializer.Value.WalkDownParentheses();
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (1)
42var whenNotNull = parentConditionalAccess.WhenNotNull;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseTupleSwap\CSharpUseTupleSwapDiagnosticAnalyzer.cs (7)
81var localDeclarationExprA = variableDeclarator.Initializer?.Value.WalkDownParentheses(); 87if (!IsSimpleAssignment(firstAssignmentStatement, out var firstAssignmentExprA, out var firstAssignmentExprB)) 92if (!IsSimpleAssignment(secondAssignmentStatement, out var secondAssignmentExprB, out var secondAssignmentExprTemp)) 131[NotNullWhen(true)] out ExpressionSyntax? left, 132[NotNullWhen(true)] out ExpressionSyntax? right)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (5)
31ExpressionSyntax initializerExpression, 109var containingTypeName = memberName.GetLeftSideOfDot(); 120ExpressionSyntax containingTypeName, 193private static ExpressionSyntax GetRightmostInvocationExpression(ExpressionSyntax node)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
173SyntaxToken token, ExpressionSyntax parentExpression, bool tokenIncludeDelimiters)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AssignmentExpressionSyntaxExtensions.cs (1)
15var left = assignment.Left;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\BlockSyntaxExtensions.cs (4)
38[NotNullWhen(true)] out ExpressionSyntax? expression, 151block.TryConvertToExpressionBody(languageVersion, preference, cancellationToken, out var expression, out semicolonToken)) 192ExpressionSyntax expression, ExpressionBodyPreference preference) 203private static bool TryGetExpression(StatementSyntax firstStatement, LanguageVersion languageVersion, [NotNullWhen(true)] out ExpressionSyntax? expression, out SyntaxToken semicolonToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (60)
20public static ExpressionSyntax? WalkUpParentheses(this ExpressionSyntax? expression) 28public static ExpressionSyntax WalkDownParentheses(this ExpressionSyntax expression) 36public static ExpressionSyntax WalkDownSuppressions(this ExpressionSyntax expression) 44public static bool IsQualifiedCrefName([NotNullWhen(true)] this ExpressionSyntax? expression) 47public static bool IsSimpleMemberAccessExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 50public static bool IsAnyMemberAccessExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 59public static bool IsMemberBindingExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 63public static bool IsRightSideOfQualifiedName([NotNullWhen(true)] this ExpressionSyntax? expression) 66public static bool IsRightSideOfColonColon(this ExpressionSyntax expression) 69public static bool IsRightSideOfDot([NotNullWhen(true)] this ExpressionSyntax? name) 72public static bool IsRightSideOfDotOrArrow([NotNullWhen(true)] this ExpressionSyntax? name) 75public static bool IsRightSideOfDotOrColonColon(this ExpressionSyntax name) 78public static bool IsRightSideOfDotOrArrowOrColonColon([NotNullWhen(true)] this ExpressionSyntax name) 81public static bool IsRightOfCloseParen(this ExpressionSyntax expression) 88public static bool IsLeftSideOfDot([NotNullWhen(true)] this ExpressionSyntax? expression) 97public static bool IsLeftSideOfSimpleMemberAccessExpression(this ExpressionSyntax expression) 101public static bool IsLeftSideOfDotOrArrow(this ExpressionSyntax expression) 105public static bool IsLeftSideOfQualifiedName(this ExpressionSyntax expression) 111public static bool IsExpressionOfInvocation(this ExpressionSyntax expression) 115public static bool TryGetNameParts(this ExpressionSyntax expression, [NotNullWhen(true)] out IList<string>? parts) 128public static bool TryGetNameParts(this ExpressionSyntax expression, List<string> parts) 169public static bool IsInConstantContext([NotNullWhen(true)] this ExpressionSyntax? expression) 196public static bool IsInOutContext([NotNullWhen(true)] this ExpressionSyntax? expression) 200public static bool IsInRefContext([NotNullWhen(true)] this ExpressionSyntax? expression) 207public static bool IsInRefContext([NotNullWhen(true)] this ExpressionSyntax? expression, [NotNullWhen(true)] out SyntaxNode? refParent) 210expression = (ExpressionSyntax)expression.Parent; 223public static bool IsInInContext([NotNullWhen(true)] this ExpressionSyntax? expression) 227private static ExpressionSyntax? GetExpressionToAnalyzeForWrites(ExpressionSyntax? expression) 231expression = (ExpressionSyntax)expression.GetRequiredParent(); 239public static bool IsOnlyWrittenTo([NotNullWhen(true)] this ExpressionSyntax? expression) 273private static bool IsExpressionOfArgumentInDeconstruction(ExpressionSyntax expr) 320[NotNullWhen(true)] this ExpressionSyntax? expression, 397public static bool IsAttributeNamedArgumentIdentifier([NotNullWhen(true)] this ExpressionSyntax? expression) 403public static bool IsOperandOfIncrementOrDecrementExpression(this ExpressionSyntax expression) 420public static bool IsNamedArgumentIdentifier(this ExpressionSyntax expression) 424[NotNullWhen(true)] this ExpressionSyntax? expression, SemanticModel semanticModel, CancellationToken cancellationToken) 454[NotNullWhen(true)] this ExpressionSyntax? expression, SemanticModel semanticModel, CancellationToken cancellationToken) 465this ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken) 604var parentNonExpression = expression.GetAncestors().SkipWhile(n => n is ExpressionSyntax).FirstOrDefault(); 605var topExpression = expression; 648public static bool IsNameOfArgumentExpression(this ExpressionSyntax expression) 658public static SimpleNameSyntax? GetRightmostName(this ExpressionSyntax node) 693public static OperatorPrecedence GetOperatorPrecedence(this ExpressionSyntax expression) 852this ExpressionSyntax expression, 872private static StatementSyntax ConvertToStatement(ExpressionSyntax expression, SyntaxToken semicolonToken, bool createReturnStatementForExpression) 900public static bool IsDirectChildOfMemberAccessExpression(this ExpressionSyntax expression) 903public static bool InsideCrefReference(this ExpressionSyntax expression) 907this ExpressionSyntax expression, 911var topExpression = expression.WalkUpParentheses(); 936bool HasType(ExpressionSyntax expression, [NotNullWhen(true)] out ITypeSymbol? type) 998ITypeSymbol? GetTargetTypeForConditionalExpression(ConditionalExpressionSyntax conditionalExpression, ExpressionSyntax expression) 1008ITypeSymbol? GetTargetTypeForLambdaExpression(LambdaExpressionSyntax lambda, ExpressionSyntax expression) 1055ITypeSymbol? GetTargetTypeForInitializerExpression(InitializerExpressionSyntax initializerExpression, ExpressionSyntax expression) 1064foreach (var sibling in initializerExpression.Expressions) 1084ITypeSymbol? GetTargetTypeForAssignmentExpression(AssignmentExpressionSyntax assignmentExpression, ExpressionSyntax expression) 1089ITypeSymbol? GetTargetTypeForBinaryExpression(BinaryExpressionSyntax binaryExpression, ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (16)
31var expression = node.Expression; 38var parentExpression = nodeParent.IsKind(SyntaxKind.ConstantPattern) 39? nodeParent.Parent as ExpressionSyntax 40: nodeParent as ExpressionSyntax; 345static bool ContainsConditionalAccessOnRightmostPath(ExpressionSyntax expr) 348for (var current = expr; current != null;) 355: current.ChildNodes().FirstOrDefault() as ExpressionSyntax; 363ParenthesizedExpressionSyntax node, ExpressionSyntax expression, 431ParenthesizedExpressionSyntax node, ExpressionSyntax parentExpression, SemanticModel semanticModel) 433var expression = node.Expression; 564var expression = node.Expression; 656private static bool IsPreviousExpressionPotentiallyAmbiguous(ExpressionSyntax node) 658ExpressionSyntax? previousExpression = null; 691private static bool IsNextExpressionPotentiallyAmbiguous(ExpressionSyntax node) 693ExpressionSyntax? nextExpression = null; 725private static bool IsSimpleOrDottedName(ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (12)
27if (name.Parent is ExpressionSyntax expression) 44if (name.Parent is ExpressionSyntax expression) 59private static void DecomposeName(ExpressionSyntax expression, out ExpressionSyntax qualifier, out string name, out int arity) 104ExpressionSyntax expression, 107var expr = SyntaxFactory.GetStandaloneExpression(expression); 108DecomposeName(expr, out var qualifier, out var name, out _); 137case ExpressionSyntax expression: 352this SemanticModel semanticModel, ExpressionSyntax expression, 358var current = expression; 429SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 431var topExpression = expression.WalkUpParentheses();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (1)
14public static ExpressionSyntax GetLeftSideOfDot(this SimpleNameSyntax name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (2)
179return token.Parent is ExpressionSyntax || token.Parent.IsKind(SyntaxKind.PropertyPatternClause); 403var expression = initializer.Expressions[0];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (1)
344foreach (var errorCode in pragmaWarningDirectiveTrivia.ErrorCodes)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\CSharpExpressionPrecedenceService.cs (2)
12internal sealed class CSharpExpressionPrecedenceService : AbstractCSharpPrecedenceService<ExpressionSyntax> 20public override OperatorPrecedence GetOperatorPrecedence(ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (1)
19internal sealed class CSharpRefactoringHelpers : AbstractRefactoringHelpers<ExpressionSyntax, ArgumentSyntax, ExpressionStatementSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (10)
44=> (node as ExpressionSyntax).IsWrittenTo(semanticModel, cancellationToken); 47=> (node as ExpressionSyntax).IsOnlyWrittenTo(); 50=> (node as ExpressionSyntax).IsInOutContext(); 53=> (node as ExpressionSyntax).IsInRefContext(); 56=> (node as ExpressionSyntax).IsInInContext(); 59=> (expression as ExpressionSyntax).CanReplaceWithRValue(semanticModel, cancellationToken); 193=> semanticModel.GetCollectionInitializerSymbolInfo((ExpressionSyntax)node, cancellationToken); 432=> (node as ExpressionSyntax).IsInsideNameOfExpression(semanticModel, cancellationToken); 459=> semanticModel.GenerateNameForExpression((ExpressionSyntax)expression, capitalize, cancellationToken); 488=> semanticModel.ClassifyConversion((ExpressionSyntax)expression, destination).ToCommonConversion();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (7)
183=> node is ExpressionSyntax expression ? SyntaxFactory.GetStandaloneExpression(expression) : node; 584=> SyntaxFacts.IsInNamespaceOrTypeContext(node as ExpressionSyntax); 612=> (node as ExpressionSyntax).IsInConstantContext(); 1058=> (node as ExpressionSyntax).IsLeftSideOfDot(); 1076=> (node as ExpressionSyntax).IsLeftSideOfAssignExpression(); 1079=> (node as ExpressionSyntax).IsLeftSideOfAnyAssignExpression(); 1082=> (node as ExpressionSyntax).IsLeftSideOfCompoundAssignExpression();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (52)
46public static bool IsUnnecessaryCast(ExpressionSyntax cast, SemanticModel semanticModel, CancellationToken cancellationToken) 125var leftOrRightChild = castExpression.WalkUpParentheses(); 143bool IsConstantZero(ExpressionSyntax child) 178ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 222private static bool CastRemovalCouldCauseSignExtensionWarning(ExpressionSyntax castSyntax, IConversionOperation conversionOperation) 249ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 289ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 634ExpressionSyntax castNode, 699ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, SemanticModel semanticModel, CancellationToken cancellationToken) 785ExpressionSyntax castNode, IConversionOperation originalConversionOperation, 786ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, 853ExpressionSyntax castNode, SemanticModel originalSemanticModel, 854ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, CancellationToken cancellationToken) 878ExpressionSyntax castNode, SemanticModel originalSemanticModel, 879ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, CancellationToken cancellationToken) 907ExpressionSyntax castNode, 909ExpressionSyntax rewrittenExpression, 911Func<ExpressionSyntax, TConditionalOrSwitchExpression?> getConditionalOrSwitchExpression, 912Func<TConditionalOrSwitchExpression, ImmutableArray<ExpressionSyntax>> getArmExpressions, 913Func<TConditionalOrSwitchExpression, ExpressionSyntax, ExpressionSyntax?> getAlternativeArm, 915where TConditionalOrSwitchExpression : ExpressionSyntax 920var parentExpression = castExpression.WalkUpParentheses(); 945foreach (var armExpression in getArmExpressions(originalConditionalOrSwitchExpression)) 1001var otherSide = getAlternativeArm(originalConditionalOrSwitchExpression, parentExpression); 1057ExpressionSyntax expression, 1151=> node is ExpressionSyntax expression && expression.WalkDownParentheses().Kind() is SyntaxKind.CastExpression or SyntaxKind.AsExpression; 1155ExpressionSyntax castOrAsNode, 1179var parent = castOrAsNode.WalkUpParentheses(); 1212ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 1280private static bool IsFieldOrArrayElement(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 1287ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken) 1300ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1353ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1386ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1417ExpressionSyntax rewrittenExpression, 1526ExpressionSyntax rewrittenExpression, 1568ExpressionSyntax expression, 1660ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1683private static (SemanticModel? rewrittenSemanticModel, ExpressionSyntax? rewrittenExpression) GetSemanticModelWithCastRemoved( 1684ExpressionSyntax castNode, 1685ExpressionSyntax castedExpressionNode, 1691var rewrittenExpression = analyzer.ReplacedExpression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (44)
31ExpressionSyntax, 56ExpressionSyntax expression, 57ExpressionSyntax newExpression, 68protected override bool CanAccessInstanceMemberThrough(ExpressionSyntax expression) 71protected override SyntaxNode GetSemanticRootForSpeculation(ExpressionSyntax expression) 107nodeToSpeculate is ExpressionSyntax || 119var isInNamespaceOrTypeContext = SyntaxFacts.IsInNamespaceOrTypeContext(originalNode as ExpressionSyntax); 181Debug.Assert(nodeToSpeculate is ExpressionSyntax); 191public bool ReplacementChangesSemanticsOfUnchangedLambda(ExpressionSyntax originalLambda, ExpressionSyntax replacedLambda) 302var expression = (ExpressionSyntax)currentReplacedNode.ChildNodes().First(); 368ExpressionSyntax originalOtherPartOfConditional, newOtherPartOfConditional; 418if (ReplacementBreaksBoxingInConditionalExpression(originalExpressionTypeInfo, newExpressionTypeInfo, (ExpressionSyntax)previousOriginalNode, (ExpressionSyntax)previousReplacedNode)) 464var previousReplacedExpression = (ExpressionSyntax)previousReplacedNode; 518ReplacementBreaksCollectionInitializerAddMethod((ExpressionSyntax)previousOriginalNode, (ExpressionSyntax)previousReplacedNode); 522return !TypesAreCompatible((ExpressionSyntax)currentOriginalNode, (ExpressionSyntax)currentReplacedNode); 531return !TypesAreCompatible((ExpressionSyntax)currentOriginalNode, (ExpressionSyntax)currentReplacedNode); 542private bool ReplacementBreaksBoxingInConditionalExpression(TypeInfo originalExpressionTypeInfo, TypeInfo newExpressionTypeInfo, ExpressionSyntax previousOriginalNode, ExpressionSyntax previousReplacedNode) 573private bool ReplacementBreaksCollectionInitializerAddMethod(ExpressionSyntax originalInitializer, ExpressionSyntax newInitializer) 588protected override ImmutableArray<ArgumentSyntax> GetArguments(ExpressionSyntax expression) 596private static BaseArgumentListSyntax GetArgumentList(ExpressionSyntax expression) 609protected override ExpressionSyntax GetReceiver(ExpressionSyntax expression) 620var result = ((InvocationExpressionSyntax)expression).Expression; 631var result = ((ElementAccessExpressionSyntax)expression).Expression; 645protected override bool IsInNamespaceOrTypeContext(ExpressionSyntax node) 648protected override ExpressionSyntax GetForEachStatementExpression(CommonForEachStatementSyntax forEachStatement) 651protected override ExpressionSyntax GetThrowStatementExpression(ThrowStatementSyntax throwStatement) 743ExpressionSyntax originalExpression, 744ExpressionSyntax newExpression, 813protected override bool ConversionsAreCompatible(SemanticModel originalModel, ExpressionSyntax originalExpression, SemanticModel newModel, ExpressionSyntax newExpression) 838private static bool ConditionalExpressionConversionsAreAllowed(ExpressionSyntax originalExpression) 841protected override bool ConversionsAreCompatible(ExpressionSyntax originalExpression, ITypeSymbol originalTargetType, ExpressionSyntax newExpression, ITypeSymbol newTargetType) 934protected override Conversion ClassifyConversion(SemanticModel model, ExpressionSyntax expression, ITypeSymbol targetType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (1)
57SyntaxToken identifier, TypeSyntax typeName, ExpressionSyntax initializer, SemanticModel semanticModel, CSharpSimplifierOptions options, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.State.cs (1)
93var initializerExpression = CSharpUseImplicitTypeHelper.GetInitializerExpression(initializer.Value);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (1)
136ExpressionSyntax initializer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (5)
240ExpressionSyntax initializer, 245var expression = GetInitializerExpression(initializer); 316internal static ExpressionSyntax GetInitializerExpression(ExpressionSyntax initializer) 318var current = (initializer as RefExpressionSyntax)?.Expression ?? initializer;
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (360)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddAnonymousTypeMemberName\CSharpAddAnonymousTypeMemberNameCodeFixProvider.cs (2)
22ExpressionSyntax, 34protected override ExpressionSyntax GetExpression(AnonymousObjectMemberDeclaratorSyntax declarator)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\ArgumentFixer.cs (1)
17protected override ExpressionSyntax GetExpressionOfArgument(ArgumentSyntax argument)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\AttributeArgumentFixer.cs (1)
17protected override ExpressionSyntax GetExpressionOfArgument(AttributeArgumentSyntax argument)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\CSharpAddExplicitCastCodeFixProvider.cs (8)
23: AbstractAddExplicitCastCodeFixProvider<ExpressionSyntax> 40protected override void GetPartsOfCastOrConversionExpression(ExpressionSyntax expression, out SyntaxNode type, out ExpressionSyntax castedExpression) 47protected override ExpressionSyntax Cast(ExpressionSyntax expression, ITypeSymbol type) 55ExpressionSyntax spanNode, 56ArrayBuilder<(ExpressionSyntax node, ITypeSymbol type)> candidates, 90SemanticModel semanticModel, ExpressionSyntax targetNode, ITypeSymbol conversionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddParameter\CSharpAddParameterCodeFixProvider.cs (2)
28ExpressionSyntax, 52protected override Argument<ExpressionSyntax> GetArgument(ArgumentSyntax argument)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AbstractAssignOutParametersCodeFixProvider.cs (1)
72if (location is ExpressionSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AssignOutParametersAtStartCodeFixProvider.cs (1)
28if (location is ExpressionSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.Rewriter.cs (19)
22private sealed class Rewriter : CSharpSyntaxVisitor<ExpressionSyntax> 28private ExpressionSyntax? _assignmentTarget; 55var switchExpression = rewriter.RewriteSwitchStatement( 65ExpressionSyntax switchExpression, 93private ExpressionStatementSyntax GenerateAssignment(ExpressionSyntax switchExpression, SyntaxKind assignmentKind, SyntaxTriviaList leadingTrivia) 104private StatementSyntax GenerateVariableDeclaration(ExpressionSyntax switchExpression, ITypeSymbol? declaratorToRemoveType) 180public override ExpressionSyntax VisitAssignmentExpression(AssignmentExpressionSyntax node) 186private ExpressionSyntax CastIfChangeInRuntimeRepresentation(ExpressionSyntax node) 205private ExpressionSyntax RewriteStatements(SyntaxList<StatementSyntax> statements) 209var result = Visit(statements[0]); 214public override ExpressionSyntax VisitSwitchStatement(SwitchStatementSyntax node) 217private ExpressionSyntax RewriteSwitchStatement( 236var armExpression = Visit(nextStatement); 277public override ExpressionSyntax VisitReturnStatement(ReturnStatementSyntax node) 283public override ExpressionSyntax VisitThrowStatement(ThrowStatementSyntax node) 291public override ExpressionSyntax VisitExpressionStatement(ExpressionStatementSyntax node) 293var result = Visit(node.Expression); 298public override ExpressionSyntax DefaultVisit(SyntaxNode node)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (8)
288public static ImmutableArray<ExpressionSyntax> GetAssignmentValuesForNonPrimaryConstructor( 295? assignment.Syntax as ExpressionSyntax 305if (arg is { Parameter: IParameterSymbol param, Value.Syntax: ExpressionSyntax captured }) 360public static ImmutableArray<ExpressionSyntax> GetAssignmentValuesFromObjectCreation( 378var dictionaryBuilder = ImmutableDictionary<ISymbol, ExpressionSyntax>.Empty.ToBuilder(); 385Value: IOperation { Syntax: ExpressionSyntax syntax } 401private static ImmutableArray<ExpressionSyntax> GetAssignmentExpressionsFromValuesMap( 403ImmutableDictionary<ISymbol, ExpressionSyntax> assignmentValues)
src\roslyn\src\Analyzers\CSharp\CodeFixes\DisambiguateSameVariable\CSharpDisambiguateSameVariableCodeFixProvider.cs (2)
148var newExpr = (ExpressionSyntax)newNameNode;
src\roslyn\src\Analyzers\CSharp\CodeFixes\FixReturnType\CSharpFixReturnTypeCodeFixProvider.cs (1)
166var argumentExpression = tuple.Arguments[i].Expression;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (10)
26: AbstractGenerateConstructorService<CSharpGenerateConstructorService, ExpressionSyntax> 45out ImmutableArray<Argument<ExpressionSyntax>> arguments, 69private static ImmutableArray<Argument<ExpressionSyntax>> GetArguments(SeparatedSyntaxList<ArgumentSyntax> arguments) 72private static ImmutableArray<Argument<ExpressionSyntax>> GetArguments(SeparatedSyntaxList<AttributeArgumentSyntax> arguments) 73=> arguments.SelectAsArray(a => new Argument<ExpressionSyntax>( 83out ImmutableArray<Argument<ExpressionSyntax>> arguments, 115out ImmutableArray<Argument<ExpressionSyntax>> arguments, 150out ImmutableArray<Argument<ExpressionSyntax>> arguments, 173protected override string GenerateNameForExpression(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 176protected override ITypeSymbol GetArgumentType(SemanticModel semanticModel, Argument<ExpressionSyntax> argument, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateEnumMember\CSharpGenerateEnumMemberService.cs (2)
20AbstractGenerateEnumMemberService<CSharpGenerateEnumMemberService, SimpleNameSyntax, ExpressionSyntax> 28[NotNullWhen(true)] out ExpressionSyntax? simpleNameOrMemberAccessExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateConversionCodeFixProvider.cs (1)
43node is ExpressionSyntax;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateMethodCodeFixProvider.cs (1)
62node is ExpressionSyntax;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (5)
25AbstractGenerateConversionService<CSharpGenerateConversionService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax> 29return node is ExpressionSyntax && 42SemanticDocument document, AbstractGenerateParameterizedMemberService<CSharpGenerateConversionService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state) 217protected override string GetImplicitConversionDisplayText(AbstractGenerateParameterizedMemberService<CSharpGenerateConversionService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state) 220protected override string GetExplicitConversionDisplayText(AbstractGenerateParameterizedMemberService<CSharpGenerateConversionService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateDeconstructMethodService.cs (2)
24AbstractGenerateDeconstructMethodService<CSharpGenerateDeconstructMethodService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax> 29protected override AbstractInvocationInfo CreateInvocationMethodInfo(SemanticDocument document, AbstractGenerateParameterizedMemberService<CSharpGenerateDeconstructMethodService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (4)
26AbstractGenerateMethodService<CSharpGenerateMethodService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax> 37protected override AbstractInvocationInfo CreateInvocationMethodInfo(SemanticDocument document, AbstractGenerateParameterizedMemberService<CSharpGenerateMethodService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state) 82[NotNullWhen(true)] out ExpressionSyntax? simpleNameOrMemberAccessExpression, 147ExpressionSyntax expression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateParameterizedMemberService.cs (2)
21internal abstract class CSharpGenerateParameterizedMemberService<TService> : AbstractGenerateParameterizedMemberService<TService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax> 22where TService : AbstractGenerateParameterizedMemberService<TService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>
src\roslyn\src\Analyzers\CSharp\CodeFixes\HiddenExplicitCast\CSharpHiddenExplicitCastCodeFixProvider.cs (1)
52return currentCast.WithExpression((ExpressionSyntax)g.CastExpression(typeToInsert, currentCast.Expression));
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (2)
88var invocationOrCreation = (ExpressionSyntax)invocationOrCreationLocation.FindNode(
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpAddYieldCodeFixProvider.cs (1)
89SemanticModel model, ExpressionSyntax? expression, [NotNullWhen(true)] out ITypeSymbol? returnExpressionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\NewLines\ArrowExpressionClausePlacement\ArrowExpressionClausePlacementCodeFixProvider.cs (1)
66ExpressionSyntax nextExpression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\NewLines\ConditionalExpressionPlacement\ConditionalExpressionPlacementCodeFixProvider.cs (1)
67ExpressionSyntax nextExpression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\PopulateSwitch\CSharpPopulateSwitchExpressionCodeFixProvider.cs (1)
25ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveAsyncModifier\CSharpRemoveAsyncModifierCodeFixProvider.cs (2)
24internal sealed partial class CSharpRemoveAsyncModifierCodeFixProvider() : AbstractRemoveAsyncModifierCodeFixProvider<ReturnStatementSyntax, ExpressionSyntax> 33protected override SyntaxNode? ConvertToBlockBody(SyntaxNode node, ExpressionSyntax expressionBody)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveConfusingSuppression\CSharpRemoveConfusingSuppressionCodeFixProvider.cs (2)
76var left = isNode switch 85var withoutSuppression = suppression.Operand.WithAppendedTrailingTrivia(suppression.OperatorToken.GetAllTrivia());
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryCast\CSharpRemoveUnnecessaryCastCodeFixProvider.cs (5)
41d => (ExpressionSyntax)d.AdditionalLocations[0].FindNode(getInnermostNodeForTie: true, cancellationToken)); 48var oldParent = castExpression.WalkUpParentheses(); 49var newParent = Recurse(oldParent); 56private static ExpressionSyntax Recurse(ExpressionSyntax old)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessarySuppressions\CSharpRemoveUnnecessaryNullableWarningSuppressionsCodeFixProvider.cs (1)
97var result = ((PostfixUnaryExpressionSyntax)current).Operand.WithTriviaFrom(current);
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (4)
28: AbstractRemoveUnusedValuesCodeFixProvider<ExpressionSyntax, StatementSyntax, BlockSyntax, 135return assignment.Update((ExpressionSyntax)newNameNode, assignment.OperatorToken, objectCreationNode); 209var leftOfAssignment = assignmentExpression.Left; 210var rightOfAssignment = assignmentExpression.Right;
src\roslyn\src\Analyzers\CSharp\CodeFixes\SimplifyInterpolation\CSharpSimplifyInterpolationCodeFixProvider.cs (3)
20ExpressionSyntax, 25protected override AbstractSimplifyInterpolationHelpers<InterpolationSyntax, ExpressionSyntax> Helpers => CSharpSimplifyInterpolationHelpers.Instance; 27protected override InterpolationSyntax WithExpression(InterpolationSyntax interpolation, ExpressionSyntax expression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\SimplifyPropertyPattern\CSharpSimplifyPropertyPatternCodeFixProvider.cs (2)
95private static MemberAccessExpressionSyntax? Merge(ExpressionSyntax? outerExpression, ExpressionSyntax? innerExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseAutoProperty\CSharpUseAutoPropertyCodeFixProvider.cs (2)
40ExpressionSyntax> 101var fieldInitializer = fieldDeclarator.Initializer?.Value;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (27)
43where TParentExpression : ExpressionSyntax 86if (preMatches is [{ Node: ExpressionSyntax } preMatch] && postMatches.IsEmpty) 90else if (preMatches.IsEmpty && postMatches is [{ Node: ExpressionSyntax } postMatch]) 215var expression = (ExpressionSyntax)(object)match.Node; 455bool useSpread, ExpressionSyntax expression) 531foreach (var expression in expressions) 538var indentedExpression = IndentNode(foreachStatement, foreachStatement.Expression, preferredIndentation); 565var condition = IndentNode(ifStatement, ifStatement.Condition, preferredIndentation).Parenthesize(includeElasticTrivia: false); 589else if (node is ExpressionSyntax expression) 801foreach (var expression in initializer.Expressions) 856else if (node is ExpressionSyntax expression) 865static ExpressionSyntax ConvertExpression( 866ExpressionSyntax expression, Func<ExpressionSyntax, ExpressionSyntax>? indent) 872static ImmutableArray<ExpressionSyntax> ConvertExpressions( 873ExpressionSyntax expression, Func<ExpressionSyntax, ExpressionSyntax>? indent) 888static ImmutableArray<ExpressionSyntax> ConvertAssignment( 889AssignmentExpressionSyntax assignment, Func<ExpressionSyntax, ExpressionSyntax> indent) 894static ImmutableArray<ExpressionSyntax> ConvertInvocation( 895InvocationExpressionSyntax invocation, Func<ExpressionSyntax, ExpressionSyntax> indent) 907ParsedDocument document, TParentExpression expressionToReplace, SyntaxFormattingOptions formattingOptions) where TParentExpression : ExpressionSyntax
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForArrayCodeFixProvider.cs (3)
28: AbstractUseCollectionExpressionCodeFixProvider<ExpressionSyntax>( 37ExpressionSyntax arrayCreationExpression, 100SemanticModel semanticModel, ExpressionSyntax expression, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForCreateCodeFixProvider.cs (1)
66var matches = expressions.SelectAsArray(e => new CollectionMatch<ExpressionSyntax>(e, useSpread, UseKeyValue: false));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForFluentCodeFixProvider.cs (3)
53var state = new UpdateExpressionState<ExpressionSyntax, StatementSyntax>( 103static ImmutableArray<CollectionMatch<ExpressionSyntax>> CreateMatches( 108using var result = TemporaryArray<CollectionMatch<ExpressionSyntax>>.Empty;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForNewCodeFixProvider.cs (1)
67var matches = expressions.SelectAsArray(e => new CollectionMatch<ExpressionSyntax>(e, useSpread, UseKeyValue: false));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForStackAllocCodeFixProvider.cs (2)
24: AbstractUseCollectionExpressionCodeFixProvider<ExpressionSyntax>( 33ExpressionSyntax stackAllocExpression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider.cs (2)
24ExpressionSyntax, 45ExpressionSyntax newObjectCreation = useCollectionExpression
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider_CollectionInitializer.cs (8)
34SeparatedSyntaxList<ExpressionSyntax> CreateCollectionInitializerExpressions() 38UseInitializerHelpers.AddExistingItems<CollectionMatch<SyntaxNode>, ExpressionSyntax>( 53var expression = ConvertExpression(statement.Expression) 68return SeparatedList<ExpressionSyntax>(nodesAndTokens); 93static ExpressionSyntax ConvertExpression( 94ExpressionSyntax expression) 114static ExpressionSyntax ConvertInvocation(InvocationExpressionSyntax invocation) 126var expression = arguments[0].Expression;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundAssignmentCodeFixProvider.cs (11)
20: AbstractUseCompoundAssignmentCodeFixProvider<SyntaxKind, AssignmentExpressionSyntax, ExpressionSyntax>(Utilities.Kinds) 26SyntaxKind assignmentOpKind, ExpressionSyntax left, SyntaxToken syntaxToken, ExpressionSyntax right) 31protected override ExpressionSyntax Increment(ExpressionSyntax left, bool postfix) 36protected override ExpressionSyntax Decrement(ExpressionSyntax left, bool postfix) 41private static ExpressionSyntax Postfix(SyntaxKind kind, ExpressionSyntax operand) 44private static ExpressionSyntax Prefix(SyntaxKind kind, ExpressionSyntax operand)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (3)
26StatementSyntax, IfStatementSyntax, LocalDeclarationStatementSyntax, VariableDeclaratorSyntax, ExpressionSyntax, ConditionalExpressionSyntax> 34protected override VariableDeclaratorSyntax WithInitializer(VariableDeclaratorSyntax variable, ExpressionSyntax value) 57protected override ExpressionSyntax ConvertToExpression(IThrowOperation throwOperation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForReturnCodeFixProvider.cs (5)
23: AbstractUseConditionalExpressionForReturnCodeFixProvider<StatementSyntax, IfStatementSyntax, ExpressionSyntax, ConditionalExpressionSyntax> 44protected override ExpressionSyntax WrapIfStatementIfNecessary(IConditionalOperation operation) 52protected override ExpressionSyntax WrapReturnExpressionIfNecessary(ExpressionSyntax returnExpression, IOperation returnOperation) 60protected override ExpressionSyntax ConvertToExpression(IThrowOperation throwOperation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionHelpers.cs (1)
18public static ExpressionSyntax ConvertToExpression(IThrowOperation throwOperation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseDeconstruction\CSharpUseDeconstructionCodeFixProvider.cs (1)
145private ExpressionSyntax CreateTupleOrDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExplicitArrayInExpressionTree\CSharpUseExplicitArrayInExpressionTreeCodeFixProvider.cs (1)
167SeparatedList<ExpressionSyntax>(expressionsAndCommasToWrap));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExpressionBodyForLambda\UseExpressionBodyForLambdaCodeActionHelpers.cs (3)
28var expressionBody = UseExpressionBodyForLambdaHelpers.GetBodyAsExpression(lambdaExpression); 38semanticModel, declaration, declaration.GetLanguageVersion(), ExpressionBodyPreference.WhenPossible, cancellationToken, out var expressionBody)) 57SemanticModel semanticModel, LambdaExpressionSyntax lambdaExpression, ExpressionSyntax expressionBody)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (3)
106var tupleDeclaration = GenerateTupleDeclaration( 182private static ExpressionSyntax GenerateTupleDeclaration( 197ExpressionSyntax newDeclaration;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (19)
72var updatedNode = FixOne(result, generator); 83private static ExpressionSyntax FixOne(Result result, SyntaxGenerator generator) 110var expression = invocation.Expression is MemberAccessExpressionSyntax memberAccess 155(ExpressionSyntax? startExpr, bool startFromEnd, ExpressionSyntax? endExpr, bool endFromEnd) GetComputedRangeData() 165return (startExpr: null, startFromEnd: false, (ExpressionSyntax)subtraction.RightOperand.Syntax, endFromEnd: true); 170return (startExpr: null, startFromEnd: false, (ExpressionSyntax)result.InvocationOperation.Arguments[0].Value.Syntax, endFromEnd: false); 179return ((ExpressionSyntax)subtraction.RightOperand.Syntax, startFromEnd: true, endExpr: null, endFromEnd: false); 184return ((ExpressionSyntax)result.InvocationOperation.Arguments[1].Value.Syntax, startFromEnd: false, endExpr: null, endFromEnd: false); 200var startExpr = (ExpressionSyntax)startOperation.Syntax; 203ExpressionSyntax? endExpr = null; 215endExpr = (ExpressionSyntax)endOperation.Syntax; 231private static ExpressionSyntax? WalkUpCheckedExpressions(ExpressionSyntax? expr) 246return RangeExpression(leftOperand: null, WalkUpCheckedExpressions((ExpressionSyntax)result.Op1.Syntax)); 251return RangeExpression(leftOperand: null, IndexExpression(WalkUpCheckedExpressions((ExpressionSyntax)result.Op1.Syntax))); 265constant1 == 0 ? null : WalkUpCheckedExpressions((ExpressionSyntax)result.Op1.Syntax), 266IndexExpression((ExpressionSyntax)generator.LiteralExpression(constant2 - constant1)));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\Helpers.cs (1)
15public static PrefixUnaryExpressionSyntax IndexExpression(ExpressionSyntax expr)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorCodeFixProvider.cs (3)
65private static ExpressionSyntax Rewrite(BinaryExpressionSyntax binary) 93BinaryExpressionSyntax binary, ExpressionSyntax expr, ExpressionSyntax nullLiteral)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIsNullCheck\CSharpUseIsNullCheckForReferenceEqualsCodeFixProvider.cs (6)
22: AbstractUseIsNullCheckForReferenceEqualsCodeFixProvider<ExpressionSyntax> 33private static SyntaxNode CreateEqualsNullCheck(ExpressionSyntax argument) 36private static SyntaxNode CreateIsNullCheck(ExpressionSyntax argument) 39private static SyntaxNode CreateIsNotNullCheck(ExpressionSyntax argument) 58protected override SyntaxNode CreateNullCheck(ExpressionSyntax argument, bool isUnconstrainedGeneric) 63protected override SyntaxNode CreateNotNullCheck(ExpressionSyntax argument)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (6)
61List<ExpressionSyntax> references)>(diagnostics.Length); 70var references = new List<ExpressionSyntax>(diagnostic.AdditionalLocations.Count - 2); 74references.Add((ExpressionSyntax)diagnostic.AdditionalLocations[i].FindNode(getInnermostNodeForTie: true, cancellationToken)); 182ImmutableArray<ExpressionSyntax> references) 230var expressionBody = anonymousFunction.Body is ExpressionSyntax expression 234var semicolonToken = anonymousFunction.Body is ExpressionSyntax
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
22ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseObjectInitializer\CSharpUseObjectInitializerCodeFixProvider.cs (5)
22using ObjectInitializerMatch = Match<ExpressionSyntax, StatementSyntax, MemberAccessExpressionSyntax, ExpressionStatementSyntax>; 30ExpressionSyntax, 70private SeparatedSyntaxList<ExpressionSyntax> CreateExpressions( 77UseInitializerHelpers.AddExistingItems<ObjectInitializerMatch, ExpressionSyntax>( 106return SeparatedList<ExpressionSyntax>(nodesAndTokens);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseObjectInitializer\UseInitializerHelpers.cs (4)
18SeparatedSyntaxList<ExpressionSyntax> expressions) 27var firstExpression = expressions.First(); 39Func<TMatch?, ExpressionSyntax, TElementSyntax> createElement) 50nodesAndTokens.Add(createElement(null, (ExpressionSyntax)nodeOrToken.AsNode()!));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternCombinators\CSharpUsePatternCombinatorsCodeFixProvider.cs (3)
84editor.ReplaceNode(expression, IsPatternExpression((ExpressionSyntax)pattern.Target.Syntax, patternSyntax)); 121private static ExpressionSyntax AsExpressionSyntax(ExpressionSyntax expr, AnalyzedPattern p)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (6)
58var parent = binaryExpression ?? (ExpressionSyntax?)isPatternExpression; 84var toReplace = parent.WalkUpParentheses(); 93var whenNotNull = conditionalAccessExpression.WhenNotNull; 101static ExpressionSyntax RewriteMemberBindingToExpression(ExpressionSyntax expression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (5)
94var comparison = (ExpressionSyntax)comparisonLocation.FindNode(cancellationToken); 107var condition = GetCondition(languageVersion, comparison, asExpression, declarationPattern); 159private static ExpressionSyntax GetCondition( 161ExpressionSyntax comparison,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (1)
594if (identifier.GetRequiredParent() is ExpressionSyntax expression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (1)
138ExpressionSyntax expression = node;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseTupleSwap\CSharpUseTupleSwapCodeFixProvider.cs (2)
55var exprA = assignment.Left.WalkDownParentheses().WithoutTrivia(); 56var exprB = assignment.Right.WalkDownParentheses().WithoutTrivia();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseUtf8StringLiteral\UseUtf8StringLiteralCodeFixProvider.cs (4)
171var stringLiteral = CreateUtf8String(SyntaxTriviaList.Empty, stringValue, argumentList.Arguments.Last().GetTrailingTrivia(), isConvertedToReadOnlySpan); 182private static ExpressionSyntax CreateUtf8String(SyntaxNode nodeToTakeTriviaFrom, string stringValue, bool isConvertedToReadOnlySpan) 187private static ExpressionSyntax CreateUtf8String(SyntaxTriviaList leadingTrivia, string stringValue, SyntaxTriviaList trailingTrivia, bool isConvertedToReadOnlySpan) 191var stringLiteral = ParseExpression(QuoteCharacter + stringValue + QuoteCharacter + Suffix).WithLeadingTrivia(leadingTrivia);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ArgumentGenerator.cs (1)
15if (argument is ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\AttributeGenerator.cs (1)
99ExpressionSyntax GenerateAttributeSyntax(TypedConstant constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (1)
636if (anonymousFunctionSyntax.ExpressionBody is ExpressionSyntax expressionBody)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (1)
26var expression = ExpressionGenerator.GenerateNonEnumValueExpression(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
64var value = CreateEnumMemberValue(destination, enumMember); 72private static ExpressionSyntax? CreateEnumMemberValue( 117var lastExpression = lastMember.EqualsValue!.Value;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (19)
24public static ExpressionSyntax GenerateExpression( 50private static ExpressionSyntax GenerateNullLiteral() 53internal static ExpressionSyntax GenerateExpression( 61return (ExpressionSyntax)CSharpFlagsEnumGenerator.Instance.CreateEnumConstantValue(enumType, value); 75internal static ExpressionSyntax GenerateNonEnumValueExpression(ITypeSymbol? type, object? value, bool canUseFieldReference) 77var intermediaryValue = value switch 95: (ExpressionSyntax)CSharpSyntaxGeneratorInternal.Instance.DefaultExpression(type), 105private static ExpressionSyntax GenerateBooleanLiteralExpression(bool val) 112private static ExpressionSyntax GenerateStringLiteralExpression(string val) 119private static ExpressionSyntax GenerateCharLiteralExpression(char val) 180private static ExpressionSyntax GenerateDoubleLiteralExpression(ITypeSymbol? type, double value, bool canUseFieldReference) 209private static ExpressionSyntax GenerateSingleLiteralExpression(ITypeSymbol? type, float value, bool canUseFieldReference) 238private static ExpressionSyntax GenerateNonNegativeLiteralExpression<T>( 249private static ExpressionSyntax GenerateLiteralExpression<T>( 259var result = GenerateFieldReference(type, value, constants); 286private static ExpressionSyntax? GenerateFieldReference<T>(ITypeSymbol? type, T value, IEnumerable<KeyValuePair<T, string>> constants) 293var memberAccess = GenerateMemberAccess("System", typeof(T).Name); 307private static ExpressionSyntax GenerateMemberAccess(params ReadOnlySpan<string> names) 309ExpressionSyntax result = IdentifierName(GlobalKeyword);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\FieldGenerator.cs (1)
95var initializer = CodeGenerationFieldInfo.GetInitializer(field) is ExpressionSyntax initializerNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ParameterGenerator.cs (1)
110private static ExpressionSyntax GenerateEqualsValueClauseWorker(IParameterSymbol parameter, object? value)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\PropertyGenerator.cs (1)
115var initializer = CodeGenerationPropertyInfo.GetInitializer(property) is ExpressionSyntax initializerNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeRefactorings\CSharpRefactoringHelpersService.cs (1)
16internal sealed class CSharpRefactoringHelpersService() : AbstractRefactoringHelpersService<ExpressionSyntax, ArgumentSyntax, ExpressionStatementSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (2)
52private static INamespaceSymbol? GetExplicitNamespaceSymbol(ExpressionSyntax fullName, ExpressionSyntax namespacePart, SemanticModel model)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\CastExpressionSyntaxExtensions.cs (2)
15public static ExpressionSyntax Uncast(this CastExpressionSyntax node) 28var resultNode = node.Expression
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (1)
281var expr = parenExpr.Expression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (8)
1551SyntaxNode? node = leftToken.Parent as ExpressionSyntax; 1556while (node is ExpressionSyntax && node.GetLastToken(includeZeroWidth: true) == leftToken) 2785ExpressionSyntax? parentExpression = null; 2832if (token.IsLastTokenOfNode<ExpressionSyntax>(out var expression)) 2855ExpressionSyntax nameExpr = type; 2858nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2912private static bool IsRightSideName(ExpressionSyntax name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ExpressionSyntaxExtensions.cs (9)
18public static ExpressionSyntax Parenthesize( 19this ExpressionSyntax expression, bool includeElasticTrivia = true, bool addSimplifierAnnotation = true) 52this ExpressionSyntax expression, bool includeElasticTrivia) 54var withoutTrivia = expression.WithoutTrivia(); 83this ExpressionSyntax expression, 86var parenthesized = expression.Parenthesize(); 97public static ExpressionSyntax CastIfPossible( 98this ExpressionSyntax expression, 163this ExpressionSyntax name,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\InternalExtensions.cs (1)
21public static ITypeSymbol DetermineParameterType(ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
26public static ExpressionSyntax GenerateExpressionSyntax(this ITypeSymbol typeSymbol, bool nameSyntax = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (9)
16private sealed class ExpressionSyntaxGeneratorVisitor : SymbolVisitor<ExpressionSyntax> 29public override ExpressionSyntax DefaultVisit(ISymbol symbol) 33where TExpressionSyntax : ExpressionSyntax 41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol) 59var container = symbol.ContainingType.Accept(this)!; 77var container = symbol.ContainingNamespace.Accept(this)!; 85public override ExpressionSyntax VisitNamespace(INamespaceSymbol symbol) 102var container = symbol.ContainingNamespace.Accept(this)!; 108ISymbol symbol, ExpressionSyntax container, SimpleNameSyntax syntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (1)
99[.. Enumerable.Repeat<ExpressionSyntax>(OmittedArraySizeExpression(), arrayType.Rank)]));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
114ExpressionSyntax? expression = null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (23)
74=> SyntaxFactory.EqualsValueClause(operatorToken, (ExpressionSyntax)value); 82expression == null ? null : SyntaxFactory.EqualsValueClause((ExpressionSyntax)expression))]); 89=> SyntaxFactory.ConditionalAccessExpression((ExpressionSyntax)expression, (ExpressionSyntax)whenNotNull); 95=> SyntaxFactory.RefExpression((ExpressionSyntax)expression); 103ExpressionSyntax expression => expression.Parenthesize(includeElasticTrivia, addSimplifierAnnotation), 109=> SyntaxFactory.YieldStatement(SyntaxKind.YieldReturnStatement, (ExpressionSyntax)expression); 131=> SyntaxFactory.Interpolation((ExpressionSyntax)syntaxNode); 134=> SyntaxFactory.InterpolationAlignmentClause(CommaToken, (ExpressionSyntax)alignment); 211(ExpressionSyntax)expression, 219=> SyntaxFactory.ConstantPattern((ExpressionSyntax)expression); 227=> SyntaxFactory.RelationalPattern(LessThanToken, (ExpressionSyntax)expression); 230=> SyntaxFactory.RelationalPattern(LessThanEqualsToken, (ExpressionSyntax)expression); 233=> SyntaxFactory.RelationalPattern(GreaterThanToken, (ExpressionSyntax)expression); 236=> SyntaxFactory.RelationalPattern(GreaterThanEqualsToken, (ExpressionSyntax)expression); 256=> SyntaxFactory.CastExpression((TypeSyntax)type, (ExpressionSyntax)ParenthesizeNonSimple(expression)).WithAdditionalAnnotations(Simplifier.Annotation); 314ParenthesizeLeft((ExpressionSyntax)expression), 321internal static ExpressionSyntax ParenthesizeLeft(ExpressionSyntax expression) 336return (ExpressionSyntax)Parenthesize(expression); 343=> SyntaxFactory.BinaryExpression(syntaxKind, (ExpressionSyntax)ParenthesizeNonSimple(left), (ExpressionSyntax)ParenthesizeNonSimple(right)); 349=> SyntaxFactory.CastExpression((TypeSyntax)type, (ExpressionSyntax)ParenthesizeNonSimple(expression)).WithAdditionalAnnotations(Simplifier.Annotation);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (26)
52private static bool DecomposeBinaryOrAssignmentExpression(SyntaxNode node, out SyntaxToken operatorToken, out ExpressionSyntax left, out ExpressionSyntax right) 78out var operatorToken, out var left, out var right)) 80var types = InferTypeInBinaryOrAssignmentExpression((ExpressionSyntax)node, operatorToken, left, right, left).Where(IsUsableTypeFunc); 83types = InferTypeInBinaryOrAssignmentExpression((ExpressionSyntax)node, operatorToken, left, right, right).Where(IsUsableTypeFunc); 127var expression = node as ExpressionSyntax; 948private IEnumerable<TypeInferenceInfo> InferTypeInBinaryOrAssignmentExpression(ExpressionSyntax binop, SyntaxToken operatorToken, ExpressionSyntax left, ExpressionSyntax right, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 996var otherSide = onRightOfToken ? left : right; 1083private IEnumerable<TypeInferenceInfo> InferTypeInCastExpression(CastExpressionSyntax castExpression, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1115ExpressionSyntax expressionOpt = null, 1170private IEnumerable<TypeInferenceInfo> InferTypeInConditionalExpression(ConditionalExpressionSyntax conditional, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1321private IEnumerable<TypeInferenceInfo> InferTypeInForEachStatement(ForEachStatementSyntax forEachStatementSyntax, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1352private IEnumerable<TypeInferenceInfo> InferTypeInForStatement(ForStatementSyntax forStatement, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1378ExpressionSyntax expressionOpt = null, 1423foreach (var sibling in initializerExpression.Expressions.Where(e => e.Kind() != SyntaxKind.ComplexElementInitializerExpression)) 1450foreach (var sibling in initializerExpression.Expressions) 1763ExpressionSyntax expressionOpt = null, 1835var argumentExpression = invocation.ArgumentList.Arguments[0].Expression; 1958var argumentExpression = attributeArgumentSyntax.Expression; 2316private IEnumerable<TypeInferenceInfo> InferTypeInVariableComponentAssignment(ExpressionSyntax left) 2383var expr = arg.Expression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (3)
30public static Argument<ExpressionSyntax> GetArgument(ArgumentSyntax argument) 232=> body is ExpressionSyntax or ArrowExpressionClauseSyntax; 247ExpressionSyntax expression => expression.TryConvertToStatement(semicolonToken, createReturnStatementForExpression, out statement),
Microsoft.CodeAnalysis.CSharp.Features (830)
AddImport\CSharpAddImportCodeRefactoringProvider.cs (1)
19ExpressionSyntax,
ChangeSignature\CSharpChangeSignatureService.cs (1)
607ExpressionSyntax lastArgumentExpression;
CodeFixes\GenerateType\GenerateTypeCodeFixProvider.cs (1)
53ExpressionSyntax expression => expression.GetRightmostName(),
CodeFixes\Suppression\CSharpSuppressionCodeFixProvider.cs (1)
55var ids = new SeparatedSyntaxList<ExpressionSyntax>().Add(id);
CodeRefactorings\AddAwait\CSharpAddAwaitCodeRefactoringProvider.cs (1)
22: AbstractAddAwaitCodeRefactoringProvider<ExpressionSyntax>
CodeRefactorings\ConvertLocalFunctionToMethod\CSharpConvertLocalFunctionToMethodCodeRefactoringProvider.cs (1)
242newNode = ((ExpressionSyntax)newNode).Parenthesize();
CodeRefactorings\InlineMethod\CSharpInlineMethodRefactoringProvider.cs (5)
20: AbstractInlineMethodRefactoringProvider<BaseMethodDeclarationSyntax, StatementSyntax, ExpressionSyntax, InvocationExpressionSyntax> 29protected override ExpressionSyntax? GetRawInlineExpression(BaseMethodDeclarationSyntax methodDeclarationSyntax) 62protected override ExpressionSyntax GenerateLiteralExpression(ITypeSymbol typeSymbol, object? value) 68protected override bool IsValidExpressionUnderExpressionStatement(ExpressionSyntax expressionNode) 120private static bool IsNullConditionalInvocationExpression(ExpressionSyntax expressionSyntax)
CodeRefactorings\InlineTemporary\InlineTemporaryCodeRefactoringProvider.cs (11)
106var identifierNode = identifier.WalkUpParentheses(); 139var expressionToInline = await CreateExpressionToInlineAsync(document, declarator, cancellationToken).ConfigureAwait(false); 187.OfType<ExpressionSyntax>() 344var parentExpressions = scope.AncestorsAndSelf().OfType<ExpressionSyntax>(); 430private static async Task<ExpressionSyntax> CreateExpressionToInlineAsync( 437var expression = variableDeclarator.Initializer.Value.WalkDownParentheses(); 439var expressionToInline = CreateExpressionToInline(); 448ExpressionSyntax CreateExpressionToInline() 500private static SyntaxNode GetTopMostParentingExpression(ExpressionSyntax expression) 501=> expression.AncestorsAndSelf().OfType<ExpressionSyntax>().Last(); 503private static bool IsInDeconstructionAssignmentLeft(ExpressionSyntax node)
CodeRefactorings\SyncNamespace\CSharpChangeNamespaceService.cs (2)
167var memberAccessNamespaceName = CreateNamespaceAsMemberAccess(newNamespaceParts, aliasQualifier, newNamespaceParts.Length - 1); 433private static ExpressionSyntax CreateNamespaceAsMemberAccess(ImmutableArray<string> namespaceParts, string? aliasQualifier, int index)
CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (25)
151static SyntaxNode AdjustBinaryExpressionOperands(BinaryExpressionSyntax logicalAnd, ExpressionSyntax replacement) 162private static Func<SyntaxNode, SyntaxNode>? CombineWhenClauseCondition(PatternSyntax switchPattern, ExpressionSyntax condition, SemanticModel model) 268private static PatternSyntax CreatePattern(ExpressionSyntax originalReceiver, ExpressionOrPatternSyntax target, bool flipped) 276ExpressionSyntax constant => originalReceiver.Parent switch 305ExpressionSyntax rightReceiver, 328private static (ExpressionSyntax Receiver, ExpressionOrPatternSyntax Target, bool Flipped)? TryDetermineReceiver( 329ExpressionSyntax node, 369static (ExpressionSyntax Expression, ExpressionSyntax Constant, bool Flipped)? TryDetermineConstant(BinaryExpressionSyntax node, SemanticModel model) 386ExpressionSyntax expression = names[^1]; 416private static (ExpressionSyntax CommonReceiver, ImmutableArray<IdentifierNameSyntax> LeftNames, ImmutableArray<IdentifierNameSyntax> RightNames)? TryGetCommonReceiver( 417ExpressionSyntax left, 418ExpressionSyntax right, 426if (!TryGetInnermostReceiver(left, leftNames, out var leftReceiver, model) || 427!TryGetInnermostReceiver(right, rightNames, out var rightReceiver, model) || 433var commonReceiver = leftReceiver; 478static bool TryGetInnermostReceiver(ExpressionSyntax node, ArrayBuilder<IdentifierNameSyntax> builder, [NotNullWhen(true)] out ExpressionSyntax? receiver, SemanticModel model) 515private static ExpressionSyntax? GetInnermostReceiver(ExpressionSyntax node, ArrayBuilder<IdentifierNameSyntax> builder, SemanticModel model) 530private static ExpressionSyntax? GetInnermostReceiver<TArg>( 531ExpressionSyntax node, TArg arg, 537ExpressionSyntax? GetInnermostReceiver(ExpressionSyntax node) 565var right = GetInnermostReceiver(conditionalAccess.WhenNotNull);
Completion\CompletionProviders\AwaitCompletionProvider.cs (5)
134var node = location.Location.FindNode(cancellationToken) as ExpressionSyntax; 136node = node.GetRequiredParent() as ExpressionSyntax; 205var memberAccessExpression = memberAccess.Expression.WalkDownParentheses(); 212else if (potentialAwaitableExpression is ExpressionSyntax expression &&
Completion\CompletionProviders\ImportCompletion\ExtensionMemberImportCompletionProvider.cs (1)
75if (node is ExpressionSyntax expression &&
Completion\CompletionProviders\ObjectAndWithInitializerCompletionProvider.cs (1)
70if (token.Parent.Parent is not ExpressionSyntax expression)
Completion\CompletionProviders\ObjectCreationCompletionProvider.cs (1)
56return newToken.Parent as ExpressionSyntax;
Completion\CompletionProviders\OperatorsAndIndexer\UnnamedSymbolCompletionProvider.cs (2)
84var expression = dotToken.Kind() == SyntaxKind.DotToken 85? dotToken.Parent as ExpressionSyntax
Completion\CompletionProviders\OperatorsAndIndexer\UnnamedSymbolCompletionProvider_Conversions.cs (2)
88var expression = (ExpressionSyntax)dotToken.GetRequiredParent();
Completion\CompletionProviders\PropertySubPatternCompletionProvider.cs (2)
103static ITypeSymbol? GetMemberAccessType(ITypeSymbol? type, ExpressionSyntax? expression, Document document, SemanticModel semanticModel, int position) 170private static (PropertyPatternClauseSyntax?, ExpressionSyntax?, SubpatternSyntax? editingSubpattern) TryGetPropertyPatternClause(SyntaxTree tree, int position, CancellationToken cancellationToken)
ConvertAnonymousType\CSharpConvertAnonymousTypeToClassCodeRefactoringProvider.cs (1)
21ExpressionSyntax,
ConvertAnonymousType\CSharpConvertAnonymousTypeToTupleCodeRefactoringProvider.cs (1)
25ExpressionSyntax,
ConvertAutoPropertyToFullProperty\CSharpConvertAutoPropertyToFullPropertyCodeRefactoringProvider.cs (1)
61ExpressionSyntax backingFieldExpression,
ConvertBetweenRegularAndVerbatimString\AbstractConvertBetweenRegularAndVerbatimStringCodeRefactoringProvider.cs (1)
22where TStringExpressionSyntax : ExpressionSyntax
ConvertCast\CSharpConvertDirectCastToTryCastCodeRefactoringProvider.cs (1)
53var newExpression = castExpression.Expression
ConvertCast\CSharpConvertTryCastToDirectCastCodeRefactoringProvider.cs (1)
44var expression = asExpression.Left;
ConvertForEachToFor\CSharpConvertForEachToForCodeRefactoringProvider.cs (3)
64var foreachCollectionExpression = foreachStatement.Expression; 94EqualsValueClause((ExpressionSyntax)generator.LiteralExpression(0)))]), 96(ExpressionSyntax)generator.LessThanExpression(
ConvertForToForEach\CSharpConvertForToForEachCodeRefactoringProvider.cs (7)
22ExpressionSyntax, 44[NotNullWhen(true)] out ExpressionSyntax? initializer, 46out ExpressionSyntax? stepValueExpressionOpt, 77SyntaxToken iterationVariable, ExpressionSyntax incrementor, out ExpressionSyntax? stepValue) 84ExpressionSyntax operand; 116ExpressionSyntax collectionExpression,
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (1)
36return syntax is ExpressionSyntax expressionSyntax &&
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.cs (1)
20: AbstractConvertIfToSwitchCodeRefactoringProvider<IfStatementSyntax, ExpressionSyntax, BinaryExpressionSyntax, PatternSyntax>
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (6)
31ExpressionSyntax target, ImmutableArray<AnalyzedSwitchSection> sections, Feature feature) 58private static ExpressionSyntax AsExpressionSyntax(IOperation operation) 61IReturnOperation { ReturnedValue.Syntax: ExpressionSyntax value } => value, 62IThrowOperation { Exception.Syntax: ExpressionSyntax exception } => ThrowExpression(exception), 68IfStatementSyntax ifStatement, ExpressionSyntax expression, IEnumerable<SyntaxNode> sectionList) 86private static WhenClauseSyntax? AsWhenClause(ExpressionSyntax? expression)
ConvertLinq\ConvertForEachToLinqQuery\AbstractConverter.cs (12)
37protected ExpressionSyntax CreateQueryExpressionOrLinqInvocation( 38ExpressionSyntax selectExpression, 55ExpressionSyntax selectExpression, 122private ExpressionSyntax CreateLinqInvocationOrSimpleExpression( 123ExpressionSyntax selectExpression, 141private ExpressionSyntax CreateLinqInvocationOrSimpleExpression( 143ExpressionSyntax receiverForInvocation, 146ExpressionSyntax selectExpression, 164var lambdaBody = CreateLinqInvocationForExtendedNode(selectExpression, ref currentExtendedNodeIndex, ref receiverForInvocation, ref hasForEachChild); 219private ExpressionSyntax CreateLinqInvocationForExtendedNode( 220ExpressionSyntax selectExpression, 222ref ExpressionSyntax receiver,
ConvertLinq\ConvertForEachToLinqQuery\AbstractToMethodConverter.cs (10)
25ExpressionSyntax selectExpression, 26ExpressionSyntax modifyingExpression, 31private readonly ExpressionSyntax _selectExpression = selectExpression; 35private readonly ExpressionSyntax _modifyingExpression = modifyingExpression; 42protected abstract bool CanReplaceInitialization(ExpressionSyntax expressionSyntax, CancellationToken cancellationToken); 44protected abstract StatementSyntax CreateDefaultStatement(ExpressionSyntax queryOrLinqInvocationExpression, ExpressionSyntax expression); 48var queryOrLinqInvocationExpression = CreateQueryExpressionOrLinqInvocation( 101void Convert(ExpressionSyntax replacingExpression, SyntaxNode nodeToRemoveIfFollowedByReturn) 179protected InvocationExpressionSyntax CreateInvocationExpression(ExpressionSyntax queryOrLinqInvocationExpression)
ConvertLinq\ConvertForEachToLinqQuery\CSharpConvertForEachToLinqQueryProvider.cs (3)
216var expression = expressionStatement.Expression; 231var operand = postfixUnaryExpression.Operand; 258var selectExpression = invocationExpression.ArgumentList.Arguments.Single().Expression;
ConvertLinq\ConvertForEachToLinqQuery\ToCountConverter.cs (5)
19ExpressionSyntax selectExpression, 20ExpressionSyntax modifyingExpression, 27ExpressionSyntax expression, 41protected override StatementSyntax CreateDefaultStatement(ExpressionSyntax queryOrLinqInvocationExpression, ExpressionSyntax expression)
ConvertLinq\ConvertForEachToLinqQuery\ToToListConverter.cs (5)
20ExpressionSyntax selectExpression, 21ExpressionSyntax modifyingExpression, 29ExpressionSyntax expression, CancellationToken cancellationToken) 46protected override StatementSyntax CreateDefaultStatement(ExpressionSyntax queryOrLinqInvocationExpression, ExpressionSyntax expression)
ConvertLinq\ConvertForEachToLinqQuery\YieldReturnConverter.cs (1)
25var queryOrLinqInvocationExpression = CreateQueryExpressionOrLinqInvocation(
ConvertLinq\CSharpConvertLinqQueryToForEachProvider.cs (17)
126ExpressionSyntax expression1; 160ExpressionSyntax expression2; 256if (currentNode is ExpressionSyntax or 377Func<ExpressionSyntax, ExpressionSyntax, StatementSyntax> leafExpressionCreationMethod, 378ExpressionSyntax initializer, 391out var variable, 413ExpressionSyntax initializer, 415out ExpressionSyntax variable, 423ExpressionSyntax variableExpression, 424ExpressionSyntax expressionToVerifyType, 426out ExpressionSyntax variableLocal, 517ExpressionSyntax expression, 571static StatementSyntax internalNodeMethod(ExpressionSyntax expression) 659var lastSelectExpression = ((SelectClauseSyntax)queryExpressionProcessingInfo.Stack.Peek()).Expression; 789Func<ExpressionSyntax, StatementSyntax> leafExpressionCreationMethod, 904private bool IsLocalOrParameterSymbol(ExpressionSyntax expression)
ConvertPrimaryToRegularConstructor\ConvertPrimaryToRegularConstructorCodeRefactoringProvider.cs (2)
467var left = parameter.Name == field.Name 469: (ExpressionSyntax)fieldName;
ConvertProgram\ConvertProgramTransform_TopLevelStatements.cs (1)
301(ExpressionSyntax)CSharpSyntaxGenerator.Instance.DefaultExpression(field.Type)));
ConvertToInterpolatedString\CSharpConvertConcatenationToInterpolatedStringRefactoringProvider.cs (1)
18AbstractConvertConcatenationToInterpolatedStringRefactoringProvider<ExpressionSyntax>
ConvertToInterpolatedString\CSharpConvertPlaceholderToInterpolatedStringRefactoringProvider.cs (2)
18ExpressionSyntax, 26protected override ExpressionSyntax ParseExpression(string text)
ConvertToRawString\ConvertInterpolatedStringToRawStringCodeRefactoringProvider.cs (2)
498foreach (var descendant in interpolation.DescendantNodes().OfType<ExpressionSyntax>())
ConvertToRawString\ConvertStringToRawStringCodeRefactoringProvider.cs (10)
50ExpressionSyntax expression, 79if (token.Parent is not ExpressionSyntax parentExpression) 129ExpressionSyntax expression, 138var replacement = provider.Convert(parsedDocument, expression, kind, options, cancellationToken); 156using var _ = PooledDictionary<ExpressionSyntax, IConvertStringProvider>.GetInstance(out var expressionToProvider); 161foreach (var expression in node.DepthFirstTraversalNodes().OfType<ExpressionSyntax>()) 198if (expression.Ancestors().OfType<ExpressionSyntax>().Any(static (e, expressionToProvider) => expressionToProvider.ContainsKey(e), expressionToProvider)) 205if (current is not ExpressionSyntax currentExpression) 210var replacement = provider.Convert(currentParsedDocument, currentExpression, kind, formattingOptions, cancellationToken);
ConvertToRawString\IConvertStringProvider.cs (7)
15ExpressionSyntax expression, 20ExpressionSyntax Convert( 22ExpressionSyntax expression, 29where TStringExpression : ExpressionSyntax 33public bool CanConvert(ParsedDocument document, ExpressionSyntax expression, SyntaxFormattingOptions formattingOptions, out CanConvertParams convertParams, CancellationToken cancellationToken) 41public ExpressionSyntax Convert(ParsedDocument document, ExpressionSyntax expression, ConvertToRawKind kind, SyntaxFormattingOptions formattingOptions, CancellationToken cancellationToken)
ConvertTupleToStruct\CSharpConvertTupleToStructCodeRefactoringProvider.cs (1)
18ExpressionSyntax,
Debugging\CSharpProximityExpressionsService.cs (1)
55var expression = SyntaxFactory.ParseExpression(expressionValue);
Debugging\CSharpProximityExpressionsService.RelevantExpressionsCollector.cs (1)
106ExpressionSyntax component,
Debugging\CSharpProximityExpressionsService_ExpressionTermCollector.cs (8)
16private static string ConvertToString(ExpressionSyntax expression) 18var converted = expression.ConvertToSingleLine(); 22private static void AddExpressionTerms(ExpressionSyntax expression, IList<string> terms) 38private static void AddIfValidTerm(ExpressionSyntax expression, ExpressionType type, IList<string> terms) 54private static void AddSubExpressionTerms(ExpressionSyntax expression, IList<string> terms, ref ExpressionType expressionType) 332private static void AddBinaryExpressionTerms(ExpressionSyntax binaryExpression, ExpressionSyntax left, ExpressionSyntax right, IList<string> terms, ref ExpressionType expressionType)
Debugging\DataTipInfoGetter.cs (3)
18ExpressionSyntax, 30if (token.Parent is not ExpressionSyntax expression) 64var current = expression.GetRootConditionalAccessExpression() ?? expression;
Diagnostics\Analyzers\CSharpPreferFrameworkTypeDiagnosticAnalyzer.cs (2)
17ExpressionSyntax, 35protected override bool IsInMemberAccessOrCrefReferenceContext(ExpressionSyntax node)
Diagnostics\Analyzers\CSharpSimplifyTypeNamesDiagnosticAnalyzer.cs (2)
112if (!ExpressionSimplifier.Instance.TrySimplify((ExpressionSyntax)node, model, options, out var replacement, out issueSpan, cancellationToken))
DocumentationComments\CSharpDocumentationCommentSnippetService.cs (1)
164var expression = throwExpressionOrStatement switch
EditAndContinue\BreakpointSpans.cs (2)
426if (node is ExpressionSyntax expression) 962private static bool IsBreakableExpression(ExpressionSyntax expression)
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (6)
418if (oldBody is ExpressionSyntax || 419newBody is ExpressionSyntax || 422Debug.Assert(oldBody is ExpressionSyntax or BlockSyntax); 423Debug.Assert(newBody is ExpressionSyntax or BlockSyntax); 2794var expression = GetExpressionFromStatementPart(containingStatementPart); 2821private static ExpressionSyntax GetExpressionFromStatementPart(SyntaxNode statement)
EditAndContinue\DeclarationBody\FieldWithInitializerDeclarationBody.cs (1)
26public ExpressionSyntax InitializerExpression
EditAndContinue\DeclarationBody\PropertyOrIndexerAccessorDeclarationBody.cs (1)
46/// <see cref="ExpressionSyntax"/> or <see cref="BlockSyntax"/> or <see langword="null"/>.
EditAndContinue\DeclarationBody\PropertyOrIndexerWithExplicitBodyDeclarationBody.cs (1)
22public ExpressionSyntax BodyExpression
EditAndContinue\SyntaxComparer.cs (2)
247if (node != null && node.Parent.IsKind(SyntaxKind.ForStatement) && node is ExpressionSyntax) 1327private static void GetLocalNames(ExpressionSyntax expression, ref List<SyntaxToken>? result)
EditAndContinue\SyntaxUtilities.cs (4)
96Debug.Assert(syntax is ExpressionSyntax or BlockSyntax); 107if (syntax is ExpressionSyntax { Parent: ArrowExpressionClauseSyntax }) 113if (syntax is ExpressionSyntax { Parent.Parent: VariableDeclaratorSyntax }) 119if (syntax is ExpressionSyntax { Parent.Parent: PropertyDeclarationSyntax })
ExtractMethod\CSharpExtractMethodService.cs (1)
21ExpressionSyntax>
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.cs (13)
281ExpressionSyntax LiteralExpression(object value) 461var returnExpr = returnStatement.Expression; 504protected override ExpressionSyntax CreateFlowControlReturnExpression(ExtractMethodFlowControlInformation flowControlInformation, object flowValue) 506var flowValueExpression = ExpressionGenerator.GenerateExpression( 822protected override ExpressionSyntax CreateCallSignature() 825ExpressionSyntax methodExpression = 844var invocation = (ExpressionSyntax)InvocationExpression(methodExpression, ArgumentList([.. arguments])); 872ExpressionSyntax right) 886ExpressionSyntax initialValue, 926ExpressionSyntax CreateLeftExpression() 966var returnVariableExpression = variableInfos.Length switch 988ExpressionSyntax CreateReturnExpression(VariableInfo variableInfo)
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.ExpressionCodeGenerator.cs (6)
93var containingScope = (ExpressionSyntax)this.SelectionResult.GetContainingScope(); 95var expression = returnType.TypeKind == TypeKind.Array && containingScope is InitializerExpressionSyntax initializerExpression 104private ExpressionSyntax WrapInCheckedExpressionIfNeeded(ExpressionSyntax expression) 138var callSignature = CreateCallSignature().WithAdditionalAnnotations(CallSiteAnnotation);
ExtractMethod\CSharpSelectionResult.ExpressionResult.cs (5)
41var scope = firstToken.GetCommonRoot(lastToken).GetAncestorOrThis<ExpressionSyntax>(); 49if (GetContainingScope() is not ExpressionSyntax node) 83SemanticModel semanticModel, ExpressionSyntax node, CancellationToken cancellationToken) 86var expression = node.WalkDownParentheses();
ExtractMethod\CSharpSelectionValidator.cs (4)
40var selectionInExpression = commonRoot is ExpressionSyntax; 200SelectionInExpression = firstValidNode is ExpressionSyntax, 371var expression = selectionInfo.CommonRoot.GetAncestor<ExpressionSyntax>();
ExtractMethod\CSharpSelectionValidator.Validator.cs (2)
20ExpressionSyntax expression => CheckExpression(semanticModel, expression, cancellationToken), 44private static bool CheckExpression(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken)
ExtractMethod\Extensions.cs (1)
255=> node is ExpressionSyntax && node.Parent is CastExpressionSyntax;
GenerateMember\GenerateVariable\CSharpGenerateVariableService.cs (3)
25AbstractGenerateVariableService<CSharpGenerateVariableService, SimpleNameSyntax, ExpressionSyntax> 90out SyntaxToken identifierToken, out ExpressionSyntax simpleNameOrMemberAccessExpression, out bool isInExecutableBlock, out bool isConditionalAccessExpression) 170ExpressionSyntax expression,
GenerateType\CSharpGenerateTypeService.cs (19)
35AbstractGenerateTypeService<CSharpGenerateTypeService, SimpleNameSyntax, ObjectCreationExpressionSyntax, ExpressionSyntax, TypeDeclarationSyntax, ArgumentSyntax> 39protected override ExpressionSyntax GetLeftSideOfDot(SimpleNameSyntax simpleName) 42protected override bool IsInCatchDeclaration(ExpressionSyntax expression) 45protected override bool IsArrayElementType(ExpressionSyntax expression) 53ExpressionSyntax expression, 84protected override bool IsInInterfaceList(ExpressionSyntax expression) 112protected override bool TryGetNameParts(ExpressionSyntax expression, out IList<string> nameParts) 137ExpressionSyntax nameOrMemberAccessExpression = null; 144nameOrMemberAccessExpression = generateTypeServiceStateOptions.NameOrMemberAccessExpression = (ExpressionSyntax)simpleName.Parent; 148var leftSideExpression = simpleName.GetLeftSideOfDot(); 321ExpressionSyntax outerMostMemberAccessExpression = null; 329outerMostMemberAccessExpression = (ExpressionSyntax)nameOrMemberAccessExpression.Parent; 332outerMostMemberAccessExpression = outerMostMemberAccessExpression.GetAncestorsOrThis<ExpressionSyntax>().SkipWhile(n => n != null && n.IsKind(SyntaxKind.SimpleMemberAccessExpression)).FirstOrDefault(); 415foreach (var expression in initializer.Expressions) 428private static IMethodSymbol GetMethodSymbolIfPresent(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 504protected override bool IsInVariableTypeContext(ExpressionSyntax expression) 632internal override bool TryGetBaseList(ExpressionSyntax expression, out TypeKindOptions typeKindValue) 656internal override bool IsPublicOnlyAccessibility(ExpressionSyntax expression, Project project) 709internal override bool IsSimpleName(ExpressionSyntax expression)
InitializeParameter\CSharpAddParameterCheckCodeRefactoringProvider.cs (2)
27ExpressionSyntax, 59protected override StatementSyntax CreateParameterCheckIfStatement(ExpressionSyntax condition, StatementSyntax ifTrueStatement, CSharpSimplifierOptions options)
InitializeParameter\CSharpInitializeMemberFromParameterCodeRefactoringProvider.cs (1)
23ExpressionSyntax>
InlineHints\CSharpInlineParameterNameHintsService.cs (1)
86private static HintKind GetKind(ExpressionSyntax arg)
IntroduceParameter\CSharpIntroduceParameterCodeRefactoringProvider.cs (1)
19ExpressionSyntax,
IntroduceVariable\CSharpIntroduceLocalForExpressionCodeRefactoringProvider.cs (5)
30ExpressionSyntax, 64var expression = expressionStatement.Expression; 80var expression = expressionStatement.Expression; 91ExpressionSyntax expression, 119ExpressionSyntax CreateDeclarationExpression()
IntroduceVariable\CSharpIntroduceVariableService.cs (13)
25AbstractIntroduceVariableService<CSharpIntroduceVariableService, ExpressionSyntax, TypeSyntax, TypeDeclarationSyntax, QueryExpressionSyntax, NameSyntax> 29protected override bool IsInNonFirstQueryClause(ExpressionSyntax expression) 45protected override bool IsInFieldInitializer(ExpressionSyntax expression) 50protected override bool IsInParameterInitializer(ExpressionSyntax expression) 53protected override bool IsInConstructorInitializer(ExpressionSyntax expression) 56protected override bool IsInAutoPropertyInitializer(ExpressionSyntax expression) 59protected override bool IsInExpressionBodiedMember(ExpressionSyntax expression) 79protected override bool IsInAttributeArgumentInitializer(ExpressionSyntax expression) 107protected override bool CanIntroduceVariableFor(ExpressionSyntax expression) 131protected override IEnumerable<SyntaxNode> GetContainingExecutableBlocks(ExpressionSyntax expression) 137protected override bool CanReplace(ExpressionSyntax expression) 140protected override bool IsExpressionInStaticLocalFunction(ExpressionSyntax expression) 149ISet<ExpressionSyntax> matches)
IntroduceVariable\CSharpIntroduceVariableService.Rewriter.cs (4)
21private readonly ISet<ExpressionSyntax> _matches; 23private Rewriter(SyntaxNode replacementNode, ISet<ExpressionSyntax> matches) 31if (node is ExpressionSyntax expression && _matches.Contains(expression)) 93public static SyntaxNode Visit(SyntaxNode node, SyntaxNode replacementNode, ISet<ExpressionSyntax> matches)
IntroduceVariable\CSharpIntroduceVariableService_IntroduceField.cs (3)
27ExpressionSyntax expression, 46var newQualifiedName = oldTypeDeclaration != null 48: (ExpressionSyntax)IdentifierName(newNameToken);
IntroduceVariable\CSharpIntroduceVariableService_IntroduceLocal.cs (16)
32ExpressionSyntax expression, 51var updatedExpression = expression.WithoutTrivia(); 112ExpressionSyntax expression, 118var oldBody = (ExpressionSyntax)oldLambda.Body; 121var rewrittenBody = Rewrite( 178ExpressionSyntax rewrittenBody, 228private static TypeSyntax GetTypeSyntax(SemanticDocument document, ExpressionSyntax expression, CancellationToken cancellationToken) 234ExpressionSyntax expression, 246var newExpression = Rewrite(document, expression, newLocalName, document, oldBody.Expression, allOccurrences, cancellationToken); 290ExpressionSyntax expression, 314var firstAffectedExpression = matches.OrderBy(m => m.SpanStart).First(); 322foreach (var match in matches) 360ExpressionSyntax expression, 426private static IEnumerable<StatementSyntax> GetApplicableStatementAncestors(ExpressionSyntax expr) 439private static int GetFirstStatementAffectedIndex(SyntaxNode innermostCommonBlock, ISet<ExpressionSyntax> matches, int firstStatementAffectedIndex)
IntroduceVariable\CSharpIntroduceVariableService_IntroduceQueryLocal.cs (2)
26SemanticDocument document, ExpressionSyntax expression, bool allOccurrences, CancellationToken cancellationToken) 77ExpressionSyntax expression,
InvertIf\CSharpInvertIfCodeRefactoringProvider.cs (1)
161.WithCondition((ExpressionSyntax)condition)
InvertLogical\CSharpInvertLogicalCodeRefactoringProvider.cs (1)
16AbstractInvertLogicalCodeRefactoringProvider<SyntaxKind, ExpressionSyntax, BinaryExpressionSyntax>
NavigationBar\CSharpNavigationBarItemService.cs (1)
155ExpressionSyntax)
ReplaceConditionalWithStatements\CSharpReplaceConditionalWithStatementsCodeRefactoringProvider.cs (1)
20ExpressionSyntax,
ReplaceMethodWithProperty\CSharpReplaceMethodWithPropertyService.cs (4)
262var expression = ReplaceReferencesToParameterWithValue( 341var argumentExpression = currentInvocation.ArgumentList.Arguments[0].Expression.Parenthesize(); 379var invocationExpression = invocation?.Expression; 392private static bool IsInvocationName(IdentifierNameSyntax nameNode, ExpressionSyntax invocationExpression)
ReplacePropertyWithMethods\CSharpReplacePropertyWithMethodsService.cs (4)
33AbstractReplacePropertyWithMethodsService<IdentifierNameSyntax, ExpressionSyntax, NameMemberCrefSyntax, StatementSyntax, PropertyDeclarationSyntax> 74var initializer = propertyDeclaration.Initializer?.Value; 328protected override ExpressionSyntax UnwrapCompoundAssignment( 329SyntaxNode compoundAssignment, ExpressionSyntax readExpression)
ReverseForStatement\CSharpReverseForStatementCodeRefactoringProvider.cs (31)
60var after = forStatement.Incrementors[0]; 66if (MatchesIncrementPattern(variable, condition, after, out var start, out var equals, out var end) || 88ExpressionSyntax start, ExpressionSyntax end, CancellationToken cancellationToken) 111VariableDeclaratorSyntax variable, BinaryExpressionSyntax condition, ExpressionSyntax after, 112[NotNullWhen(true)] out ExpressionSyntax? start, out bool equals, [NotNullWhen(true)] out ExpressionSyntax? end) 122VariableDeclaratorSyntax variable, BinaryExpressionSyntax condition, ExpressionSyntax after, 123[NotNullWhen(true)] out ExpressionSyntax? end, [NotNullWhen(true)] out ExpressionSyntax? start) 131private static bool IsIncrementInitializer(VariableDeclaratorSyntax variable, [NotNullWhen(true)] out ExpressionSyntax? start) 139out bool equals, [NotNullWhen(true)] out ExpressionSyntax? end) 165VariableDeclaratorSyntax variable, ExpressionSyntax after) 195private static bool IsLiteralOne(ExpressionSyntax expression) 199VariableDeclaratorSyntax variable, [NotNullWhen(true)] out ExpressionSyntax? end) 207[NotNullWhen(true)] out ExpressionSyntax? start) 228VariableDeclaratorSyntax variable, ExpressionSyntax after) 258private static bool IsVariableReference(VariableDeclaratorSyntax variable, ExpressionSyntax expr) 267var after = forStatement.Incrementors[0]; 275out var start, out var equals, out var end)) 283var newStart = equals 285: (ExpressionSyntax)generator.SubtractExpression(end, generator.LiteralExpression(1)); 306private static ExpressionSyntax Reduce(ExpressionSyntax expr) 312var reducedLeft = Reduce(outerBinary.Left); 313var reducedRight = Reduce(outerBinary.Right); 359VariableDeclaratorSyntax variable, BinaryExpressionSyntax condition, ExpressionSyntax operand) 377private static ExpressionSyntax InvertAfter(ExpressionSyntax after)
SignatureHelp\AbstractGenericNameSignatureHelpProvider.cs (1)
53var beforeDotExpression = simpleName.IsRightSideOfDot() ? simpleName.GetLeftSideOfDot() : null;
SignatureHelp\ElementAccessExpressionSignatureHelpProvider.cs (9)
43private static bool TryGetElementAccessExpression(SyntaxNode root, int position, ISyntaxFactsService syntaxFacts, SignatureHelpTriggerReason triggerReason, CancellationToken cancellationToken, [NotNullWhen(true)] out ExpressionSyntax? identifier, out SyntaxToken openBrace) 53if (!TryGetElementAccessExpression(root, position, document.GetRequiredLanguageService<ISyntaxFactsService>(), triggerInfo.TriggerReason, cancellationToken, out var expression, out var openBrace)) 112private static TextSpan GetTextSpan(ExpressionSyntax expression, SyntaxToken openBracket) 141out var expression, 179SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken, 195int position, SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken, 299internal static bool TryGetSyntax(SyntaxNode root, int position, ISyntaxFactsService syntaxFacts, SignatureHelpTriggerReason triggerReason, CancellationToken cancellationToken, [NotNullWhen(true)] out ExpressionSyntax? identifier, out SyntaxToken openBrace) 340internal static bool TryGetSyntax(SyntaxNode root, int position, ISyntaxFactsService syntaxFacts, SignatureHelpTriggerReason triggerReason, CancellationToken cancellationToken, [NotNullWhen(true)] out ExpressionSyntax? identifier, out SyntaxToken openBrace) 377internal static bool TryGetSyntax(SyntaxNode root, int position, ISyntaxFactsService syntaxFacts, SignatureHelpTriggerReason triggerReason, CancellationToken cancellationToken, [NotNullWhen(true)] out ExpressionSyntax? identifier, out SyntaxToken openBrace)
SignatureHelp\InvocationExpressionSignatureHelpProviderBase_MethodGroup.cs (1)
45var throughExpression = memberAccess.Expression;
SignatureHelp\SignatureHelpUtilities.cs (1)
107var parenthesizedExpr = parenExpr.WalkUpParentheses();
SignatureHelp\TupleConstructionSignatureHelpProvider.cs (3)
114typeInferrer, syntaxFacts, cancellationToken, out var targetExpression); 125ITypeInferenceService typeInferrer, ISyntaxFactsService syntaxFacts, CancellationToken cancellationToken, out ExpressionSyntax? targetExpression) 133targetExpression = (ExpressionSyntax?)tupleExpression ?? parenthesizedExpression;
SimplifyThisOrMe\CSharpSimplifyThisOrMeDiagnosticAnalyzer.cs (2)
21ExpressionSyntax, 30protected override AbstractMemberAccessExpressionSimplifier<ExpressionSyntax, MemberAccessExpressionSyntax, ThisExpressionSyntax> Simplifier
SimplifyTypeNames\SimplifyTypeNamesCodeFixProvider.cs (1)
54var right = ((BinaryExpressionSyntax)annotatedexpressionSyntax).Right;
Snippets\AbstractCSharpForLoopSnippetProvider.cs (10)
39protected abstract ExpressionSyntax GenerateInitializerValue(SyntaxGenerator generator, SyntaxNode? inlineExpression); 41protected abstract ExpressionSyntax GenerateRightSideOfCondition(SyntaxGenerator generator, SyntaxNode? inlineExpression); 43protected abstract void AddSpecificPlaceholders(MultiDictionary<string, int> placeholderBuilder, ExpressionSyntax initializer, ExpressionSyntax rightOfCondition); 67var indexVariable = (ExpressionSyntax)generator.IdentifierName(iteratorName); 117var condition = forStatement.Condition; 118var incrementor = forStatement.Incrementors.Single(); 125var left = conditionExpression.Left; 130var operand = ((PostfixUnaryExpressionSyntax)incrementor!).Operand;
Snippets\CSharpConsoleSnippetProvider.cs (2)
20ExpressionSyntax, 49protected override ArgumentListSyntax GetArgumentList(ExpressionSyntax expression)
Snippets\CSharpDoWhileLoopSnippetProvider.cs (3)
25: AbstractConditionalBlockSnippetProvider<DoStatementSyntax, ExpressionSyntax> 39(ExpressionSyntax)(inlineExpressionInfo?.Node.WithoutLeadingTrivia() ?? generator.TrueLiteralExpression())); 42protected override ExpressionSyntax GetCondition(DoStatementSyntax node)
Snippets\CSharpForEachLoopSnippetProvider.cs (3)
47if (token is { RawKind: (int)SyntaxKind.AwaitKeyword, Parent: ExpressionSyntax { Parent: ExpressionStatementSyntax } } || 66var collectionIdentifier = (ExpressionSyntax?)inlineExpressionInfo?.Node;
Snippets\CSharpForLoopSnippetProvider.cs (6)
29protected override ExpressionSyntax GenerateInitializerValue(SyntaxGenerator generator, SyntaxNode? inlineExpression) 30=> (ExpressionSyntax)generator.LiteralExpression(0); 32protected override ExpressionSyntax GenerateRightSideOfCondition(SyntaxGenerator generator, SyntaxNode? inlineExpression) 33=> (ExpressionSyntax)(inlineExpression ?? generator.IdentifierName("length")); 35protected override void AddSpecificPlaceholders(MultiDictionary<string, int> placeholderBuilder, ExpressionSyntax initializer, ExpressionSyntax rightOfCondition)
Snippets\CSharpIfSnippetProvider.cs (2)
21internal sealed class CSharpIfSnippetProvider() : AbstractIfSnippetProvider<IfStatementSyntax, ExpressionSyntax> 30protected override ExpressionSyntax GetCondition(IfStatementSyntax node)
Snippets\CSharpLockSnippetProvider.cs (1)
31var expression = node.Expression;
Snippets\CSharpReversedForLoopSnippetProvider.cs (7)
29protected override ExpressionSyntax GenerateInitializerValue(SyntaxGenerator generator, SyntaxNode? inlineExpression) 32return (ExpressionSyntax)generator.SubtractExpression(subtractFrom, generator.LiteralExpression(1)); 35protected override ExpressionSyntax GenerateRightSideOfCondition(SyntaxGenerator generator, SyntaxNode? inlineExpression) 36=> (ExpressionSyntax)generator.LiteralExpression(0); 38protected override void AddSpecificPlaceholders(MultiDictionary<string, int> placeholderBuilder, ExpressionSyntax initializer, ExpressionSyntax rightOfCondition) 43var left = binaryInitializer.Left;
Snippets\CSharpUsingSnippetProvider.cs (1)
31var expression = node.Expression!;
Snippets\CSharpWhileLoopSnippetProvider.cs (2)
21internal sealed class CSharpWhileLoopSnippetProvider() : AbstractWhileLoopSnippetProvider<WhileStatementSyntax, ExpressionSyntax> 30protected override ExpressionSyntax GetCondition(WhileStatementSyntax node)
SplitOrMergeIfStatements\CSharpIfLikeStatementGenerator.cs (1)
109return ifStatement.WithCondition((ExpressionSyntax)condition);
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (13)
18ExpressionSyntax, ExpressionSyntax, SyntaxKind>(CSharpExpressionPrecedenceService.Instance) 49protected override int GetPrecedence(ExpressionSyntax binaryLike) 52protected override bool IsBinaryLike(ExpressionSyntax node) 59protected override (ExpressionSyntax, SyntaxToken, ExpressionSyntax) GetPartsOfBinaryLike(ExpressionSyntax binaryLike) 71protected override ExpressionSyntax? TryGetAppropriateParent(ExpressionSyntax binaryLike) 74ExpressionSyntax expression => expression, 75ConstantPatternSyntax { Parent: ExpressionSyntax expression } => expression, 76ConstantPatternSyntax { Parent: UnaryPatternSyntax { Parent: ExpressionSyntax expression } } => expression, 80protected override bool IsAsExpression(ExpressionSyntax node)
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionDiagnosticAnalyzer.Analyzer.cs (1)
24private ExpressionSyntax? _assignmentTargetOpt;
src\roslyn\src\Analyzers\CSharp\Analyzers\HiddenExplicitCast\CSharpHiddenExplicitCastDiagnosticAnalyzer.cs (2)
43var currentExpression = castExpression.Expression; 46var inner = currentExpression.WalkDownParentheses().WalkDownSuppressions();
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (1)
88var argumentExpression = argumentNode.Expression;
src\roslyn\src\Analyzers\CSharp\Analyzers\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs (4)
122var expr = condition.Left.IsKind(SyntaxKind.NullLiteralExpression) 145bool InvocationExpressionIsEquivalent(ExpressionSyntax expression) 308private static bool IsNullCheckExpression(ExpressionSyntax left, ExpressionSyntax right)
src\roslyn\src\Analyzers\CSharp\Analyzers\QualifyMemberAccess\CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (2)
18: AbstractQualifyMemberAccessDiagnosticAnalyzer<SyntaxKind, ExpressionSyntax, SimpleNameSyntax> 23protected override bool IsAlreadyQualifiedMemberAccess(ExpressionSyntax node)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveConfusingSuppression\CSharpRemoveConfusingSuppressionDiagnosticAnalyzer.cs (1)
31var left = node switch
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryCast\CSharpRemoveUnnecessaryCastDiagnosticAnalyzer.cs (3)
20: AbstractRemoveUnnecessaryCastDiagnosticAnalyzer<SyntaxKind, ExpressionSyntax> 25protected override bool IsUnnecessaryCast(SemanticModel model, ExpressionSyntax cast, CancellationToken cancellationToken) 28protected override TextSpan GetFadeSpan(ExpressionSyntax node)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (6)
87var invokedExpression = invocation.Expression; 192foreach (var candidate in outermostBody.DescendantNodes().OfType<ExpressionSyntax>()) 208var rewrittenExpression = analyzer.ReplacedExpression; 288private static bool MayHaveSideEffects(ExpressionSyntax expression) 334ExpressionSyntax expression,
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (2)
50var inner = parenthesizedExpression.Expression; 56ExpressionSyntax parentExpression;
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyBooleanExpression\CSharpSimplifyConditionalDiagnosticAnalyzer.cs (2)
19ExpressionSyntax, 25protected override CommonConversion GetConversion(SemanticModel semanticModel, ExpressionSyntax node, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationDiagnosticAnalyzer.cs (2)
18: AbstractSimplifyInterpolationDiagnosticAnalyzer<InterpolationSyntax, ExpressionSyntax> 22protected override AbstractSimplifyInterpolationHelpers<InterpolationSyntax, ExpressionSyntax> Helpers => CSharpSimplifyInterpolationHelpers.Instance;
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationHelpers.cs (1)
11: AbstractSimplifyInterpolationHelpers<InterpolationSyntax, ExpressionSyntax>
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqExpressionDiagnosticAnalyzer.cs (1)
17ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorDiagnosticAnalyzer.cs (1)
71static bool IsFieldValueAssignmentExpression(ExpressionSyntax expression)
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
49public static bool IsMergable([NotNullWhen(true)] ExpressionSyntax? expression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseAutoProperty\CSharpUseAutoPropertyAnalyzer.cs (11)
26ExpressionSyntax, 44protected override ExpressionSyntax? GetFieldInitializer(VariableDeclaratorSyntax variable, CancellationToken cancellationToken) 87bool CouldReferenceField(ExpressionSyntax expression) 94void AddIneligibleFieldsForExpression(ExpressionSyntax expression, bool alwaysRestricted = false) 153private static bool CheckExpressionSyntactically(ExpressionSyntax expression) 171protected override ExpressionSyntax? GetGetterExpression(IMethodSymbol getMethod, CancellationToken cancellationToken) 181var expr = GetGetterExpressionFromSymbol(getMethod, cancellationToken); 188private static ExpressionSyntax? GetGetterExpressionFromSymbol(IMethodSymbol getMethod, CancellationToken cancellationToken) 204protected override ExpressionSyntax? GetSetterExpression( 214var setExpression = GetExpressionFromSetter(setAccessor); 226private static ExpressionSyntax? GetExpressionFromSetter(AccessorDeclarationSyntax? setAccessor)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForIfNullStatementCheckDiagnosticAnalyzer.cs (4)
20ExpressionSyntax, 37protected override ExpressionSyntax GetConditionOfIfStatement(IfStatementSyntax ifStatement) 40protected override bool IsNullCheck(ExpressionSyntax condition, [NotNullWhen(true)] out ExpressionSyntax? checkedExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForNullableTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
18ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCoalesceExpression\CSharpUseCoalesceExpressionForTernaryConditionalCheckDiagnosticAnalyzer.cs (1)
18ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForArrayDiagnosticAnalyzer.cs (3)
156var arrayCreationExpression = isConcreteOrImplicitArrayCreation 157? (ExpressionSyntax)initializer.GetRequiredParent() 205SyntaxNodeAnalysisContext context, SyntaxTree syntaxTree, NotificationOption2 notification, ExpressionSyntax expression, bool changesSemantics)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (1)
155var state = new UpdateExpressionState<ExpressionSyntax, StatementSyntax>(
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (2)
38var nodeToReplace = 42? (ExpressionSyntax)invocation
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs (5)
25using FluentState = UpdateExpressionState<ExpressionSyntax, StatementSyntax>; 177var current = memberAccess.Expression; 292void AddFinalMatch(ExpressionSyntax expression) 326bool IsListLike(ExpressionSyntax expression) 343foreach (var expression in initializer.Expressions)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (22)
63ExpressionSyntax expression, 81ExpressionSyntax expression, 93var topMostExpression = expression.WalkUpParentheses(); 354SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 395using var _1 = ArrayBuilder<ExpressionSyntax>.GetInstance(out var expressionsToProcess); 396using var _2 = PooledHashSet<ExpressionSyntax>.GetInstance(out var seenExpressions); 405var locallyScopedExpression = expressionsToProcess.Pop().WalkUpParentheses(); 492void AddExpressionToProcess(ExpressionSyntax expression) 554if (argument.Parent is not BaseArgumentListSyntax { Parent: ExpressionSyntax parentInvocation } argumentList) 593bool IsPrimitiveConstant(ExpressionSyntax expression) 606i => i.IsToken ? i : CreateElement((ExpressionSyntax)i.AsNode()!)); 623CollectionElementSyntax CreateElement(ExpressionSyntax expression) 758where TArrayCreationExpressionSyntax : ExpressionSyntax 1025var argExpression = argument.Expression; 1059public static bool IsIterable(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 1093ExpressionSyntax expression, 1168static bool IsPossiblyDottedGenericName(ExpressionSyntax expression) 1173if (expression is MemberAccessExpressionSyntax { Expression: ExpressionSyntax childName, Name: GenericNameSyntax } && 1182static bool IsPossiblyDottedName(ExpressionSyntax name) 1187if (name is MemberAccessExpressionSyntax { Expression: ExpressionSyntax childName, Name: IdentifierNameSyntax } && 1207var expression = arguments.Single().Expression; 1223nodeOrToken => nodeOrToken.IsToken ? nodeOrToken : Argument((ExpressionSyntax)nodeOrToken.AsNode()!)));
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUpdateExpressionSyntaxHelper.cs (3)
11internal sealed class CSharpUpdateExpressionSyntaxHelper : IUpdateExpressionSyntaxHelper<ExpressionSyntax, StatementSyntax> 20out ExpressionSyntax expression, 36out ExpressionSyntax condition,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerAnalyzer.cs (8)
19ExpressionSyntax, 29protected override IUpdateExpressionSyntaxHelper<ExpressionSyntax, StatementSyntax> SyntaxHelper 167using var _1 = ArrayBuilder<ExpressionSyntax>.GetInstance(out var spreadElements); 194var currentArgumentExpression = argumentList.Arguments[0].Expression; 195using var _2 = ArrayBuilder<ExpressionSyntax>.GetInstance(out var expressionPieces); 219var piece = expressionPieces[i]; 238foreach (var piece in expressionPieces) 241var current = piece;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionInitializer\CSharpUseCollectionInitializerDiagnosticAnalyzer.cs (3)
28ExpressionSyntax, 71if (match.Node is ExpressionSyntax expression) 86foreach (var expression in initializer.Expressions)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCompoundAssignment\CSharpUseCompoundCoalesceAssignmentDiagnosticAnalyzer.cs (7)
62var coalesceLeft = coalesceExpression.Left; 63var coalesceRight = coalesceExpression.Right; 134if (!IsReferenceEqualsNullCheck(semanticModel, ifStatement.Condition, cancellationToken, out var testedExpression)) 174ExpressionSyntax condition, 176[NotNullWhen(true)] out ExpressionSyntax? testedExpression) 195var arg0 = invocation.ArgumentList.Arguments[0].Expression; 196var arg1 = invocation.ArgumentList.Arguments[1].Expression;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseExpressionBodyForLambda\UseExpressionBodyForLambdaHelpers.cs (5)
32var expressionBodyOpt = GetBodyAsExpression(declaration); 77var expressionBody = GetBodyAsExpression(declaration); 89internal static ExpressionSyntax? GetBodyAsExpression(LambdaExpressionSyntax declaration) 90=> declaration.Body as ExpressionSyntax; 114[NotNullWhen(true)] out ExpressionSyntax? expression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorDiagnosticAnalyzer.cs (2)
70SemanticModel semanticModel, ExpressionSyntax left, ExpressionSyntax right)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (2)
271var nodeToCheck = identifierName.WalkUpParentheses(); 336var value = variableDeclarator.Initializer.Value.WalkDownParentheses();
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (4)
20ExpressionSyntax, 43ISyntaxFacts syntaxFacts, ExpressionSyntax conditionNode, 44[NotNullWhen(true)] out ExpressionSyntax? conditionPartToCheck, out bool isEquals) 71[NotNullWhen(true)] out ExpressionSyntax? condition,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseObjectInitializer\CSharpUseNamedMemberInitializerAnalyzer.cs (1)
14ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseObjectInitializer\CSharpUseObjectInitializerDiagnosticAnalyzer.cs (1)
18ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\AnalyzedPattern.cs (4)
92internal sealed class Constant(ExpressionSyntax expression, IOperation target) : AnalyzedPattern(target) 94public readonly ExpressionSyntax ExpressionSyntax = expression; 100internal sealed class Relational(BinaryOperatorKind operatorKind, ExpressionSyntax value, IOperation target) : AnalyzedPattern(target) 103public readonly ExpressionSyntax Value = value;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (5)
18return pattern?.Target.Syntax is ExpressionSyntax ? pattern : null; 101ConstantResult.Left when op.LeftOperand.Syntax is ExpressionSyntax left 106ConstantResult.Right when op.RightOperand.Syntax is ExpressionSyntax right 116ConstantResult.Left when op.LeftOperand.Syntax is ExpressionSyntax left 118ConstantResult.Right when op.RightOperand.Syntax is ExpressionSyntax right
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (4)
49var expression = (ExpressionSyntax)context.Node; 123private static bool IsTopmostExpression(ExpressionSyntax node) 130ExpressionSyntax => false,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (10)
21private readonly ExpressionSyntax _comparison; 22private readonly ExpressionSyntax _operand; 31ExpressionSyntax comparison, 32ExpressionSyntax operand, 58ExpressionSyntax comparison, 59ExpressionSyntax operand, 229case ExpressionSyntax expression: 263if (node is ExpressionSyntax currentExpression && 269if (_declarator.DescendantNodesAndSelf().OfType<ExpressionSyntax>().Any( 312private bool CheckExpression(ExpressionSyntax exprsesion)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (8)
71var comparison = (ExpressionSyntax)node; 79var operand = GetNullCheckOperand(comparisonLeft, comparison.Kind(), comparisonRight)?.WalkDownParentheses(); 120var typeNode = asExpression.Right; 294var initializerValue = declarator.Initializer?.Value; 336private static ExpressionSyntax? GetNullCheckOperand(ExpressionSyntax left, SyntaxKind comparisonKind, SyntaxNode right) 342return (ExpressionSyntax)right;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (1)
196var declaratorValue = declarator.Initializer.Value.WalkDownParentheses();
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (1)
42var whenNotNull = parentConditionalAccess.WhenNotNull;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseTupleSwap\CSharpUseTupleSwapDiagnosticAnalyzer.cs (7)
81var localDeclarationExprA = variableDeclarator.Initializer?.Value.WalkDownParentheses(); 87if (!IsSimpleAssignment(firstAssignmentStatement, out var firstAssignmentExprA, out var firstAssignmentExprB)) 92if (!IsSimpleAssignment(secondAssignmentStatement, out var secondAssignmentExprB, out var secondAssignmentExprTemp)) 131[NotNullWhen(true)] out ExpressionSyntax? left, 132[NotNullWhen(true)] out ExpressionSyntax? right)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddAnonymousTypeMemberName\CSharpAddAnonymousTypeMemberNameCodeFixProvider.cs (2)
22ExpressionSyntax, 34protected override ExpressionSyntax GetExpression(AnonymousObjectMemberDeclaratorSyntax declarator)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\ArgumentFixer.cs (1)
17protected override ExpressionSyntax GetExpressionOfArgument(ArgumentSyntax argument)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\AttributeArgumentFixer.cs (1)
17protected override ExpressionSyntax GetExpressionOfArgument(AttributeArgumentSyntax argument)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\CSharpAddExplicitCastCodeFixProvider.cs (8)
23: AbstractAddExplicitCastCodeFixProvider<ExpressionSyntax> 40protected override void GetPartsOfCastOrConversionExpression(ExpressionSyntax expression, out SyntaxNode type, out ExpressionSyntax castedExpression) 47protected override ExpressionSyntax Cast(ExpressionSyntax expression, ITypeSymbol type) 55ExpressionSyntax spanNode, 56ArrayBuilder<(ExpressionSyntax node, ITypeSymbol type)> candidates, 90SemanticModel semanticModel, ExpressionSyntax targetNode, ITypeSymbol conversionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddParameter\CSharpAddParameterCodeFixProvider.cs (2)
28ExpressionSyntax, 52protected override Argument<ExpressionSyntax> GetArgument(ArgumentSyntax argument)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AbstractAssignOutParametersCodeFixProvider.cs (1)
72if (location is ExpressionSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AssignOutParametersAtStartCodeFixProvider.cs (1)
28if (location is ExpressionSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.Rewriter.cs (19)
22private sealed class Rewriter : CSharpSyntaxVisitor<ExpressionSyntax> 28private ExpressionSyntax? _assignmentTarget; 55var switchExpression = rewriter.RewriteSwitchStatement( 65ExpressionSyntax switchExpression, 93private ExpressionStatementSyntax GenerateAssignment(ExpressionSyntax switchExpression, SyntaxKind assignmentKind, SyntaxTriviaList leadingTrivia) 104private StatementSyntax GenerateVariableDeclaration(ExpressionSyntax switchExpression, ITypeSymbol? declaratorToRemoveType) 180public override ExpressionSyntax VisitAssignmentExpression(AssignmentExpressionSyntax node) 186private ExpressionSyntax CastIfChangeInRuntimeRepresentation(ExpressionSyntax node) 205private ExpressionSyntax RewriteStatements(SyntaxList<StatementSyntax> statements) 209var result = Visit(statements[0]); 214public override ExpressionSyntax VisitSwitchStatement(SwitchStatementSyntax node) 217private ExpressionSyntax RewriteSwitchStatement( 236var armExpression = Visit(nextStatement); 277public override ExpressionSyntax VisitReturnStatement(ReturnStatementSyntax node) 283public override ExpressionSyntax VisitThrowStatement(ThrowStatementSyntax node) 291public override ExpressionSyntax VisitExpressionStatement(ExpressionStatementSyntax node) 293var result = Visit(node.Expression); 298public override ExpressionSyntax DefaultVisit(SyntaxNode node)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (8)
288public static ImmutableArray<ExpressionSyntax> GetAssignmentValuesForNonPrimaryConstructor( 295? assignment.Syntax as ExpressionSyntax 305if (arg is { Parameter: IParameterSymbol param, Value.Syntax: ExpressionSyntax captured }) 360public static ImmutableArray<ExpressionSyntax> GetAssignmentValuesFromObjectCreation( 378var dictionaryBuilder = ImmutableDictionary<ISymbol, ExpressionSyntax>.Empty.ToBuilder(); 385Value: IOperation { Syntax: ExpressionSyntax syntax } 401private static ImmutableArray<ExpressionSyntax> GetAssignmentExpressionsFromValuesMap( 403ImmutableDictionary<ISymbol, ExpressionSyntax> assignmentValues)
src\roslyn\src\Analyzers\CSharp\CodeFixes\DisambiguateSameVariable\CSharpDisambiguateSameVariableCodeFixProvider.cs (2)
148var newExpr = (ExpressionSyntax)newNameNode;
src\roslyn\src\Analyzers\CSharp\CodeFixes\FixReturnType\CSharpFixReturnTypeCodeFixProvider.cs (1)
166var argumentExpression = tuple.Arguments[i].Expression;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (10)
26: AbstractGenerateConstructorService<CSharpGenerateConstructorService, ExpressionSyntax> 45out ImmutableArray<Argument<ExpressionSyntax>> arguments, 69private static ImmutableArray<Argument<ExpressionSyntax>> GetArguments(SeparatedSyntaxList<ArgumentSyntax> arguments) 72private static ImmutableArray<Argument<ExpressionSyntax>> GetArguments(SeparatedSyntaxList<AttributeArgumentSyntax> arguments) 73=> arguments.SelectAsArray(a => new Argument<ExpressionSyntax>( 83out ImmutableArray<Argument<ExpressionSyntax>> arguments, 115out ImmutableArray<Argument<ExpressionSyntax>> arguments, 150out ImmutableArray<Argument<ExpressionSyntax>> arguments, 173protected override string GenerateNameForExpression(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 176protected override ITypeSymbol GetArgumentType(SemanticModel semanticModel, Argument<ExpressionSyntax> argument, CancellationToken cancellationToken)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateEnumMember\CSharpGenerateEnumMemberService.cs (2)
20AbstractGenerateEnumMemberService<CSharpGenerateEnumMemberService, SimpleNameSyntax, ExpressionSyntax> 28[NotNullWhen(true)] out ExpressionSyntax? simpleNameOrMemberAccessExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateConversionCodeFixProvider.cs (1)
43node is ExpressionSyntax;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateMethodCodeFixProvider.cs (1)
62node is ExpressionSyntax;
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (5)
25AbstractGenerateConversionService<CSharpGenerateConversionService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax> 29return node is ExpressionSyntax && 42SemanticDocument document, AbstractGenerateParameterizedMemberService<CSharpGenerateConversionService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state) 217protected override string GetImplicitConversionDisplayText(AbstractGenerateParameterizedMemberService<CSharpGenerateConversionService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state) 220protected override string GetExplicitConversionDisplayText(AbstractGenerateParameterizedMemberService<CSharpGenerateConversionService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateDeconstructMethodService.cs (2)
24AbstractGenerateDeconstructMethodService<CSharpGenerateDeconstructMethodService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax> 29protected override AbstractInvocationInfo CreateInvocationMethodInfo(SemanticDocument document, AbstractGenerateParameterizedMemberService<CSharpGenerateDeconstructMethodService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (4)
26AbstractGenerateMethodService<CSharpGenerateMethodService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax> 37protected override AbstractInvocationInfo CreateInvocationMethodInfo(SemanticDocument document, AbstractGenerateParameterizedMemberService<CSharpGenerateMethodService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>.State state) 82[NotNullWhen(true)] out ExpressionSyntax? simpleNameOrMemberAccessExpression, 147ExpressionSyntax expression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateParameterizedMemberService.cs (2)
21internal abstract class CSharpGenerateParameterizedMemberService<TService> : AbstractGenerateParameterizedMemberService<TService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax> 22where TService : AbstractGenerateParameterizedMemberService<TService, SimpleNameSyntax, ExpressionSyntax, InvocationExpressionSyntax>
src\roslyn\src\Analyzers\CSharp\CodeFixes\HiddenExplicitCast\CSharpHiddenExplicitCastCodeFixProvider.cs (1)
52return currentCast.WithExpression((ExpressionSyntax)g.CastExpression(typeToInsert, currentCast.Expression));
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (2)
88var invocationOrCreation = (ExpressionSyntax)invocationOrCreationLocation.FindNode(
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpAddYieldCodeFixProvider.cs (1)
89SemanticModel model, ExpressionSyntax? expression, [NotNullWhen(true)] out ITypeSymbol? returnExpressionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\NewLines\ArrowExpressionClausePlacement\ArrowExpressionClausePlacementCodeFixProvider.cs (1)
66ExpressionSyntax nextExpression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\NewLines\ConditionalExpressionPlacement\ConditionalExpressionPlacementCodeFixProvider.cs (1)
67ExpressionSyntax nextExpression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\PopulateSwitch\CSharpPopulateSwitchExpressionCodeFixProvider.cs (1)
25ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveAsyncModifier\CSharpRemoveAsyncModifierCodeFixProvider.cs (2)
24internal sealed partial class CSharpRemoveAsyncModifierCodeFixProvider() : AbstractRemoveAsyncModifierCodeFixProvider<ReturnStatementSyntax, ExpressionSyntax> 33protected override SyntaxNode? ConvertToBlockBody(SyntaxNode node, ExpressionSyntax expressionBody)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveConfusingSuppression\CSharpRemoveConfusingSuppressionCodeFixProvider.cs (2)
76var left = isNode switch 85var withoutSuppression = suppression.Operand.WithAppendedTrailingTrivia(suppression.OperatorToken.GetAllTrivia());
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryCast\CSharpRemoveUnnecessaryCastCodeFixProvider.cs (5)
41d => (ExpressionSyntax)d.AdditionalLocations[0].FindNode(getInnermostNodeForTie: true, cancellationToken)); 48var oldParent = castExpression.WalkUpParentheses(); 49var newParent = Recurse(oldParent); 56private static ExpressionSyntax Recurse(ExpressionSyntax old)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessarySuppressions\CSharpRemoveUnnecessaryNullableWarningSuppressionsCodeFixProvider.cs (1)
97var result = ((PostfixUnaryExpressionSyntax)current).Operand.WithTriviaFrom(current);
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (4)
28: AbstractRemoveUnusedValuesCodeFixProvider<ExpressionSyntax, StatementSyntax, BlockSyntax, 135return assignment.Update((ExpressionSyntax)newNameNode, assignment.OperatorToken, objectCreationNode); 209var leftOfAssignment = assignmentExpression.Left; 210var rightOfAssignment = assignmentExpression.Right;
src\roslyn\src\Analyzers\CSharp\CodeFixes\SimplifyInterpolation\CSharpSimplifyInterpolationCodeFixProvider.cs (3)
20ExpressionSyntax, 25protected override AbstractSimplifyInterpolationHelpers<InterpolationSyntax, ExpressionSyntax> Helpers => CSharpSimplifyInterpolationHelpers.Instance; 27protected override InterpolationSyntax WithExpression(InterpolationSyntax interpolation, ExpressionSyntax expression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\SimplifyPropertyPattern\CSharpSimplifyPropertyPatternCodeFixProvider.cs (2)
95private static MemberAccessExpressionSyntax? Merge(ExpressionSyntax? outerExpression, ExpressionSyntax? innerExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseAutoProperty\CSharpUseAutoPropertyCodeFixProvider.cs (2)
40ExpressionSyntax> 101var fieldInitializer = fieldDeclarator.Initializer?.Value;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (27)
43where TParentExpression : ExpressionSyntax 86if (preMatches is [{ Node: ExpressionSyntax } preMatch] && postMatches.IsEmpty) 90else if (preMatches.IsEmpty && postMatches is [{ Node: ExpressionSyntax } postMatch]) 215var expression = (ExpressionSyntax)(object)match.Node; 455bool useSpread, ExpressionSyntax expression) 531foreach (var expression in expressions) 538var indentedExpression = IndentNode(foreachStatement, foreachStatement.Expression, preferredIndentation); 565var condition = IndentNode(ifStatement, ifStatement.Condition, preferredIndentation).Parenthesize(includeElasticTrivia: false); 589else if (node is ExpressionSyntax expression) 801foreach (var expression in initializer.Expressions) 856else if (node is ExpressionSyntax expression) 865static ExpressionSyntax ConvertExpression( 866ExpressionSyntax expression, Func<ExpressionSyntax, ExpressionSyntax>? indent) 872static ImmutableArray<ExpressionSyntax> ConvertExpressions( 873ExpressionSyntax expression, Func<ExpressionSyntax, ExpressionSyntax>? indent) 888static ImmutableArray<ExpressionSyntax> ConvertAssignment( 889AssignmentExpressionSyntax assignment, Func<ExpressionSyntax, ExpressionSyntax> indent) 894static ImmutableArray<ExpressionSyntax> ConvertInvocation( 895InvocationExpressionSyntax invocation, Func<ExpressionSyntax, ExpressionSyntax> indent) 907ParsedDocument document, TParentExpression expressionToReplace, SyntaxFormattingOptions formattingOptions) where TParentExpression : ExpressionSyntax
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForArrayCodeFixProvider.cs (3)
28: AbstractUseCollectionExpressionCodeFixProvider<ExpressionSyntax>( 37ExpressionSyntax arrayCreationExpression, 100SemanticModel semanticModel, ExpressionSyntax expression, INamedTypeSymbol? expressionType)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForCreateCodeFixProvider.cs (1)
66var matches = expressions.SelectAsArray(e => new CollectionMatch<ExpressionSyntax>(e, useSpread, UseKeyValue: false));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForFluentCodeFixProvider.cs (3)
53var state = new UpdateExpressionState<ExpressionSyntax, StatementSyntax>( 103static ImmutableArray<CollectionMatch<ExpressionSyntax>> CreateMatches( 108using var result = TemporaryArray<CollectionMatch<ExpressionSyntax>>.Empty;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForNewCodeFixProvider.cs (1)
67var matches = expressions.SelectAsArray(e => new CollectionMatch<ExpressionSyntax>(e, useSpread, UseKeyValue: false));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpUseCollectionExpressionForStackAllocCodeFixProvider.cs (2)
24: AbstractUseCollectionExpressionCodeFixProvider<ExpressionSyntax>( 33ExpressionSyntax stackAllocExpression,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider.cs (2)
24ExpressionSyntax, 45ExpressionSyntax newObjectCreation = useCollectionExpression
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider_CollectionInitializer.cs (8)
34SeparatedSyntaxList<ExpressionSyntax> CreateCollectionInitializerExpressions() 38UseInitializerHelpers.AddExistingItems<CollectionMatch<SyntaxNode>, ExpressionSyntax>( 53var expression = ConvertExpression(statement.Expression) 68return SeparatedList<ExpressionSyntax>(nodesAndTokens); 93static ExpressionSyntax ConvertExpression( 94ExpressionSyntax expression) 114static ExpressionSyntax ConvertInvocation(InvocationExpressionSyntax invocation) 126var expression = arguments[0].Expression;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundAssignmentCodeFixProvider.cs (11)
20: AbstractUseCompoundAssignmentCodeFixProvider<SyntaxKind, AssignmentExpressionSyntax, ExpressionSyntax>(Utilities.Kinds) 26SyntaxKind assignmentOpKind, ExpressionSyntax left, SyntaxToken syntaxToken, ExpressionSyntax right) 31protected override ExpressionSyntax Increment(ExpressionSyntax left, bool postfix) 36protected override ExpressionSyntax Decrement(ExpressionSyntax left, bool postfix) 41private static ExpressionSyntax Postfix(SyntaxKind kind, ExpressionSyntax operand) 44private static ExpressionSyntax Prefix(SyntaxKind kind, ExpressionSyntax operand)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (3)
26StatementSyntax, IfStatementSyntax, LocalDeclarationStatementSyntax, VariableDeclaratorSyntax, ExpressionSyntax, ConditionalExpressionSyntax> 34protected override VariableDeclaratorSyntax WithInitializer(VariableDeclaratorSyntax variable, ExpressionSyntax value) 57protected override ExpressionSyntax ConvertToExpression(IThrowOperation throwOperation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForReturnCodeFixProvider.cs (5)
23: AbstractUseConditionalExpressionForReturnCodeFixProvider<StatementSyntax, IfStatementSyntax, ExpressionSyntax, ConditionalExpressionSyntax> 44protected override ExpressionSyntax WrapIfStatementIfNecessary(IConditionalOperation operation) 52protected override ExpressionSyntax WrapReturnExpressionIfNecessary(ExpressionSyntax returnExpression, IOperation returnOperation) 60protected override ExpressionSyntax ConvertToExpression(IThrowOperation throwOperation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionHelpers.cs (1)
18public static ExpressionSyntax ConvertToExpression(IThrowOperation throwOperation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseDeconstruction\CSharpUseDeconstructionCodeFixProvider.cs (1)
145private ExpressionSyntax CreateTupleOrDeclarationExpression(INamedTypeSymbol tupleType, TypeSyntax typeNode)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExplicitArrayInExpressionTree\CSharpUseExplicitArrayInExpressionTreeCodeFixProvider.cs (1)
167SeparatedList<ExpressionSyntax>(expressionsAndCommasToWrap));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExpressionBodyForLambda\UseExpressionBodyForLambdaCodeActionHelpers.cs (3)
28var expressionBody = UseExpressionBodyForLambdaHelpers.GetBodyAsExpression(lambdaExpression); 38semanticModel, declaration, declaration.GetLanguageVersion(), ExpressionBodyPreference.WhenPossible, cancellationToken, out var expressionBody)) 57SemanticModel semanticModel, LambdaExpressionSyntax lambdaExpression, ExpressionSyntax expressionBody)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (3)
106var tupleDeclaration = GenerateTupleDeclaration( 182private static ExpressionSyntax GenerateTupleDeclaration( 197ExpressionSyntax newDeclaration;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (19)
72var updatedNode = FixOne(result, generator); 83private static ExpressionSyntax FixOne(Result result, SyntaxGenerator generator) 110var expression = invocation.Expression is MemberAccessExpressionSyntax memberAccess 155(ExpressionSyntax? startExpr, bool startFromEnd, ExpressionSyntax? endExpr, bool endFromEnd) GetComputedRangeData() 165return (startExpr: null, startFromEnd: false, (ExpressionSyntax)subtraction.RightOperand.Syntax, endFromEnd: true); 170return (startExpr: null, startFromEnd: false, (ExpressionSyntax)result.InvocationOperation.Arguments[0].Value.Syntax, endFromEnd: false); 179return ((ExpressionSyntax)subtraction.RightOperand.Syntax, startFromEnd: true, endExpr: null, endFromEnd: false); 184return ((ExpressionSyntax)result.InvocationOperation.Arguments[1].Value.Syntax, startFromEnd: false, endExpr: null, endFromEnd: false); 200var startExpr = (ExpressionSyntax)startOperation.Syntax; 203ExpressionSyntax? endExpr = null; 215endExpr = (ExpressionSyntax)endOperation.Syntax; 231private static ExpressionSyntax? WalkUpCheckedExpressions(ExpressionSyntax? expr) 246return RangeExpression(leftOperand: null, WalkUpCheckedExpressions((ExpressionSyntax)result.Op1.Syntax)); 251return RangeExpression(leftOperand: null, IndexExpression(WalkUpCheckedExpressions((ExpressionSyntax)result.Op1.Syntax))); 265constant1 == 0 ? null : WalkUpCheckedExpressions((ExpressionSyntax)result.Op1.Syntax), 266IndexExpression((ExpressionSyntax)generator.LiteralExpression(constant2 - constant1)));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\Helpers.cs (1)
15public static PrefixUnaryExpressionSyntax IndexExpression(ExpressionSyntax expr)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorCodeFixProvider.cs (3)
65private static ExpressionSyntax Rewrite(BinaryExpressionSyntax binary) 93BinaryExpressionSyntax binary, ExpressionSyntax expr, ExpressionSyntax nullLiteral)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIsNullCheck\CSharpUseIsNullCheckForReferenceEqualsCodeFixProvider.cs (6)
22: AbstractUseIsNullCheckForReferenceEqualsCodeFixProvider<ExpressionSyntax> 33private static SyntaxNode CreateEqualsNullCheck(ExpressionSyntax argument) 36private static SyntaxNode CreateIsNullCheck(ExpressionSyntax argument) 39private static SyntaxNode CreateIsNotNullCheck(ExpressionSyntax argument) 58protected override SyntaxNode CreateNullCheck(ExpressionSyntax argument, bool isUnconstrainedGeneric) 63protected override SyntaxNode CreateNotNullCheck(ExpressionSyntax argument)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (6)
61List<ExpressionSyntax> references)>(diagnostics.Length); 70var references = new List<ExpressionSyntax>(diagnostic.AdditionalLocations.Count - 2); 74references.Add((ExpressionSyntax)diagnostic.AdditionalLocations[i].FindNode(getInnermostNodeForTie: true, cancellationToken)); 182ImmutableArray<ExpressionSyntax> references) 230var expressionBody = anonymousFunction.Body is ExpressionSyntax expression 234var semicolonToken = anonymousFunction.Body is ExpressionSyntax
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
22ExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseObjectInitializer\CSharpUseObjectInitializerCodeFixProvider.cs (5)
22using ObjectInitializerMatch = Match<ExpressionSyntax, StatementSyntax, MemberAccessExpressionSyntax, ExpressionStatementSyntax>; 30ExpressionSyntax, 70private SeparatedSyntaxList<ExpressionSyntax> CreateExpressions( 77UseInitializerHelpers.AddExistingItems<ObjectInitializerMatch, ExpressionSyntax>( 106return SeparatedList<ExpressionSyntax>(nodesAndTokens);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseObjectInitializer\UseInitializerHelpers.cs (4)
18SeparatedSyntaxList<ExpressionSyntax> expressions) 27var firstExpression = expressions.First(); 39Func<TMatch?, ExpressionSyntax, TElementSyntax> createElement) 50nodesAndTokens.Add(createElement(null, (ExpressionSyntax)nodeOrToken.AsNode()!));
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternCombinators\CSharpUsePatternCombinatorsCodeFixProvider.cs (3)
84editor.ReplaceNode(expression, IsPatternExpression((ExpressionSyntax)pattern.Target.Syntax, patternSyntax)); 121private static ExpressionSyntax AsExpressionSyntax(ExpressionSyntax expr, AnalyzedPattern p)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (6)
58var parent = binaryExpression ?? (ExpressionSyntax?)isPatternExpression; 84var toReplace = parent.WalkUpParentheses(); 93var whenNotNull = conditionalAccessExpression.WhenNotNull; 101static ExpressionSyntax RewriteMemberBindingToExpression(ExpressionSyntax expression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (5)
94var comparison = (ExpressionSyntax)comparisonLocation.FindNode(cancellationToken); 107var condition = GetCondition(languageVersion, comparison, asExpression, declarationPattern); 159private static ExpressionSyntax GetCondition( 161ExpressionSyntax comparison,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (1)
594if (identifier.GetRequiredParent() is ExpressionSyntax expression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (1)
138ExpressionSyntax expression = node;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseTupleSwap\CSharpUseTupleSwapCodeFixProvider.cs (2)
55var exprA = assignment.Left.WalkDownParentheses().WithoutTrivia(); 56var exprB = assignment.Right.WalkDownParentheses().WithoutTrivia();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseUtf8StringLiteral\UseUtf8StringLiteralCodeFixProvider.cs (4)
171var stringLiteral = CreateUtf8String(SyntaxTriviaList.Empty, stringValue, argumentList.Arguments.Last().GetTrailingTrivia(), isConvertedToReadOnlySpan); 182private static ExpressionSyntax CreateUtf8String(SyntaxNode nodeToTakeTriviaFrom, string stringValue, bool isConvertedToReadOnlySpan) 187private static ExpressionSyntax CreateUtf8String(SyntaxTriviaList leadingTrivia, string stringValue, SyntaxTriviaList trailingTrivia, bool isConvertedToReadOnlySpan) 191var stringLiteral = ParseExpression(QuoteCharacter + stringValue + QuoteCharacter + Suffix).WithLeadingTrivia(leadingTrivia);
src\roslyn\src\Compilers\CSharp\Portable\Syntax\LambdaUtilities.cs (3)
218private static bool IsReducedSelectOrGroupByClause(SelectOrGroupClauseSyntax selectOrGroupClause, ExpressionSyntax selectOrGroupExpression) 450SeparatedSyntaxList<ExpressionSyntax> incrementors = ((ForStatementSyntax)node.Parent).Incrementors; 468if (node is ExpressionSyntax && node.Parent != null && node.Parent.Parent == null)
StringIndentation\CSharpStringIndentationService.cs (2)
87if (!TryGetIndentSpan(text, (ExpressionSyntax)token.GetRequiredParent(), out _, out var indentSpan)) 158private static bool TryGetIndentSpan(SourceText text, ExpressionSyntax expression, out int offset, out TextSpan indentSpan)
UseNamedArguments\CSharpUseNamedArgumentsCodeRefactoringProvider.cs (3)
27protected abstract ExpressionSyntax GetArgumentExpression(TSyntax argumentSyntax); 76protected override ExpressionSyntax GetArgumentExpression(ArgumentSyntax argumentSyntax) 96protected override ExpressionSyntax GetArgumentExpression(AttributeArgumentSyntax argumentSyntax)
UsePatternMatching\CSharpIsAndCastCheckWithoutNameDiagnosticAnalyzer.cs (2)
123var expr = isExpression.Left.WalkDownParentheses(); 233var castRoot = castExpression.WalkUpParentheses();
Wrapping\SeparatedSyntaxList\CSharpArgumentWrapper.cs (4)
74var expr = (declaration as InvocationExpressionSyntax)?.Expression ?? 76var name = TryGetInvokedName(expr); 116private static ExpressionSyntax? TryGetInvokedName(ExpressionSyntax expr)
Wrapping\SeparatedSyntaxList\CSharpInitializerExpressionWrapper.cs (2)
11: AbstractCSharpSeparatedSyntaxListWrapper<InitializerExpressionSyntax, ExpressionSyntax> 41protected override SeparatedSyntaxList<ExpressionSyntax> GetListItems(InitializerExpressionSyntax listSyntax)
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (45)
Microsoft.CodeQuality.Analyzers\Maintainability\CSharpUseCrossPlatformIntrinsicsFixer.cs (2)
48if (binaryOpFunc(arguments[0].Expression, arguments[1].Expression) is not ExpressionSyntax replacementExpression) 72if (unaryOpFunc(arguments[0].Expression) is not ExpressionSyntax replacementExpression)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpAvoidDuplicateElementInitializationFixer.cs (2)
39if (root.FindNode(diagnostic.AdditionalLocations[0].SourceSpan) is not ExpressionSyntax elementInitializer || 54ExpressionSyntax elementInitializer,
Microsoft.NetCore.Analyzers\InteropServices\CSharpDisableRuntimeMarshalling.Fixer.cs (3)
115(ExpressionSyntax)editor.Generator.CastExpression(editor.SemanticModel.Compilation.CreatePointerTypeSymbol(operation.Arguments[0].Value.Type!), 169nullCheckAndDecl = nullCheckAndDecl.WithExpression((ExpressionSyntax)pointerCast); 179(ExpressionSyntax)editor.Generator.CastExpression(
Microsoft.NetCore.Analyzers\InteropServices\CSharpDynamicInterfaceCastableImplementation.Fixer.cs (1)
202List<(InvocationExpressionSyntax invocation, ExpressionSyntax target)> invocations = new();
Microsoft.NetCore.Analyzers\Performance\CSharpDoNotGuardCall.Fixer.cs (1)
51.WithCondition((ExpressionSyntax)expression)
Microsoft.NetCore.Analyzers\Performance\CSharpDoNotUseCountWhenAnyCanBeUsed.Fixer.cs (1)
119ExpressionSyntax sourceExpression,
Microsoft.NetCore.Analyzers\Performance\CSharpPreferHashDataOverComputeHash.Fixer.cs (1)
210var initliazerValue = ((VariableDeclaratorSyntax)createNode).Initializer?.Value;
Microsoft.NetCore.Analyzers\Performance\CSharpPreferLengthCountIsEmptyOverAny.Fixer.cs (3)
24var expression = memberAccess.Expression; 65var expression = memberAccess.Expression; 72static BinaryExpressionSyntax GetBinaryExpression(ExpressionSyntax expression, string member, SyntaxKind expressionKind)
Microsoft.NetCore.Analyzers\Performance\CSharpRecommendCaseInsensitiveStringComparisonFixer.cs (2)
31ExpressionSyntax internalExpression = memberAccessExpression.Expression; 74ExpressionSyntax? desiredExpression = null;
Microsoft.NetCore.Analyzers\Performance\CSharpUseSearchValues.cs (8)
63syntax is ExpressionSyntax expression && 67internal static ExpressionSyntax? TryGetPropertyGetterExpression(PropertyDeclarationSyntax propertyDeclaration) 69var expression = propertyDeclaration.ExpressionBody?.Expression; 93internal static bool IsConstantByteOrCharArrayCreationExpression(SemanticModel semanticModel, ExpressionSyntax expression, List<char>? values, out int length) 126foreach (var valueExpression in valueExpressions) 143static bool TryGetByteOrCharLiteral(ExpressionSyntax? expression, out char value) 168private static bool IsUtf8StringLiteralExpression(ExpressionSyntax expression, out int length) 225static bool IsFieldReference(ExpressionSyntax expression, string fieldName) =>
Microsoft.NetCore.Analyzers\Performance\CSharpUseSearchValues.Fixer.cs (1)
115if (operation.Syntax is ExpressionSyntax creationSyntax &&
Microsoft.NetCore.Analyzers\Performance\CSharpUseStartsWithInsteadOfIndexOfComparisonWithZero.Fixer.cs (1)
28SyntaxFactory.SingletonList(SyntaxFactory.ArrayRankSpecifier(SyntaxFactory.SingletonSeparatedList((ExpressionSyntax)generator.LiteralExpression(1))))),
Microsoft.NetCore.Analyzers\Runtime\CSharpAvoidRedundantRegexIsMatchBeforeMatch.Fixer.cs (5)
254var initValue = preVar.Initializer.Value; 303private static bool IsMatchNode(ExpressionSyntax expression, SyntaxNode matchNode) 441var matchCallExpression = matchDeclarationStatement.Declaration.Variables[0].Initializer!.Value; 462var matchCallExpression = assignmentExpr.Right; 476ExpressionSyntax matchCallExpression,
Microsoft.NetCore.Analyzers\Runtime\CSharpPreventNumericIntPtrUIntPtrBehavioralChanges.cs (1)
67private static bool IdentifierNameIsIntPtrOrUIntPtr(ExpressionSyntax? syntax) =>
Microsoft.NetCore.Analyzers\Usage\CSharpDoNotCompareSpanToNull.Fixer.cs (2)
39ExpressionSyntax memberAccess = SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, GetComparatorExpression(binaryExpression), SyntaxFactory.IdentifierName(IsEmpty)); 48private static ExpressionSyntax GetComparatorExpression(BinaryExpressionSyntax binaryExpression)
Microsoft.NetCore.Analyzers\Usage\CSharpDoNotPassNonNullableValueToArgumentNullExceptionThrowIfNullFixer.cs (1)
22var nullableStructExpression = invocation.ArgumentList.Arguments[0].Expression;
Microsoft.NetCore.Analyzers\Usage\CSharpPreferGenericOverloads.cs (1)
45var modifiedInvocationExpression = invocationSyntax.Expression;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler.CSharp\Extensions\SyntaxGeneratorExtensions.cs (3)
19=> SyntaxFactory.BinaryExpression(syntaxKind, (ExpressionSyntax)generator.Parenthesize(left), (ExpressionSyntax)generator.Parenthesize(right)); 49ExpressionSyntax expression => expression.Parenthesize(includeElasticTrivia, addSimplifierAnnotation),
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler.CSharp\Extensions\SyntaxNodeExtensions.cs (6)
27public static ExpressionSyntax Parenthesize( 28this ExpressionSyntax expression, bool includeElasticTrivia = true, bool addSimplifierAnnotation = true) 58var result = ParenthesizeWorker(expression, includeElasticTrivia); 64private static ExpressionSyntax ParenthesizeWorker( 65this ExpressionSyntax expression, bool includeElasticTrivia) 67var withoutTrivia = expression.WithoutTrivia();
Microsoft.CodeAnalysis.CSharp.Workspaces (501)
Classification\Worker_Preprocesser.cs (1)
116private void ClassifyPreprocessorExpression(ExpressionSyntax? node)
CodeGeneration\CSharpSyntaxGenerator.cs (46)
184initializer != null ? SyntaxFactory.EqualsValueClause((ExpressionSyntax)initializer) : null)])); 200initializer != null ? SyntaxFactory.EqualsValueClause((ExpressionSyntax)initializer) : null); 894expression != null ? SyntaxFactory.EqualsValueClause((ExpressionSyntax)expression) : null); 946? SyntaxFactory.AttributeArgument(SyntaxFactory.NameEquals(name.ToIdentifierName()), nameColon: null, (ExpressionSyntax)expression) 947: SyntaxFactory.AttributeArgument((ExpressionSyntax)expression); 955if (node is ExpressionSyntax expr) 2427return ((ParenthesizedLambdaExpressionSyntax)declaration).Body as ExpressionSyntax; 2429return ((SimpleLambdaExpressionSyntax)declaration).Body as ExpressionSyntax; 2477var expr = (ExpressionSyntax)expression; 3235=> SyntaxFactory.AssignmentExpression(SyntaxKind.AddAssignmentExpression, (ExpressionSyntax)@event, (ExpressionSyntax)ParenthesizeNonSimple(handler)); 3238=> SyntaxFactory.AssignmentExpression(SyntaxKind.SubtractAssignmentExpression, (ExpressionSyntax)@event, (ExpressionSyntax)ParenthesizeNonSimple(handler)); 3241=> SyntaxFactory.AwaitExpression((ExpressionSyntax)expression); 3247=> SyntaxFactory.ReturnStatement((ExpressionSyntax?)expression); 3250=> SyntaxFactory.ThrowStatement((ExpressionSyntax?)expression); 3253=> SyntaxFactory.ThrowExpression((ExpressionSyntax)expression); 3260(ExpressionSyntax)condition, 3269(ExpressionSyntax)condition, 3299if (node is ExpressionSyntax expression) 3308=> SyntaxFactory.ExpressionStatement((ExpressionSyntax)expression); 3320private static SeparatedSyntaxList<ExpressionSyntax> AsExpressionList(IEnumerable<SyntaxNode> expressions) 3321=> [.. expressions.OfType<ExpressionSyntax>()]; 3325var arrayType = SyntaxFactory.ArrayType((TypeSyntax)elementType, [SyntaxFactory.ArrayRankSpecifier([(ExpressionSyntax)size])]); 3353=> argOrExpression as ArgumentSyntax ?? SyntaxFactory.Argument((ExpressionSyntax)argOrExpression); 3356=> SyntaxFactory.InvocationExpression(CSharpSyntaxGeneratorInternal.ParenthesizeLeft((ExpressionSyntax)expression), CreateArgumentList(arguments)); 3359=> SyntaxFactory.ElementAccessExpression(CSharpSyntaxGeneratorInternal.ParenthesizeLeft((ExpressionSyntax)expression), SyntaxFactory.BracketedArgumentList(CreateArguments(arguments))); 3368=> SyntaxFactory.BinaryExpression(SyntaxKind.IsExpression, (ExpressionSyntax)ParenthesizeNonSimple(expression), (TypeSyntax)type); 3374=> SyntaxFactory.BinaryExpression(SyntaxKind.AsExpression, (ExpressionSyntax)ParenthesizeNonSimple(expression), (TypeSyntax)type); 3377=> SyntaxFactory.AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, (ExpressionSyntax)left, (ExpressionSyntax)ParenthesizeNonSimple(right)); 3407=> SyntaxFactory.PrefixUnaryExpression(SyntaxKind.UnaryMinusExpression, (ExpressionSyntax)ParenthesizeNonSimple(expression)); 3428=> SyntaxFactory.PrefixUnaryExpression(SyntaxKind.BitwiseNotExpression, (ExpressionSyntax)ParenthesizeNonSimple(operand)); 3439(ExpressionSyntax)ParenthesizeNonSimple(expression.WithoutLeadingTrivia())).WithLeadingTrivia(expression.GetLeadingTrivia()); 3442=> SyntaxFactory.ConditionalExpression((ExpressionSyntax)ParenthesizeNonSimple(condition), (ExpressionSyntax)ParenthesizeNonSimple(whenTrue), (ExpressionSyntax)ParenthesizeNonSimple(whenFalse)); 3555(ExpressionSyntax)expression); 3573expression: (ExpressionSyntax)expression, 3580expression: (ExpressionSyntax)expression, 3601=> SyntaxFactory.WhileStatement((ExpressionSyntax)condition, CreateBlock(statements)); 3608(ExpressionSyntax)expression, 3616(ExpressionSyntax)expression, 3643labels = labels.AddRange(expressions.Select(e => SyntaxFactory.CaseSwitchLabel((ExpressionSyntax)e))); 3689(ExpressionSyntax)expression);
ExternalAccess\Pythia\Api\PythiaSyntaxExtensions.cs (1)
25public static SimpleNameSyntax? GetRightmostName(this ExpressionSyntax node)
Recommendations\CSharpRecommendationServiceRunner.cs (16)
229var currentExpression = rangeExpression.LeftOperand; 232while (currentExpression.ChildNodesAndTokens().Last().AsNode() is ExpressionSyntax child && 616private RecommendedSymbols GetSymbolsOffOfExpressionInConstantPattern(ExpressionSyntax? originalExpression) 639var expression = originalExpression.WalkDownParentheses(); 669private RecommendedSymbols GetSymbolsOffOfExpression(ExpressionSyntax? originalExpression) 676var expression = originalExpression is AwaitExpressionSyntax awaitExpression 687private RecommendedSymbols GetSymbolsOffOfDereferencedExpression(ExpressionSyntax originalExpression) 689var expression = originalExpression.WalkDownParentheses(); 698private RecommendedSymbols GetSymbolsOffOfConditionalReceiver(ExpressionSyntax originalExpression) 704var expression = originalExpression.WalkDownParentheses(); 719ExpressionSyntax originalExpression, 720ExpressionSyntax expression, 787private RecommendedSymbols GetSymbolsOffOfBoundExpressionWorker(SymbolInfo leftHandBinding, ExpressionSyntax originalExpression, ExpressionSyntax expression, ITypeSymbol? containerType, bool unwrapNullable, bool isForDereference) 929private ImmutableArray<ISymbol> GetUnnamedSymbols(ExpressionSyntax originalExpression) 951private ITypeSymbol? GetContainerForUnnamedSymbols(SemanticModel semanticModel, ExpressionSyntax originalExpression)
Rename\CSharpRenameRewriterLanguageService.cs (4)
199node is ExpressionSyntax || 435var expressionOfInvocation = invocationExpression.Expression; 744if (token.Parent is ExpressionSyntax(SyntaxKind.IdentifierName) expression && 1221var isInNamespaceOrTypeContext = SyntaxFacts.IsInNamespaceOrTypeContext(node as ExpressionSyntax);
Simplification\CSharpSimplificationService.cs (2)
26: AbstractSimplificationService<CompilationUnitSyntax, ExpressionSyntax, StatementSyntax, CrefSyntax>(s_reducers) 59ExpressionSyntax or
Simplification\CSharpSimplificationService.Expander.cs (36)
92private SpeculationAnalyzer GetSpeculationAnalyzer(ExpressionSyntax expression, ExpressionSyntax newExpression) 95private bool TryCastTo(ITypeSymbol targetType, ExpressionSyntax expression, ExpressionSyntax newExpression, out ExpressionSyntax newExpressionWithCast) 99var speculatedExpression = speculativeAnalyzer.ReplacedExpression; 101var result = speculatedExpression.CastIfPossible(targetType, speculatedExpression.SpanStart, speculativeSemanticModel, _cancellationToken); 113private bool TryGetLambdaExpressionBodyWithCast(LambdaExpressionSyntax lambdaExpression, LambdaExpressionSyntax newLambdaExpression, out ExpressionSyntax newLambdaExpressionBodyWithCast) 115if (newLambdaExpression.Body is ExpressionSyntax) 117var body = (ExpressionSyntax)lambdaExpression.Body; 118var newBody = (ExpressionSyntax)newLambdaExpression.Body; 145if (TryCastTo(returnType, node.Expression, newReturnStatement.Expression, out var newExpressionWithCast)) 164if (TryGetLambdaExpressionBodyWithCast(node, parenthesizedLambda, out var newLambdaExpressionBodyWithCast)) 215if (TryGetLambdaExpressionBodyWithCast(node, simpleLambda, out var newLambdaExpressionBodyWithCast)) 277if (TryCastTo(argumentType, node.Expression, newArgument.Expression, out var newArgumentExpressionWithCast)) 437private ExpressionSyntax VisitSimpleName(SimpleNameSyntax rewrittenSimpleName, SimpleNameSyntax originalSimpleName) 448ExpressionSyntax newNode = rewrittenSimpleName; 479var replacement = FullyQualifyIdentifierName( 648var replacement = FullyQualifyIdentifierName( 682ExpressionSyntax left; 707var result = newNode.WithAdditionalAnnotations(Simplifier.Annotation); 713private ExpressionSyntax TryReplaceAngleBracesWithCurlyBraces(ExpressionSyntax expression, bool isInsideCref) 735private static ExpressionSyntax TryAddTypeArgumentToIdentifierName(ExpressionSyntax newNode, ISymbol symbol) 870else if (parent is ExpressionSyntax) 886private ExpressionSyntax FullyQualifyIdentifierName( 888ExpressionSyntax rewrittenNode, 889ExpressionSyntax originalNode, 899var result = rewrittenNode; 929ExpressionSyntax left = ParseTypeName(displayString); 1059ExpressionSyntax thisExpression, 1084ExpressionSyntax thisExpression, 1094var containingTypeSyntax = ParseExpression(containingTypeString);
Simplification\Reducers\AbstractCSharpReducer.AbstractReductionRewriter.cs (7)
72ExpressionSyntax expression => GetParentNode(expression), 78private static SyntaxNode GetParentNode(ExpressionSyntax expression) 89if (current is ExpressionSyntax or ArgumentSyntax) 173var expression = (ExpressionSyntax)this.Visit(node.Expression); 182var expression = (ExpressionSyntax)this.Visit(node.Expression);
Simplification\Reducers\CSharpCastReducer.cs (2)
29private static readonly Func<CastExpressionSyntax, SemanticModel, SimplifierOptions, CancellationToken, ExpressionSyntax> s_simplifyCast = SimplifyCast; 31private static ExpressionSyntax SimplifyCast(CastExpressionSyntax node, SemanticModel semanticModel, SimplifierOptions options, CancellationToken cancellationToken)
Simplification\Reducers\CSharpCastReducer.Rewriter.cs (4)
53var topmostExpressionAncestor = node 55.OfType<ExpressionSyntax>() 60var reducedAncestor = topmostExpressionAncestor.ReplaceNode(node, reducedNode); 61var reparsedAncestor = SyntaxFactory.ParseExpression(reducedAncestor.ToFullString());
Simplification\Reducers\CSharpExtensionMethodReducer.cs (2)
68var invocationExpressionNodeExpression = node.Expression; 73var expression = argumentList.Arguments[0].Expression.Parenthesize();
Simplification\Reducers\CSharpNameReducer.cs (3)
50var expressionSyntax = (ExpressionSyntax)node; 51if (!ExpressionSimplifier.Instance.TrySimplify(expressionSyntax, semanticModel, options, out var expressionReplacement, out _, cancellationToken))
Simplification\Reducers\CSharpNameReducer.Rewriter.cs (2)
208var result = (ExpressionSyntax)base.VisitBinaryExpression(node);
Simplification\Simplifiers\AbstractCSharpSimplifier.cs (8)
73ExpressionSyntax node, SemanticModel semanticModel, 183static bool IsAliasReplaceableExpression(ExpressionSyntax expression) 185var current = expression; 257private static bool ValidateAliasForTarget(IAliasSymbol aliasReplacement, SemanticModel semanticModel, ExpressionSyntax node, ISymbol symbol) 379protected static bool InsideNameOfExpression(ExpressionSyntax expression, SemanticModel semanticModel) 393protected static bool PreferPredefinedTypeKeywordInMemberAccess(ExpressionSyntax expression, CSharpSimplifierOptions options, SemanticModel semanticModel) 403ExpressionSyntax expression, ExpressionSyntax simplifiedNode, SemanticModel semanticModel)
Simplification\Simplifiers\ExpressionSimplifier.cs (14)
22internal sealed partial class ExpressionSimplifier : AbstractCSharpSimplifier<ExpressionSyntax, ExpressionSyntax> 31ExpressionSyntax expression, 34[NotNullWhen(true)] out ExpressionSyntax? replacementNode, 64ExpressionSyntax expression, 258ExpressionSyntax expression, 260[NotNullWhen(true)] out ExpressionSyntax? replacementNode, 272ExpressionSyntax expression, 274[NotNullWhen(true)] out ExpressionSyntax? replacementNode, 288if (!TrySimplifyMemberAccessOrQualifiedName(isMemberAccessExpression: true, memberAccess.Expression, memberAccess.Name, semanticModel, out var newLeft, out issueSpan)) 299if (!TrySimplifyMemberAccessOrQualifiedName(isMemberAccessExpression: false, qualifiedName.Left, qualifiedName.Right, semanticModel, out var newLeft, out issueSpan)) 406ExpressionSyntax left, 407ExpressionSyntax right, 409[NotNullWhen(true)] out ExpressionSyntax? replacementNode,
Simplification\Simplifiers\MemberAccessExpressionSimplifier.cs (1)
18ExpressionSyntax,
Simplification\Simplifiers\NameSimplifier.cs (6)
638private static bool IsNullableTypeInPointerExpression(ExpressionSyntax simplifiedNode) 650private static bool IsNonNameSyntaxInUsingDirective(ExpressionSyntax expression, ExpressionSyntax simplifiedNode) 657private static bool IsAmbiguousCast(ExpressionSyntax expression, ExpressionSyntax simplifiedNode) 666var reparsedCastExpression = ParseExpression(newCastExpression.ToString());
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (5)
31ExpressionSyntax initializerExpression, 109var containingTypeName = memberName.GetLeftSideOfDot(); 120ExpressionSyntax containingTypeName, 193private static ExpressionSyntax GetRightmostInvocationExpression(ExpressionSyntax node)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
173SyntaxToken token, ExpressionSyntax parentExpression, bool tokenIncludeDelimiters)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AssignmentExpressionSyntaxExtensions.cs (1)
15var left = assignment.Left;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\BlockSyntaxExtensions.cs (4)
38[NotNullWhen(true)] out ExpressionSyntax? expression, 151block.TryConvertToExpressionBody(languageVersion, preference, cancellationToken, out var expression, out semicolonToken)) 192ExpressionSyntax expression, ExpressionBodyPreference preference) 203private static bool TryGetExpression(StatementSyntax firstStatement, LanguageVersion languageVersion, [NotNullWhen(true)] out ExpressionSyntax? expression, out SyntaxToken semicolonToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (60)
20public static ExpressionSyntax? WalkUpParentheses(this ExpressionSyntax? expression) 28public static ExpressionSyntax WalkDownParentheses(this ExpressionSyntax expression) 36public static ExpressionSyntax WalkDownSuppressions(this ExpressionSyntax expression) 44public static bool IsQualifiedCrefName([NotNullWhen(true)] this ExpressionSyntax? expression) 47public static bool IsSimpleMemberAccessExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 50public static bool IsAnyMemberAccessExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 59public static bool IsMemberBindingExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 63public static bool IsRightSideOfQualifiedName([NotNullWhen(true)] this ExpressionSyntax? expression) 66public static bool IsRightSideOfColonColon(this ExpressionSyntax expression) 69public static bool IsRightSideOfDot([NotNullWhen(true)] this ExpressionSyntax? name) 72public static bool IsRightSideOfDotOrArrow([NotNullWhen(true)] this ExpressionSyntax? name) 75public static bool IsRightSideOfDotOrColonColon(this ExpressionSyntax name) 78public static bool IsRightSideOfDotOrArrowOrColonColon([NotNullWhen(true)] this ExpressionSyntax name) 81public static bool IsRightOfCloseParen(this ExpressionSyntax expression) 88public static bool IsLeftSideOfDot([NotNullWhen(true)] this ExpressionSyntax? expression) 97public static bool IsLeftSideOfSimpleMemberAccessExpression(this ExpressionSyntax expression) 101public static bool IsLeftSideOfDotOrArrow(this ExpressionSyntax expression) 105public static bool IsLeftSideOfQualifiedName(this ExpressionSyntax expression) 111public static bool IsExpressionOfInvocation(this ExpressionSyntax expression) 115public static bool TryGetNameParts(this ExpressionSyntax expression, [NotNullWhen(true)] out IList<string>? parts) 128public static bool TryGetNameParts(this ExpressionSyntax expression, List<string> parts) 169public static bool IsInConstantContext([NotNullWhen(true)] this ExpressionSyntax? expression) 196public static bool IsInOutContext([NotNullWhen(true)] this ExpressionSyntax? expression) 200public static bool IsInRefContext([NotNullWhen(true)] this ExpressionSyntax? expression) 207public static bool IsInRefContext([NotNullWhen(true)] this ExpressionSyntax? expression, [NotNullWhen(true)] out SyntaxNode? refParent) 210expression = (ExpressionSyntax)expression.Parent; 223public static bool IsInInContext([NotNullWhen(true)] this ExpressionSyntax? expression) 227private static ExpressionSyntax? GetExpressionToAnalyzeForWrites(ExpressionSyntax? expression) 231expression = (ExpressionSyntax)expression.GetRequiredParent(); 239public static bool IsOnlyWrittenTo([NotNullWhen(true)] this ExpressionSyntax? expression) 273private static bool IsExpressionOfArgumentInDeconstruction(ExpressionSyntax expr) 320[NotNullWhen(true)] this ExpressionSyntax? expression, 397public static bool IsAttributeNamedArgumentIdentifier([NotNullWhen(true)] this ExpressionSyntax? expression) 403public static bool IsOperandOfIncrementOrDecrementExpression(this ExpressionSyntax expression) 420public static bool IsNamedArgumentIdentifier(this ExpressionSyntax expression) 424[NotNullWhen(true)] this ExpressionSyntax? expression, SemanticModel semanticModel, CancellationToken cancellationToken) 454[NotNullWhen(true)] this ExpressionSyntax? expression, SemanticModel semanticModel, CancellationToken cancellationToken) 465this ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken) 604var parentNonExpression = expression.GetAncestors().SkipWhile(n => n is ExpressionSyntax).FirstOrDefault(); 605var topExpression = expression; 648public static bool IsNameOfArgumentExpression(this ExpressionSyntax expression) 658public static SimpleNameSyntax? GetRightmostName(this ExpressionSyntax node) 693public static OperatorPrecedence GetOperatorPrecedence(this ExpressionSyntax expression) 852this ExpressionSyntax expression, 872private static StatementSyntax ConvertToStatement(ExpressionSyntax expression, SyntaxToken semicolonToken, bool createReturnStatementForExpression) 900public static bool IsDirectChildOfMemberAccessExpression(this ExpressionSyntax expression) 903public static bool InsideCrefReference(this ExpressionSyntax expression) 907this ExpressionSyntax expression, 911var topExpression = expression.WalkUpParentheses(); 936bool HasType(ExpressionSyntax expression, [NotNullWhen(true)] out ITypeSymbol? type) 998ITypeSymbol? GetTargetTypeForConditionalExpression(ConditionalExpressionSyntax conditionalExpression, ExpressionSyntax expression) 1008ITypeSymbol? GetTargetTypeForLambdaExpression(LambdaExpressionSyntax lambda, ExpressionSyntax expression) 1055ITypeSymbol? GetTargetTypeForInitializerExpression(InitializerExpressionSyntax initializerExpression, ExpressionSyntax expression) 1064foreach (var sibling in initializerExpression.Expressions) 1084ITypeSymbol? GetTargetTypeForAssignmentExpression(AssignmentExpressionSyntax assignmentExpression, ExpressionSyntax expression) 1089ITypeSymbol? GetTargetTypeForBinaryExpression(BinaryExpressionSyntax binaryExpression, ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (16)
31var expression = node.Expression; 38var parentExpression = nodeParent.IsKind(SyntaxKind.ConstantPattern) 39? nodeParent.Parent as ExpressionSyntax 40: nodeParent as ExpressionSyntax; 345static bool ContainsConditionalAccessOnRightmostPath(ExpressionSyntax expr) 348for (var current = expr; current != null;) 355: current.ChildNodes().FirstOrDefault() as ExpressionSyntax; 363ParenthesizedExpressionSyntax node, ExpressionSyntax expression, 431ParenthesizedExpressionSyntax node, ExpressionSyntax parentExpression, SemanticModel semanticModel) 433var expression = node.Expression; 564var expression = node.Expression; 656private static bool IsPreviousExpressionPotentiallyAmbiguous(ExpressionSyntax node) 658ExpressionSyntax? previousExpression = null; 691private static bool IsNextExpressionPotentiallyAmbiguous(ExpressionSyntax node) 693ExpressionSyntax? nextExpression = null; 725private static bool IsSimpleOrDottedName(ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (12)
27if (name.Parent is ExpressionSyntax expression) 44if (name.Parent is ExpressionSyntax expression) 59private static void DecomposeName(ExpressionSyntax expression, out ExpressionSyntax qualifier, out string name, out int arity) 104ExpressionSyntax expression, 107var expr = SyntaxFactory.GetStandaloneExpression(expression); 108DecomposeName(expr, out var qualifier, out var name, out _); 137case ExpressionSyntax expression: 352this SemanticModel semanticModel, ExpressionSyntax expression, 358var current = expression; 429SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 431var topExpression = expression.WalkUpParentheses();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (1)
14public static ExpressionSyntax GetLeftSideOfDot(this SimpleNameSyntax name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (2)
179return token.Parent is ExpressionSyntax || token.Parent.IsKind(SyntaxKind.PropertyPatternClause); 403var expression = initializer.Expressions[0];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (1)
344foreach (var errorCode in pragmaWarningDirectiveTrivia.ErrorCodes)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\CSharpExpressionPrecedenceService.cs (2)
12internal sealed class CSharpExpressionPrecedenceService : AbstractCSharpPrecedenceService<ExpressionSyntax> 20public override OperatorPrecedence GetOperatorPrecedence(ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (1)
19internal sealed class CSharpRefactoringHelpers : AbstractRefactoringHelpers<ExpressionSyntax, ArgumentSyntax, ExpressionStatementSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (12)
44=> (node as ExpressionSyntax).IsWrittenTo(semanticModel, cancellationToken); 47=> (node as ExpressionSyntax).IsOnlyWrittenTo(); 50=> (node as ExpressionSyntax).IsInOutContext(); 53=> (node as ExpressionSyntax).IsInRefContext(); 56=> (node as ExpressionSyntax).IsInInContext(); 59=> (expression as ExpressionSyntax).CanReplaceWithRValue(semanticModel, cancellationToken); 193=> semanticModel.GetCollectionInitializerSymbolInfo((ExpressionSyntax)node, cancellationToken); 432=> (node as ExpressionSyntax).IsInsideNameOfExpression(semanticModel, cancellationToken); 459=> semanticModel.GenerateNameForExpression((ExpressionSyntax)expression, capitalize, cancellationToken); 488=> semanticModel.ClassifyConversion((ExpressionSyntax)expression, destination).ToCommonConversion(); 512var expression = simpleName.Parent switch 516_ => (ExpressionSyntax)simpleName,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (7)
183=> node is ExpressionSyntax expression ? SyntaxFactory.GetStandaloneExpression(expression) : node; 584=> SyntaxFacts.IsInNamespaceOrTypeContext(node as ExpressionSyntax); 612=> (node as ExpressionSyntax).IsInConstantContext(); 1058=> (node as ExpressionSyntax).IsLeftSideOfDot(); 1076=> (node as ExpressionSyntax).IsLeftSideOfAssignExpression(); 1079=> (node as ExpressionSyntax).IsLeftSideOfAnyAssignExpression(); 1082=> (node as ExpressionSyntax).IsLeftSideOfCompoundAssignExpression();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (52)
46public static bool IsUnnecessaryCast(ExpressionSyntax cast, SemanticModel semanticModel, CancellationToken cancellationToken) 125var leftOrRightChild = castExpression.WalkUpParentheses(); 143bool IsConstantZero(ExpressionSyntax child) 178ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 222private static bool CastRemovalCouldCauseSignExtensionWarning(ExpressionSyntax castSyntax, IConversionOperation conversionOperation) 249ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 289ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 634ExpressionSyntax castNode, 699ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, SemanticModel semanticModel, CancellationToken cancellationToken) 785ExpressionSyntax castNode, IConversionOperation originalConversionOperation, 786ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, 853ExpressionSyntax castNode, SemanticModel originalSemanticModel, 854ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, CancellationToken cancellationToken) 878ExpressionSyntax castNode, SemanticModel originalSemanticModel, 879ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, CancellationToken cancellationToken) 907ExpressionSyntax castNode, 909ExpressionSyntax rewrittenExpression, 911Func<ExpressionSyntax, TConditionalOrSwitchExpression?> getConditionalOrSwitchExpression, 912Func<TConditionalOrSwitchExpression, ImmutableArray<ExpressionSyntax>> getArmExpressions, 913Func<TConditionalOrSwitchExpression, ExpressionSyntax, ExpressionSyntax?> getAlternativeArm, 915where TConditionalOrSwitchExpression : ExpressionSyntax 920var parentExpression = castExpression.WalkUpParentheses(); 945foreach (var armExpression in getArmExpressions(originalConditionalOrSwitchExpression)) 1001var otherSide = getAlternativeArm(originalConditionalOrSwitchExpression, parentExpression); 1057ExpressionSyntax expression, 1151=> node is ExpressionSyntax expression && expression.WalkDownParentheses().Kind() is SyntaxKind.CastExpression or SyntaxKind.AsExpression; 1155ExpressionSyntax castOrAsNode, 1179var parent = castOrAsNode.WalkUpParentheses(); 1212ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 1280private static bool IsFieldOrArrayElement(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 1287ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken) 1300ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1353ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1386ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1417ExpressionSyntax rewrittenExpression, 1526ExpressionSyntax rewrittenExpression, 1568ExpressionSyntax expression, 1660ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1683private static (SemanticModel? rewrittenSemanticModel, ExpressionSyntax? rewrittenExpression) GetSemanticModelWithCastRemoved( 1684ExpressionSyntax castNode, 1685ExpressionSyntax castedExpressionNode, 1691var rewrittenExpression = analyzer.ReplacedExpression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (44)
31ExpressionSyntax, 56ExpressionSyntax expression, 57ExpressionSyntax newExpression, 68protected override bool CanAccessInstanceMemberThrough(ExpressionSyntax expression) 71protected override SyntaxNode GetSemanticRootForSpeculation(ExpressionSyntax expression) 107nodeToSpeculate is ExpressionSyntax || 119var isInNamespaceOrTypeContext = SyntaxFacts.IsInNamespaceOrTypeContext(originalNode as ExpressionSyntax); 181Debug.Assert(nodeToSpeculate is ExpressionSyntax); 191public bool ReplacementChangesSemanticsOfUnchangedLambda(ExpressionSyntax originalLambda, ExpressionSyntax replacedLambda) 302var expression = (ExpressionSyntax)currentReplacedNode.ChildNodes().First(); 368ExpressionSyntax originalOtherPartOfConditional, newOtherPartOfConditional; 418if (ReplacementBreaksBoxingInConditionalExpression(originalExpressionTypeInfo, newExpressionTypeInfo, (ExpressionSyntax)previousOriginalNode, (ExpressionSyntax)previousReplacedNode)) 464var previousReplacedExpression = (ExpressionSyntax)previousReplacedNode; 518ReplacementBreaksCollectionInitializerAddMethod((ExpressionSyntax)previousOriginalNode, (ExpressionSyntax)previousReplacedNode); 522return !TypesAreCompatible((ExpressionSyntax)currentOriginalNode, (ExpressionSyntax)currentReplacedNode); 531return !TypesAreCompatible((ExpressionSyntax)currentOriginalNode, (ExpressionSyntax)currentReplacedNode); 542private bool ReplacementBreaksBoxingInConditionalExpression(TypeInfo originalExpressionTypeInfo, TypeInfo newExpressionTypeInfo, ExpressionSyntax previousOriginalNode, ExpressionSyntax previousReplacedNode) 573private bool ReplacementBreaksCollectionInitializerAddMethod(ExpressionSyntax originalInitializer, ExpressionSyntax newInitializer) 588protected override ImmutableArray<ArgumentSyntax> GetArguments(ExpressionSyntax expression) 596private static BaseArgumentListSyntax GetArgumentList(ExpressionSyntax expression) 609protected override ExpressionSyntax GetReceiver(ExpressionSyntax expression) 620var result = ((InvocationExpressionSyntax)expression).Expression; 631var result = ((ElementAccessExpressionSyntax)expression).Expression; 645protected override bool IsInNamespaceOrTypeContext(ExpressionSyntax node) 648protected override ExpressionSyntax GetForEachStatementExpression(CommonForEachStatementSyntax forEachStatement) 651protected override ExpressionSyntax GetThrowStatementExpression(ThrowStatementSyntax throwStatement) 743ExpressionSyntax originalExpression, 744ExpressionSyntax newExpression, 813protected override bool ConversionsAreCompatible(SemanticModel originalModel, ExpressionSyntax originalExpression, SemanticModel newModel, ExpressionSyntax newExpression) 838private static bool ConditionalExpressionConversionsAreAllowed(ExpressionSyntax originalExpression) 841protected override bool ConversionsAreCompatible(ExpressionSyntax originalExpression, ITypeSymbol originalTargetType, ExpressionSyntax newExpression, ITypeSymbol newTargetType) 934protected override Conversion ClassifyConversion(SemanticModel model, ExpressionSyntax expression, ITypeSymbol targetType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (1)
57SyntaxToken identifier, TypeSyntax typeName, ExpressionSyntax initializer, SemanticModel semanticModel, CSharpSimplifierOptions options, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.State.cs (1)
93var initializerExpression = CSharpUseImplicitTypeHelper.GetInitializerExpression(initializer.Value);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (1)
136ExpressionSyntax initializer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (5)
240ExpressionSyntax initializer, 245var expression = GetInitializerExpression(initializer); 316internal static ExpressionSyntax GetInitializerExpression(ExpressionSyntax initializer) 318var current = (initializer as RefExpressionSyntax)?.Expression ?? initializer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ArgumentGenerator.cs (1)
15if (argument is ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\AttributeGenerator.cs (1)
99ExpressionSyntax GenerateAttributeSyntax(TypedConstant constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (1)
636if (anonymousFunctionSyntax.ExpressionBody is ExpressionSyntax expressionBody)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (1)
26var expression = ExpressionGenerator.GenerateNonEnumValueExpression(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
64var value = CreateEnumMemberValue(destination, enumMember); 72private static ExpressionSyntax? CreateEnumMemberValue( 117var lastExpression = lastMember.EqualsValue!.Value;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (19)
24public static ExpressionSyntax GenerateExpression( 50private static ExpressionSyntax GenerateNullLiteral() 53internal static ExpressionSyntax GenerateExpression( 61return (ExpressionSyntax)CSharpFlagsEnumGenerator.Instance.CreateEnumConstantValue(enumType, value); 75internal static ExpressionSyntax GenerateNonEnumValueExpression(ITypeSymbol? type, object? value, bool canUseFieldReference) 77var intermediaryValue = value switch 95: (ExpressionSyntax)CSharpSyntaxGeneratorInternal.Instance.DefaultExpression(type), 105private static ExpressionSyntax GenerateBooleanLiteralExpression(bool val) 112private static ExpressionSyntax GenerateStringLiteralExpression(string val) 119private static ExpressionSyntax GenerateCharLiteralExpression(char val) 180private static ExpressionSyntax GenerateDoubleLiteralExpression(ITypeSymbol? type, double value, bool canUseFieldReference) 209private static ExpressionSyntax GenerateSingleLiteralExpression(ITypeSymbol? type, float value, bool canUseFieldReference) 238private static ExpressionSyntax GenerateNonNegativeLiteralExpression<T>( 249private static ExpressionSyntax GenerateLiteralExpression<T>( 259var result = GenerateFieldReference(type, value, constants); 286private static ExpressionSyntax? GenerateFieldReference<T>(ITypeSymbol? type, T value, IEnumerable<KeyValuePair<T, string>> constants) 293var memberAccess = GenerateMemberAccess("System", typeof(T).Name); 307private static ExpressionSyntax GenerateMemberAccess(params ReadOnlySpan<string> names) 309ExpressionSyntax result = IdentifierName(GlobalKeyword);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\FieldGenerator.cs (1)
95var initializer = CodeGenerationFieldInfo.GetInitializer(field) is ExpressionSyntax initializerNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ParameterGenerator.cs (1)
110private static ExpressionSyntax GenerateEqualsValueClauseWorker(IParameterSymbol parameter, object? value)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\PropertyGenerator.cs (1)
115var initializer = CodeGenerationPropertyInfo.GetInitializer(property) is ExpressionSyntax initializerNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeRefactorings\CSharpRefactoringHelpersService.cs (1)
16internal sealed class CSharpRefactoringHelpersService() : AbstractRefactoringHelpersService<ExpressionSyntax, ArgumentSyntax, ExpressionStatementSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (2)
52private static INamespaceSymbol? GetExplicitNamespaceSymbol(ExpressionSyntax fullName, ExpressionSyntax namespacePart, SemanticModel model)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\CastExpressionSyntaxExtensions.cs (2)
15public static ExpressionSyntax Uncast(this CastExpressionSyntax node) 28var resultNode = node.Expression
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (1)
281var expr = parenExpr.Expression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (8)
1551SyntaxNode? node = leftToken.Parent as ExpressionSyntax; 1556while (node is ExpressionSyntax && node.GetLastToken(includeZeroWidth: true) == leftToken) 2785ExpressionSyntax? parentExpression = null; 2832if (token.IsLastTokenOfNode<ExpressionSyntax>(out var expression)) 2855ExpressionSyntax nameExpr = type; 2858nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2912private static bool IsRightSideName(ExpressionSyntax name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ExpressionSyntaxExtensions.cs (9)
18public static ExpressionSyntax Parenthesize( 19this ExpressionSyntax expression, bool includeElasticTrivia = true, bool addSimplifierAnnotation = true) 52this ExpressionSyntax expression, bool includeElasticTrivia) 54var withoutTrivia = expression.WithoutTrivia(); 83this ExpressionSyntax expression, 86var parenthesized = expression.Parenthesize(); 97public static ExpressionSyntax CastIfPossible( 98this ExpressionSyntax expression, 163this ExpressionSyntax name,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\InternalExtensions.cs (1)
21public static ITypeSymbol DetermineParameterType(ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
26public static ExpressionSyntax GenerateExpressionSyntax(this ITypeSymbol typeSymbol, bool nameSyntax = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (9)
16private sealed class ExpressionSyntaxGeneratorVisitor : SymbolVisitor<ExpressionSyntax> 29public override ExpressionSyntax DefaultVisit(ISymbol symbol) 33where TExpressionSyntax : ExpressionSyntax 41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol) 59var container = symbol.ContainingType.Accept(this)!; 77var container = symbol.ContainingNamespace.Accept(this)!; 85public override ExpressionSyntax VisitNamespace(INamespaceSymbol symbol) 102var container = symbol.ContainingNamespace.Accept(this)!; 108ISymbol symbol, ExpressionSyntax container, SimpleNameSyntax syntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (1)
99[.. Enumerable.Repeat<ExpressionSyntax>(OmittedArraySizeExpression(), arrayType.Rank)]));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
114ExpressionSyntax? expression = null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (23)
74=> SyntaxFactory.EqualsValueClause(operatorToken, (ExpressionSyntax)value); 82expression == null ? null : SyntaxFactory.EqualsValueClause((ExpressionSyntax)expression))]); 89=> SyntaxFactory.ConditionalAccessExpression((ExpressionSyntax)expression, (ExpressionSyntax)whenNotNull); 95=> SyntaxFactory.RefExpression((ExpressionSyntax)expression); 103ExpressionSyntax expression => expression.Parenthesize(includeElasticTrivia, addSimplifierAnnotation), 109=> SyntaxFactory.YieldStatement(SyntaxKind.YieldReturnStatement, (ExpressionSyntax)expression); 131=> SyntaxFactory.Interpolation((ExpressionSyntax)syntaxNode); 134=> SyntaxFactory.InterpolationAlignmentClause(CommaToken, (ExpressionSyntax)alignment); 211(ExpressionSyntax)expression, 219=> SyntaxFactory.ConstantPattern((ExpressionSyntax)expression); 227=> SyntaxFactory.RelationalPattern(LessThanToken, (ExpressionSyntax)expression); 230=> SyntaxFactory.RelationalPattern(LessThanEqualsToken, (ExpressionSyntax)expression); 233=> SyntaxFactory.RelationalPattern(GreaterThanToken, (ExpressionSyntax)expression); 236=> SyntaxFactory.RelationalPattern(GreaterThanEqualsToken, (ExpressionSyntax)expression); 256=> SyntaxFactory.CastExpression((TypeSyntax)type, (ExpressionSyntax)ParenthesizeNonSimple(expression)).WithAdditionalAnnotations(Simplifier.Annotation); 314ParenthesizeLeft((ExpressionSyntax)expression), 321internal static ExpressionSyntax ParenthesizeLeft(ExpressionSyntax expression) 336return (ExpressionSyntax)Parenthesize(expression); 343=> SyntaxFactory.BinaryExpression(syntaxKind, (ExpressionSyntax)ParenthesizeNonSimple(left), (ExpressionSyntax)ParenthesizeNonSimple(right)); 349=> SyntaxFactory.CastExpression((TypeSyntax)type, (ExpressionSyntax)ParenthesizeNonSimple(expression)).WithAdditionalAnnotations(Simplifier.Annotation);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (26)
52private static bool DecomposeBinaryOrAssignmentExpression(SyntaxNode node, out SyntaxToken operatorToken, out ExpressionSyntax left, out ExpressionSyntax right) 78out var operatorToken, out var left, out var right)) 80var types = InferTypeInBinaryOrAssignmentExpression((ExpressionSyntax)node, operatorToken, left, right, left).Where(IsUsableTypeFunc); 83types = InferTypeInBinaryOrAssignmentExpression((ExpressionSyntax)node, operatorToken, left, right, right).Where(IsUsableTypeFunc); 127var expression = node as ExpressionSyntax; 948private IEnumerable<TypeInferenceInfo> InferTypeInBinaryOrAssignmentExpression(ExpressionSyntax binop, SyntaxToken operatorToken, ExpressionSyntax left, ExpressionSyntax right, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 996var otherSide = onRightOfToken ? left : right; 1083private IEnumerable<TypeInferenceInfo> InferTypeInCastExpression(CastExpressionSyntax castExpression, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1115ExpressionSyntax expressionOpt = null, 1170private IEnumerable<TypeInferenceInfo> InferTypeInConditionalExpression(ConditionalExpressionSyntax conditional, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1321private IEnumerable<TypeInferenceInfo> InferTypeInForEachStatement(ForEachStatementSyntax forEachStatementSyntax, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1352private IEnumerable<TypeInferenceInfo> InferTypeInForStatement(ForStatementSyntax forStatement, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1378ExpressionSyntax expressionOpt = null, 1423foreach (var sibling in initializerExpression.Expressions.Where(e => e.Kind() != SyntaxKind.ComplexElementInitializerExpression)) 1450foreach (var sibling in initializerExpression.Expressions) 1763ExpressionSyntax expressionOpt = null, 1835var argumentExpression = invocation.ArgumentList.Arguments[0].Expression; 1958var argumentExpression = attributeArgumentSyntax.Expression; 2316private IEnumerable<TypeInferenceInfo> InferTypeInVariableComponentAssignment(ExpressionSyntax left) 2383var expr = arg.Expression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (3)
30public static Argument<ExpressionSyntax> GetArgument(ArgumentSyntax argument) 232=> body is ExpressionSyntax or ArrowExpressionClauseSyntax; 247ExpressionSyntax expression => expression.TryConvertToStatement(semicolonToken, createReturnStatementForExpression, out statement),
Microsoft.Interop.ComInterfaceGenerator (6)
Analyzers\RuntimeComApiUsageWithSourceGeneratedComAnalyzer.cs (1)
211var expression = invocationSyntax.Expression;
ComInterfaceGeneratorHelpers.cs (1)
40public static ExpressionSyntax CreateEmbeddedDataBlobCreationStatement(ReadOnlySpan<byte> bytes)
Marshallers\IidParameterIndexMarshallerResolver.cs (1)
51ExpressionSyntax iidExpression = MarshallerHelpers.GetIndexedManagedElementExpression(iidParameterIndexInfo, codeContext, context);
VirtualMethodPointerStubGenerator.cs (3)
115ExpressionSyntax untypedFunctionPointerExpression, 226ExpressionSyntax propertyAccess = MemberAccessExpression( 253SeparatedList<ExpressionSyntax>(
Microsoft.Interop.JavaScript.JSImportGenerator (1)
SignatureBindingHelpers.cs (1)
22ExpressionSyntax bindSyntax = MarshalerTypeName(baseType);
Microsoft.Interop.LibraryImportGenerator (6)
Analyzers\ConvertToLibraryImportFixer.cs (2)
625ExpressionSyntax typeOfExpression = (ExpressionSyntax)generator.TypeOfExpression(generator.TypeExpression(callingConventionType));
LibraryImportGenerator.cs (4)
450ExpressionSyntax value = CreateEnumExpressionSyntax(CharSet.Unicode); 457ExpressionSyntax value = CreateBoolExpressionSyntax(target.SetLastError); 466static ExpressionSyntax CreateBoolExpressionSyntax(bool trueOrFalse) 474static ExpressionSyntax CreateStringExpressionSyntax(string str)
Microsoft.Interop.LibraryImportGenerator.Downlevel (4)
DownlevelLibraryImportGenerator.cs (4)
395ExpressionSyntax value = CreateEnumExpressionSyntax(CharSet.Unicode); 402ExpressionSyntax value = CreateBoolExpressionSyntax(target.SetLastError); 411static ExpressionSyntax CreateBoolExpressionSyntax(bool trueOrFalse) 419static ExpressionSyntax CreateStringExpressionSyntax(string str)
Microsoft.Interop.SourceGeneration (44)
GeneratedStatements.cs (6)
48public static GeneratedStatements Create(BoundGenerators marshallers, StubCodeContext codeContext, StubIdentifierContext context, ExpressionSyntax expressionToInvoke) 84public static GeneratedStatements CreateForProperty(BoundGenerators marshallers, StubIdentifierContext context, ExpressionSyntax propertyAccess, bool isSetter) 112private static ExpressionStatementSyntax GenerateStatementForNativeInvoke(BoundGenerators marshallers, StubIdentifierContext context, ExpressionSyntax expressionToInvoke) 146private static ExpressionStatementSyntax GenerateStatementForManagedInvoke(BoundGenerators marshallers, StubIdentifierContext context, ExpressionSyntax expressionToInvoke) 173private static ExpressionStatementSyntax GenerateStatementForProperty(BoundGenerators marshallers, StubIdentifierContext context, ExpressionSyntax propertyAccess, bool isSetter) 189ExpressionSyntax valueExpression = valueParameterMarshaller.AsManagedArgument(context).Expression;
Marshalling\AttributedMarshallingModelGeneratorResolver.cs (2)
53private record struct ExpressionOrNotSupported(ExpressionSyntax? Expression, GeneratorDiagnostic.NotSupported? NotSupported) 55public ExpressionOrNotSupported(ExpressionSyntax expression)
Marshalling\ElementsMarshalling.cs (12)
61public static ExpressionSyntax GenerateNumElementsExpression(CountInfo count, bool countInfoRequiresCast, StubCodeContext codeContext, StubIdentifierContext context) 63ExpressionSyntax numElementsExpression = count switch 95ExpressionSyntax GetExpressionForParam(TypePositionInfo paramInfo) 152ExpressionSyntax destination = CastToManagedIfNecessary( 175ExpressionSyntax destination = CastToManagedIfNecessary(CollectionSource.GetUnmanagedValuesDestination(context)); 186ExpressionSyntax source = CastToManagedIfNecessary(CollectionSource.GetUnmanagedValuesDestination(context)); 189ExpressionSyntax destination = MethodInvocation( 215ExpressionSyntax source = CastToManagedIfNecessary(CollectionSource.GetUnmanagedValuesSource(context)); 224private ExpressionSyntax CastToManagedIfNecessary(ExpressionSyntax expression) 369ExpressionSyntax indexConstraintName; 564ExpressionSyntax lengthExpression,
Marshalling\MarshallerHelpers.cs (2)
94public static ExpressionSyntax GetIndexedManagedElementExpression(TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 96ExpressionSyntax indexedManagedElement = IdentifierName(context.GetIdentifiers(info).managed);
Marshalling\MarshallingGeneratorExtensions.cs (1)
165public static ExpressionSyntax GenerateNativeByRefInitialization(this IBoundMarshallingGenerator generator, StubIdentifierContext context)
Marshalling\StatefulMarshallingStrategy.cs (1)
219SingletonList(ArrayRankSpecifier(SingletonSeparatedList<ExpressionSyntax>(
Marshalling\StatelessMarshallingStrategy.cs (3)
59ExpressionSyntax convertToUnmanaged = InvocationExpression( 75ExpressionSyntax assignment; 182SingletonList(ArrayRankSpecifier(SingletonSeparatedList<ExpressionSyntax>(
UnmanagedToManagedStubGenerator.cs (4)
50public BlockSyntax GenerateStubBodyForMethod(ExpressionSyntax methodToInvoke) 68public BlockSyntax GenerateStubBodyForProperty(ExpressionSyntax propertyAccess, bool isSetter) 90public BlockSyntax GenerateStubBodyForIndexer(ExpressionSyntax instance, bool isSetter) 100ExpressionSyntax elementAccess = ElementAccessExpression(
Utils\SyntaxFactoryExtensions.cs (13)
28public static LocalDeclarationStatementSyntax Declare(TypeSyntax typeSyntax, string identifier, ExpressionSyntax? initializer) 47public static InvocationExpressionSyntax MethodInvocation(ExpressionSyntax objectOrClass, SimpleNameSyntax methodName) 55public static InvocationExpressionSyntax MethodInvocation(ExpressionSyntax objectOrClass, SimpleNameSyntax methodName, params ArgumentSyntax[] arguments) 68public static ExpressionStatementSyntax MethodInvocationStatement(ExpressionSyntax objectOrClass, SimpleNameSyntax methodName, params ArgumentSyntax[] arguments) 71public static ArgumentSyntax RefArgument(ExpressionSyntax expression) 74public static ArgumentSyntax InArgument(ExpressionSyntax expression) 77public static ArgumentSyntax OutArgument(ExpressionSyntax expression) 86public static MemberAccessExpressionSyntax Dot(this ExpressionSyntax expression, SimpleNameSyntax member) => 92public static ElementAccessExpressionSyntax IndexExpression(ExpressionSyntax indexed, ArgumentSyntax argument) 104public static ExpressionStatementSyntax AssignmentStatement(ExpressionSyntax left, ExpressionSyntax right) 114public static ForStatementSyntax ForLoop(string indexerIdentifier, ExpressionSyntax lengthExpression) 138SingletonSeparatedList<ExpressionSyntax>(
Microsoft.Maui.Controls.BindingSourceGen (9)
BindingSourceGenerator.cs (5)
78 private static string GetTypeNameFromExpression(ExpressionSyntax expression) 168 var expression = methodType switch 191 if (lambda.Body is not ExpressionSyntax lambdaBody) 227 private static SetterOptions DeriveSetterOptions(ExpressionSyntax? lambdaBodyExpression, SemanticModel semanticModel, bool enabledNullable) 249 var nestedExpression = lambdaBodyExpression switch
InvocationParser.cs (2)
53 var firstArgument = argumentsList[0].Expression; // Guaranteed to have at least one argument (checked by the caller) 94 var secondArgument = argumentsList[1].Expression;
PathParser.cs (2)
140 var castTo = asExpression.Right; 183 var indexExpression = argumentList[0].Expression;
Microsoft.ML.AutoML (2)
Utils\Entity.cs (2)
109var exp = SyntaxFactory.ParseExpression(expression); 133private static Entity FromExpression(ExpressionSyntax exp)
Microsoft.ML.InternalCodeAnalyzer (5)
ContractsCheckAnalyzer.cs (2)
133private static bool NameIsNameof(ExpressionSyntax exp) 139private static bool IsGoodMessage(SyntaxNodeAnalysisContext context, ExpressionSyntax exp)
ContractsCheckNameofFixProvider.cs (3)
72ExpressionSyntax bestSymbol = null; 94bestSymbol = (ExpressionSyntax)candidate; 169var nameofExp = SyntaxFactory.ParseExpression($"nameof({name})").WithTriviaFrom(nameArg);
Roslyn.Diagnostics.CSharp.Analyzers (346)
CSharpExposeMemberForTesting.cs (1)
53return SyntaxFactory.RefExpression((ExpressionSyntax)expression);
PreferNullLiteralCodeFixProvider.cs (1)
53ExpressionSyntax newSyntax = SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (5)
31ExpressionSyntax initializerExpression, 109var containingTypeName = memberName.GetLeftSideOfDot(); 120ExpressionSyntax containingTypeName, 193private static ExpressionSyntax GetRightmostInvocationExpression(ExpressionSyntax node)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
173SyntaxToken token, ExpressionSyntax parentExpression, bool tokenIncludeDelimiters)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AssignmentExpressionSyntaxExtensions.cs (1)
15var left = assignment.Left;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\BlockSyntaxExtensions.cs (4)
38[NotNullWhen(true)] out ExpressionSyntax? expression, 151block.TryConvertToExpressionBody(languageVersion, preference, cancellationToken, out var expression, out semicolonToken)) 192ExpressionSyntax expression, ExpressionBodyPreference preference) 203private static bool TryGetExpression(StatementSyntax firstStatement, LanguageVersion languageVersion, [NotNullWhen(true)] out ExpressionSyntax? expression, out SyntaxToken semicolonToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (60)
20public static ExpressionSyntax? WalkUpParentheses(this ExpressionSyntax? expression) 28public static ExpressionSyntax WalkDownParentheses(this ExpressionSyntax expression) 36public static ExpressionSyntax WalkDownSuppressions(this ExpressionSyntax expression) 44public static bool IsQualifiedCrefName([NotNullWhen(true)] this ExpressionSyntax? expression) 47public static bool IsSimpleMemberAccessExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 50public static bool IsAnyMemberAccessExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 59public static bool IsMemberBindingExpressionName([NotNullWhen(true)] this ExpressionSyntax? expression) 63public static bool IsRightSideOfQualifiedName([NotNullWhen(true)] this ExpressionSyntax? expression) 66public static bool IsRightSideOfColonColon(this ExpressionSyntax expression) 69public static bool IsRightSideOfDot([NotNullWhen(true)] this ExpressionSyntax? name) 72public static bool IsRightSideOfDotOrArrow([NotNullWhen(true)] this ExpressionSyntax? name) 75public static bool IsRightSideOfDotOrColonColon(this ExpressionSyntax name) 78public static bool IsRightSideOfDotOrArrowOrColonColon([NotNullWhen(true)] this ExpressionSyntax name) 81public static bool IsRightOfCloseParen(this ExpressionSyntax expression) 88public static bool IsLeftSideOfDot([NotNullWhen(true)] this ExpressionSyntax? expression) 97public static bool IsLeftSideOfSimpleMemberAccessExpression(this ExpressionSyntax expression) 101public static bool IsLeftSideOfDotOrArrow(this ExpressionSyntax expression) 105public static bool IsLeftSideOfQualifiedName(this ExpressionSyntax expression) 111public static bool IsExpressionOfInvocation(this ExpressionSyntax expression) 115public static bool TryGetNameParts(this ExpressionSyntax expression, [NotNullWhen(true)] out IList<string>? parts) 128public static bool TryGetNameParts(this ExpressionSyntax expression, List<string> parts) 169public static bool IsInConstantContext([NotNullWhen(true)] this ExpressionSyntax? expression) 196public static bool IsInOutContext([NotNullWhen(true)] this ExpressionSyntax? expression) 200public static bool IsInRefContext([NotNullWhen(true)] this ExpressionSyntax? expression) 207public static bool IsInRefContext([NotNullWhen(true)] this ExpressionSyntax? expression, [NotNullWhen(true)] out SyntaxNode? refParent) 210expression = (ExpressionSyntax)expression.Parent; 223public static bool IsInInContext([NotNullWhen(true)] this ExpressionSyntax? expression) 227private static ExpressionSyntax? GetExpressionToAnalyzeForWrites(ExpressionSyntax? expression) 231expression = (ExpressionSyntax)expression.GetRequiredParent(); 239public static bool IsOnlyWrittenTo([NotNullWhen(true)] this ExpressionSyntax? expression) 273private static bool IsExpressionOfArgumentInDeconstruction(ExpressionSyntax expr) 320[NotNullWhen(true)] this ExpressionSyntax? expression, 397public static bool IsAttributeNamedArgumentIdentifier([NotNullWhen(true)] this ExpressionSyntax? expression) 403public static bool IsOperandOfIncrementOrDecrementExpression(this ExpressionSyntax expression) 420public static bool IsNamedArgumentIdentifier(this ExpressionSyntax expression) 424[NotNullWhen(true)] this ExpressionSyntax? expression, SemanticModel semanticModel, CancellationToken cancellationToken) 454[NotNullWhen(true)] this ExpressionSyntax? expression, SemanticModel semanticModel, CancellationToken cancellationToken) 465this ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken) 604var parentNonExpression = expression.GetAncestors().SkipWhile(n => n is ExpressionSyntax).FirstOrDefault(); 605var topExpression = expression; 648public static bool IsNameOfArgumentExpression(this ExpressionSyntax expression) 658public static SimpleNameSyntax? GetRightmostName(this ExpressionSyntax node) 693public static OperatorPrecedence GetOperatorPrecedence(this ExpressionSyntax expression) 852this ExpressionSyntax expression, 872private static StatementSyntax ConvertToStatement(ExpressionSyntax expression, SyntaxToken semicolonToken, bool createReturnStatementForExpression) 900public static bool IsDirectChildOfMemberAccessExpression(this ExpressionSyntax expression) 903public static bool InsideCrefReference(this ExpressionSyntax expression) 907this ExpressionSyntax expression, 911var topExpression = expression.WalkUpParentheses(); 936bool HasType(ExpressionSyntax expression, [NotNullWhen(true)] out ITypeSymbol? type) 998ITypeSymbol? GetTargetTypeForConditionalExpression(ConditionalExpressionSyntax conditionalExpression, ExpressionSyntax expression) 1008ITypeSymbol? GetTargetTypeForLambdaExpression(LambdaExpressionSyntax lambda, ExpressionSyntax expression) 1055ITypeSymbol? GetTargetTypeForInitializerExpression(InitializerExpressionSyntax initializerExpression, ExpressionSyntax expression) 1064foreach (var sibling in initializerExpression.Expressions) 1084ITypeSymbol? GetTargetTypeForAssignmentExpression(AssignmentExpressionSyntax assignmentExpression, ExpressionSyntax expression) 1089ITypeSymbol? GetTargetTypeForBinaryExpression(BinaryExpressionSyntax binaryExpression, ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (16)
31var expression = node.Expression; 38var parentExpression = nodeParent.IsKind(SyntaxKind.ConstantPattern) 39? nodeParent.Parent as ExpressionSyntax 40: nodeParent as ExpressionSyntax; 345static bool ContainsConditionalAccessOnRightmostPath(ExpressionSyntax expr) 348for (var current = expr; current != null;) 355: current.ChildNodes().FirstOrDefault() as ExpressionSyntax; 363ParenthesizedExpressionSyntax node, ExpressionSyntax expression, 431ParenthesizedExpressionSyntax node, ExpressionSyntax parentExpression, SemanticModel semanticModel) 433var expression = node.Expression; 564var expression = node.Expression; 656private static bool IsPreviousExpressionPotentiallyAmbiguous(ExpressionSyntax node) 658ExpressionSyntax? previousExpression = null; 691private static bool IsNextExpressionPotentiallyAmbiguous(ExpressionSyntax node) 693ExpressionSyntax? nextExpression = null; 725private static bool IsSimpleOrDottedName(ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (12)
27if (name.Parent is ExpressionSyntax expression) 44if (name.Parent is ExpressionSyntax expression) 59private static void DecomposeName(ExpressionSyntax expression, out ExpressionSyntax qualifier, out string name, out int arity) 104ExpressionSyntax expression, 107var expr = SyntaxFactory.GetStandaloneExpression(expression); 108DecomposeName(expr, out var qualifier, out var name, out _); 137case ExpressionSyntax expression: 352this SemanticModel semanticModel, ExpressionSyntax expression, 358var current = expression; 429SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 431var topExpression = expression.WalkUpParentheses();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (1)
14public static ExpressionSyntax GetLeftSideOfDot(this SimpleNameSyntax name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (2)
179return token.Parent is ExpressionSyntax || token.Parent.IsKind(SyntaxKind.PropertyPatternClause); 403var expression = initializer.Expressions[0];
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (1)
344foreach (var errorCode in pragmaWarningDirectiveTrivia.ErrorCodes)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\CSharpExpressionPrecedenceService.cs (2)
12internal sealed class CSharpExpressionPrecedenceService : AbstractCSharpPrecedenceService<ExpressionSyntax> 20public override OperatorPrecedence GetOperatorPrecedence(ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (1)
19internal sealed class CSharpRefactoringHelpers : AbstractRefactoringHelpers<ExpressionSyntax, ArgumentSyntax, ExpressionStatementSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (10)
44=> (node as ExpressionSyntax).IsWrittenTo(semanticModel, cancellationToken); 47=> (node as ExpressionSyntax).IsOnlyWrittenTo(); 50=> (node as ExpressionSyntax).IsInOutContext(); 53=> (node as ExpressionSyntax).IsInRefContext(); 56=> (node as ExpressionSyntax).IsInInContext(); 59=> (expression as ExpressionSyntax).CanReplaceWithRValue(semanticModel, cancellationToken); 193=> semanticModel.GetCollectionInitializerSymbolInfo((ExpressionSyntax)node, cancellationToken); 432=> (node as ExpressionSyntax).IsInsideNameOfExpression(semanticModel, cancellationToken); 459=> semanticModel.GenerateNameForExpression((ExpressionSyntax)expression, capitalize, cancellationToken); 488=> semanticModel.ClassifyConversion((ExpressionSyntax)expression, destination).ToCommonConversion();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (7)
183=> node is ExpressionSyntax expression ? SyntaxFactory.GetStandaloneExpression(expression) : node; 584=> SyntaxFacts.IsInNamespaceOrTypeContext(node as ExpressionSyntax); 612=> (node as ExpressionSyntax).IsInConstantContext(); 1058=> (node as ExpressionSyntax).IsLeftSideOfDot(); 1076=> (node as ExpressionSyntax).IsLeftSideOfAssignExpression(); 1079=> (node as ExpressionSyntax).IsLeftSideOfAnyAssignExpression(); 1082=> (node as ExpressionSyntax).IsLeftSideOfCompoundAssignExpression();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (52)
46public static bool IsUnnecessaryCast(ExpressionSyntax cast, SemanticModel semanticModel, CancellationToken cancellationToken) 125var leftOrRightChild = castExpression.WalkUpParentheses(); 143bool IsConstantZero(ExpressionSyntax child) 178ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 222private static bool CastRemovalCouldCauseSignExtensionWarning(ExpressionSyntax castSyntax, IConversionOperation conversionOperation) 249ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 289ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 634ExpressionSyntax castNode, 699ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, SemanticModel semanticModel, CancellationToken cancellationToken) 785ExpressionSyntax castNode, IConversionOperation originalConversionOperation, 786ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, 853ExpressionSyntax castNode, SemanticModel originalSemanticModel, 854ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, CancellationToken cancellationToken) 878ExpressionSyntax castNode, SemanticModel originalSemanticModel, 879ExpressionSyntax rewrittenExpression, SemanticModel rewrittenSemanticModel, CancellationToken cancellationToken) 907ExpressionSyntax castNode, 909ExpressionSyntax rewrittenExpression, 911Func<ExpressionSyntax, TConditionalOrSwitchExpression?> getConditionalOrSwitchExpression, 912Func<TConditionalOrSwitchExpression, ImmutableArray<ExpressionSyntax>> getArmExpressions, 913Func<TConditionalOrSwitchExpression, ExpressionSyntax, ExpressionSyntax?> getAlternativeArm, 915where TConditionalOrSwitchExpression : ExpressionSyntax 920var parentExpression = castExpression.WalkUpParentheses(); 945foreach (var armExpression in getArmExpressions(originalConditionalOrSwitchExpression)) 1001var otherSide = getAlternativeArm(originalConditionalOrSwitchExpression, parentExpression); 1057ExpressionSyntax expression, 1151=> node is ExpressionSyntax expression && expression.WalkDownParentheses().Kind() is SyntaxKind.CastExpression or SyntaxKind.AsExpression; 1155ExpressionSyntax castOrAsNode, 1179var parent = castOrAsNode.WalkUpParentheses(); 1212ExpressionSyntax castNode, ExpressionSyntax castedExpressionNode, 1280private static bool IsFieldOrArrayElement(SemanticModel semanticModel, ExpressionSyntax expression, CancellationToken cancellationToken) 1287ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken) 1300ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1353ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1386ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1417ExpressionSyntax rewrittenExpression, 1526ExpressionSyntax rewrittenExpression, 1568ExpressionSyntax expression, 1660ExpressionSyntax castNode, ExpressionSyntax rewrittenExpression, 1683private static (SemanticModel? rewrittenSemanticModel, ExpressionSyntax? rewrittenExpression) GetSemanticModelWithCastRemoved( 1684ExpressionSyntax castNode, 1685ExpressionSyntax castedExpressionNode, 1691var rewrittenExpression = analyzer.ReplacedExpression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (44)
31ExpressionSyntax, 56ExpressionSyntax expression, 57ExpressionSyntax newExpression, 68protected override bool CanAccessInstanceMemberThrough(ExpressionSyntax expression) 71protected override SyntaxNode GetSemanticRootForSpeculation(ExpressionSyntax expression) 107nodeToSpeculate is ExpressionSyntax || 119var isInNamespaceOrTypeContext = SyntaxFacts.IsInNamespaceOrTypeContext(originalNode as ExpressionSyntax); 181Debug.Assert(nodeToSpeculate is ExpressionSyntax); 191public bool ReplacementChangesSemanticsOfUnchangedLambda(ExpressionSyntax originalLambda, ExpressionSyntax replacedLambda) 302var expression = (ExpressionSyntax)currentReplacedNode.ChildNodes().First(); 368ExpressionSyntax originalOtherPartOfConditional, newOtherPartOfConditional; 418if (ReplacementBreaksBoxingInConditionalExpression(originalExpressionTypeInfo, newExpressionTypeInfo, (ExpressionSyntax)previousOriginalNode, (ExpressionSyntax)previousReplacedNode)) 464var previousReplacedExpression = (ExpressionSyntax)previousReplacedNode; 518ReplacementBreaksCollectionInitializerAddMethod((ExpressionSyntax)previousOriginalNode, (ExpressionSyntax)previousReplacedNode); 522return !TypesAreCompatible((ExpressionSyntax)currentOriginalNode, (ExpressionSyntax)currentReplacedNode); 531return !TypesAreCompatible((ExpressionSyntax)currentOriginalNode, (ExpressionSyntax)currentReplacedNode); 542private bool ReplacementBreaksBoxingInConditionalExpression(TypeInfo originalExpressionTypeInfo, TypeInfo newExpressionTypeInfo, ExpressionSyntax previousOriginalNode, ExpressionSyntax previousReplacedNode) 573private bool ReplacementBreaksCollectionInitializerAddMethod(ExpressionSyntax originalInitializer, ExpressionSyntax newInitializer) 588protected override ImmutableArray<ArgumentSyntax> GetArguments(ExpressionSyntax expression) 596private static BaseArgumentListSyntax GetArgumentList(ExpressionSyntax expression) 609protected override ExpressionSyntax GetReceiver(ExpressionSyntax expression) 620var result = ((InvocationExpressionSyntax)expression).Expression; 631var result = ((ElementAccessExpressionSyntax)expression).Expression; 645protected override bool IsInNamespaceOrTypeContext(ExpressionSyntax node) 648protected override ExpressionSyntax GetForEachStatementExpression(CommonForEachStatementSyntax forEachStatement) 651protected override ExpressionSyntax GetThrowStatementExpression(ThrowStatementSyntax throwStatement) 743ExpressionSyntax originalExpression, 744ExpressionSyntax newExpression, 813protected override bool ConversionsAreCompatible(SemanticModel originalModel, ExpressionSyntax originalExpression, SemanticModel newModel, ExpressionSyntax newExpression) 838private static bool ConditionalExpressionConversionsAreAllowed(ExpressionSyntax originalExpression) 841protected override bool ConversionsAreCompatible(ExpressionSyntax originalExpression, ITypeSymbol originalTargetType, ExpressionSyntax newExpression, ITypeSymbol newTargetType) 934protected override Conversion ClassifyConversion(SemanticModel model, ExpressionSyntax expression, ITypeSymbol targetType)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (1)
57SyntaxToken identifier, TypeSyntax typeName, ExpressionSyntax initializer, SemanticModel semanticModel, CSharpSimplifierOptions options, CancellationToken cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.State.cs (1)
93var initializerExpression = CSharpUseImplicitTypeHelper.GetInitializerExpression(initializer.Value);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (1)
136ExpressionSyntax initializer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (5)
240ExpressionSyntax initializer, 245var expression = GetInitializerExpression(initializer); 316internal static ExpressionSyntax GetInitializerExpression(ExpressionSyntax initializer) 318var current = (initializer as RefExpressionSyntax)?.Expression ?? initializer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ArgumentGenerator.cs (1)
15if (argument is ExpressionSyntax expression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\AttributeGenerator.cs (1)
99ExpressionSyntax GenerateAttributeSyntax(TypedConstant constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationService.cs (1)
636if (anonymousFunctionSyntax.ExpressionBody is ExpressionSyntax expressionBody)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpFlagsEnumGenerator.cs (1)
26var expression = ExpressionGenerator.GenerateNonEnumValueExpression(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\EnumMemberGenerator.cs (3)
64var value = CreateEnumMemberValue(destination, enumMember); 72private static ExpressionSyntax? CreateEnumMemberValue( 117var lastExpression = lastMember.EqualsValue!.Value;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ExpressionGenerator.cs (19)
24public static ExpressionSyntax GenerateExpression( 50private static ExpressionSyntax GenerateNullLiteral() 53internal static ExpressionSyntax GenerateExpression( 61return (ExpressionSyntax)CSharpFlagsEnumGenerator.Instance.CreateEnumConstantValue(enumType, value); 75internal static ExpressionSyntax GenerateNonEnumValueExpression(ITypeSymbol? type, object? value, bool canUseFieldReference) 77var intermediaryValue = value switch 95: (ExpressionSyntax)CSharpSyntaxGeneratorInternal.Instance.DefaultExpression(type), 105private static ExpressionSyntax GenerateBooleanLiteralExpression(bool val) 112private static ExpressionSyntax GenerateStringLiteralExpression(string val) 119private static ExpressionSyntax GenerateCharLiteralExpression(char val) 180private static ExpressionSyntax GenerateDoubleLiteralExpression(ITypeSymbol? type, double value, bool canUseFieldReference) 209private static ExpressionSyntax GenerateSingleLiteralExpression(ITypeSymbol? type, float value, bool canUseFieldReference) 238private static ExpressionSyntax GenerateNonNegativeLiteralExpression<T>( 249private static ExpressionSyntax GenerateLiteralExpression<T>( 259var result = GenerateFieldReference(type, value, constants); 286private static ExpressionSyntax? GenerateFieldReference<T>(ITypeSymbol? type, T value, IEnumerable<KeyValuePair<T, string>> constants) 293var memberAccess = GenerateMemberAccess("System", typeof(T).Name); 307private static ExpressionSyntax GenerateMemberAccess(params ReadOnlySpan<string> names) 309ExpressionSyntax result = IdentifierName(GlobalKeyword);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\FieldGenerator.cs (1)
95var initializer = CodeGenerationFieldInfo.GetInitializer(field) is ExpressionSyntax initializerNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\ParameterGenerator.cs (1)
110private static ExpressionSyntax GenerateEqualsValueClauseWorker(IParameterSymbol parameter, object? value)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\PropertyGenerator.cs (1)
115var initializer = CodeGenerationPropertyInfo.GetInitializer(property) is ExpressionSyntax initializerNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeRefactorings\CSharpRefactoringHelpersService.cs (1)
16internal sealed class CSharpRefactoringHelpersService() : AbstractRefactoringHelpersService<ExpressionSyntax, ArgumentSyntax, ExpressionStatementSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Editing\CSharpImportAdder.cs (2)
52private static INamespaceSymbol? GetExplicitNamespaceSymbol(ExpressionSyntax fullName, ExpressionSyntax namespacePart, SemanticModel model)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\CastExpressionSyntaxExtensions.cs (2)
15public static ExpressionSyntax Uncast(this CastExpressionSyntax node) 28var resultNode = node.Expression
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (1)
281var expr = parenExpr.Expression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (8)
1551SyntaxNode? node = leftToken.Parent as ExpressionSyntax; 1556while (node is ExpressionSyntax && node.GetLastToken(includeZeroWidth: true) == leftToken) 2785ExpressionSyntax? parentExpression = null; 2832if (token.IsLastTokenOfNode<ExpressionSyntax>(out var expression)) 2855ExpressionSyntax nameExpr = type; 2858nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2912private static bool IsRightSideName(ExpressionSyntax name)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ExpressionSyntaxExtensions.cs (9)
18public static ExpressionSyntax Parenthesize( 19this ExpressionSyntax expression, bool includeElasticTrivia = true, bool addSimplifierAnnotation = true) 52this ExpressionSyntax expression, bool includeElasticTrivia) 54var withoutTrivia = expression.WithoutTrivia(); 83this ExpressionSyntax expression, 86var parenthesized = expression.Parenthesize(); 97public static ExpressionSyntax CastIfPossible( 98this ExpressionSyntax expression, 163this ExpressionSyntax name,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\InternalExtensions.cs (1)
21public static ITypeSymbol DetermineParameterType(ExpressionSyntax expression, SemanticModel semanticModel, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.cs (1)
26public static ExpressionSyntax GenerateExpressionSyntax(this ITypeSymbol typeSymbol, bool nameSyntax = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.ExpressionSyntaxGeneratorVisitor.cs (9)
16private sealed class ExpressionSyntaxGeneratorVisitor : SymbolVisitor<ExpressionSyntax> 29public override ExpressionSyntax DefaultVisit(ISymbol symbol) 33where TExpressionSyntax : ExpressionSyntax 41public override ExpressionSyntax VisitNamedType(INamedTypeSymbol symbol) 59var container = symbol.ContainingType.Accept(this)!; 77var container = symbol.ContainingNamespace.Accept(this)!; 85public override ExpressionSyntax VisitNamespace(INamespaceSymbol symbol) 102var container = symbol.ContainingNamespace.Accept(this)!; 108ISymbol symbol, ExpressionSyntax container, SimpleNameSyntax syntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (1)
99[.. Enumerable.Repeat<ExpressionSyntax>(OmittedArraySizeExpression(), arrayType.Rank)]));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
114ExpressionSyntax? expression = null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (23)
74=> SyntaxFactory.EqualsValueClause(operatorToken, (ExpressionSyntax)value); 82expression == null ? null : SyntaxFactory.EqualsValueClause((ExpressionSyntax)expression))]); 89=> SyntaxFactory.ConditionalAccessExpression((ExpressionSyntax)expression, (ExpressionSyntax)whenNotNull); 95=> SyntaxFactory.RefExpression((ExpressionSyntax)expression); 103ExpressionSyntax expression => expression.Parenthesize(includeElasticTrivia, addSimplifierAnnotation), 109=> SyntaxFactory.YieldStatement(SyntaxKind.YieldReturnStatement, (ExpressionSyntax)expression); 131=> SyntaxFactory.Interpolation((ExpressionSyntax)syntaxNode); 134=> SyntaxFactory.InterpolationAlignmentClause(CommaToken, (ExpressionSyntax)alignment); 211(ExpressionSyntax)expression, 219=> SyntaxFactory.ConstantPattern((ExpressionSyntax)expression); 227=> SyntaxFactory.RelationalPattern(LessThanToken, (ExpressionSyntax)expression); 230=> SyntaxFactory.RelationalPattern(LessThanEqualsToken, (ExpressionSyntax)expression); 233=> SyntaxFactory.RelationalPattern(GreaterThanToken, (ExpressionSyntax)expression); 236=> SyntaxFactory.RelationalPattern(GreaterThanEqualsToken, (ExpressionSyntax)expression); 256=> SyntaxFactory.CastExpression((TypeSyntax)type, (ExpressionSyntax)ParenthesizeNonSimple(expression)).WithAdditionalAnnotations(Simplifier.Annotation); 314ParenthesizeLeft((ExpressionSyntax)expression), 321internal static ExpressionSyntax ParenthesizeLeft(ExpressionSyntax expression) 336return (ExpressionSyntax)Parenthesize(expression); 343=> SyntaxFactory.BinaryExpression(syntaxKind, (ExpressionSyntax)ParenthesizeNonSimple(left), (ExpressionSyntax)ParenthesizeNonSimple(right)); 349=> SyntaxFactory.CastExpression((TypeSyntax)type, (ExpressionSyntax)ParenthesizeNonSimple(expression)).WithAdditionalAnnotations(Simplifier.Annotation);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (26)
52private static bool DecomposeBinaryOrAssignmentExpression(SyntaxNode node, out SyntaxToken operatorToken, out ExpressionSyntax left, out ExpressionSyntax right) 78out var operatorToken, out var left, out var right)) 80var types = InferTypeInBinaryOrAssignmentExpression((ExpressionSyntax)node, operatorToken, left, right, left).Where(IsUsableTypeFunc); 83types = InferTypeInBinaryOrAssignmentExpression((ExpressionSyntax)node, operatorToken, left, right, right).Where(IsUsableTypeFunc); 127var expression = node as ExpressionSyntax; 948private IEnumerable<TypeInferenceInfo> InferTypeInBinaryOrAssignmentExpression(ExpressionSyntax binop, SyntaxToken operatorToken, ExpressionSyntax left, ExpressionSyntax right, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 996var otherSide = onRightOfToken ? left : right; 1083private IEnumerable<TypeInferenceInfo> InferTypeInCastExpression(CastExpressionSyntax castExpression, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1115ExpressionSyntax expressionOpt = null, 1170private IEnumerable<TypeInferenceInfo> InferTypeInConditionalExpression(ConditionalExpressionSyntax conditional, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1321private IEnumerable<TypeInferenceInfo> InferTypeInForEachStatement(ForEachStatementSyntax forEachStatementSyntax, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1352private IEnumerable<TypeInferenceInfo> InferTypeInForStatement(ForStatementSyntax forStatement, ExpressionSyntax expressionOpt = null, SyntaxToken? previousToken = null) 1378ExpressionSyntax expressionOpt = null, 1423foreach (var sibling in initializerExpression.Expressions.Where(e => e.Kind() != SyntaxKind.ComplexElementInitializerExpression)) 1450foreach (var sibling in initializerExpression.Expressions) 1763ExpressionSyntax expressionOpt = null, 1835var argumentExpression = invocation.ArgumentList.Arguments[0].Expression; 1958var argumentExpression = attributeArgumentSyntax.Expression; 2316private IEnumerable<TypeInferenceInfo> InferTypeInVariableComponentAssignment(ExpressionSyntax left) 2383var expr = arg.Expression;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (3)
30public static Argument<ExpressionSyntax> GetArgument(ArgumentSyntax argument) 232=> body is ExpressionSyntax or ArrowExpressionClauseSyntax; 247ExpressionSyntax expression => expression.TryConvertToStatement(semicolonToken, createReturnStatementForExpression, out statement),
System.Private.CoreLib.Generators (4)
IntrinsicsInSystemPrivateCoreLibAnalyzer.cs (4)
221private static INamedTypeSymbol[] GatherAndConditions(SemanticModel model, ExpressionSyntax expressionToDecompose) 273private static INamedTypeSymbol[][] DecomposePropertySymbolForIsSupportedGroups_Property(OperationAnalysisContext context, SemanticModel model, ExpressionSyntax expressionToDecompose) 309private static INamedTypeSymbol[][] DecomposeConditionForIsSupportedGroups(OperationAnalysisContext context, SemanticModel model, ExpressionSyntax expressionToDecompose) 596bool HandleConditionalCase(ExpressionSyntax condition, SyntaxNode? syntaxOnPositiveCondition, SyntaxNode? syntaxOnNegativeCondition)
System.Windows.Forms.PrivateSourceGenerators (1)
System\Windows\Forms\SourceGenerators\EnumValidationGenerator.cs (1)
71var argumentToValidate = arguments.First().Expression;