1 instantiation of ConditionalAccessExpressionSyntax
Microsoft.CodeAnalysis.CSharp (1)
_generated\1\Syntax.xml.Internal.Generated.cs (1)
2363internal override SyntaxNode CreateRed(SyntaxNode? parent, int position) => new CSharp.Syntax.ConditionalAccessExpressionSyntax(this, parent, position);
137 references to ConditionalAccessExpressionSyntax
Aspire.Hosting.Integration.Analyzers (1)
AspireExportAnalyzer.cs (1)
432} when invocation.Parent is ConditionalAccessExpressionSyntax
Microsoft.CodeAnalysis.CSharp (25)
_generated\0\Syntax.xml.Main.Generated.cs (6)
97public virtual TResult? VisitConditionalAccessExpression(ConditionalAccessExpressionSyntax node) => this.DefaultVisit(node); 845public virtual void VisitConditionalAccessExpression(ConditionalAccessExpressionSyntax node) => this.DefaultVisit(node); 1592public override SyntaxNode? VisitConditionalAccessExpression(ConditionalAccessExpressionSyntax node) 2696public static ConditionalAccessExpressionSyntax ConditionalAccessExpression(ExpressionSyntax expression, SyntaxToken operatorToken, ExpressionSyntax whenNotNull) 2701return (ConditionalAccessExpressionSyntax)Syntax.InternalSyntax.SyntaxFactory.ConditionalAccessExpression((Syntax.InternalSyntax.ExpressionSyntax)expression.Green, (Syntax.InternalSyntax.SyntaxToken)operatorToken.Node!, (Syntax.InternalSyntax.ExpressionSyntax)whenNotNull.Green).CreateRed(); 2705public static ConditionalAccessExpressionSyntax ConditionalAccessExpression(ExpressionSyntax expression, ExpressionSyntax whenNotNull)
_generated\2\Syntax.xml.Syntax.Generated.cs (5)
1458public ConditionalAccessExpressionSyntax Update(ExpressionSyntax expression, SyntaxToken operatorToken, ExpressionSyntax whenNotNull) 1462var newNode = SyntaxFactory.ConditionalAccessExpression(expression, operatorToken, whenNotNull); 1470public ConditionalAccessExpressionSyntax WithExpression(ExpressionSyntax expression) => Update(expression, this.OperatorToken, this.WhenNotNull); 1471public ConditionalAccessExpressionSyntax WithOperatorToken(SyntaxToken operatorToken) => Update(this.Expression, operatorToken, this.WhenNotNull); 1472public ConditionalAccessExpressionSyntax WithWhenNotNull(ExpressionSyntax whenNotNull) => Update(this.Expression, this.OperatorToken, whenNotNull);
Binder\Binder_AnonymousTypes.cs (1)
161expr = ((ConditionalAccessExpressionSyntax)expr).WhenNotNull;
Binder\Binder_Expressions.cs (7)
695return BindConditionalAccessExpression((ConditionalAccessExpressionSyntax)node, diagnostics); 9768if (expr.Syntax.Parent is ConditionalAccessExpressionSyntax conditional && 11618private BoundConditionalAccess BindConditionalAccessExpression(ConditionalAccessExpressionSyntax node, BindingDiagnosticBag diagnostics) 11729private BoundConditionalAccess GenerateBadConditionalAccessNodeError(ConditionalAccessExpressionSyntax node, BoundExpression receiver, BoundExpression access, BindingDiagnosticBag diagnostics) 11754private static CSharpSyntaxNode GetConditionalReceiverSyntax(ConditionalAccessExpressionSyntax node) 11771var conditionalAccessNode = SyntaxFactory.FindConditionalAccessNodeForBinding(binding); 11794private BoundExpression BindConditionalAccessReceiver(ConditionalAccessExpressionSyntax node, BindingDiagnosticBag diagnostics)
Syntax\SyntaxFactory.cs (3)
2291internal static ConditionalAccessExpressionSyntax? FindConditionalAccessNodeForBinding(CSharpSyntaxNode node) 2307var condAccess = (ConditionalAccessExpressionSyntax)currentNode;
Syntax\SyntaxFacts.cs (2)
423var access = (ConditionalAccessExpressionSyntax)syntax;
Syntax\SyntaxNodeExtensions.cs (1)
208input = ((ConditionalAccessExpressionSyntax)input).WhenNotNull;
Microsoft.CodeAnalysis.CSharp.Analyzers (2)
MetaAnalyzers\Fixers\CSharpPreferIsKindFix.cs (2)
47var conditionalAccess = (ConditionalAccessExpressionSyntax)binaryExpression.Left;
Microsoft.CodeAnalysis.CSharp.CodeStyle (27)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (1)
25ConditionalAccessExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndMemberAccessDiagnosticAnalyzer.cs (1)
66asExpression, out var conditionalAccessExpression, out var binaryExpression, out var isPatternExpression, out var requiredLanguageVersion))
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (2)
16[NotNullWhen(true)] out ConditionalAccessExpressionSyntax? conditionalAccessExpression, 32Parent: ConditionalAccessExpressionSyntax parentConditionalAccess
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (1)
198ConditionalAccessExpressionSyntax conditional => GetRightmostInvocationExpression(conditional.WhenNotNull),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 675if (node is ConditionalAccessExpressionSyntax conditional)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
350if (current is ConditionalAccessExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (1)
393if (current is ConditionalAccessExpressionSyntax conditionalAccess)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (11)
172public static ConditionalAccessExpressionSyntax? GetParentConditionalAccessExpression(this SyntaxNode? node) 203current.Parent is not ConditionalAccessExpressionSyntax) 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 247return current as ConditionalAccessExpressionSyntax; 253public static ConditionalAccessExpressionSyntax? GetRootConditionalAccessExpression(this SyntaxNode? node) 260var current = node.GetParentConditionalAccessExpression(); 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 270public static ConditionalAccessExpressionSyntax? GetInnerMostConditionalAccessExpression(this SyntaxNode node) 272if (node is not ConditionalAccessExpressionSyntax result) 275while (result.WhenNotNull is ConditionalAccessExpressionSyntax syntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1546var conditionalAccess = (ConditionalAccessExpressionSyntax)node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (4)
321return ReplacementBreaksConditionalAccessExpression((ConditionalAccessExpressionSyntax)currentOriginalNode, (ConditionalAccessExpressionSyntax)currentReplacedNode); 684private bool ReplacementBreaksConditionalAccessExpression(ConditionalAccessExpressionSyntax conditionalAccessExpression, ConditionalAccessExpressionSyntax newConditionalAccessExpression)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (7)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (2)
90simpleName is { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax { Parent: ConditionalAccessExpressionSyntax conditionalAccessExpression1 } invocation1 } memberBinding } && 112isInConditionalAccessExpression = invocationExpressionOpt.Parent is ConditionalAccessExpressionSyntax { WhenNotNull: var whenNotNull } &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
27ConditionalAccessExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (2)
53asExpression, out var conditionalAccessExpression, out var binaryExpression, out var isPatternExpression, out _)) 91static BaseExpressionColonSyntax CreateExpressionColon(ConditionalAccessExpressionSyntax conditionalAccessExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (2)
153ConditionalAccessExpressionSyntax conditionalAccessExpression => InferTypeInConditionalAccessExpression(conditionalAccessExpression), 1167private IEnumerable<TypeInferenceInfo> InferTypeInConditionalAccessExpression(ConditionalAccessExpressionSyntax expression)
Microsoft.CodeAnalysis.CSharp.Features (21)
AddImport\CSharpAddImportFeatureService.cs (2)
67if (node is ConditionalAccessExpressionSyntax conditionalAccess) 95var conditionalAccessName = (((node.Parent as ConditionalAccessExpressionSyntax)?.WhenNotNull as InvocationExpressionSyntax)?.Expression as MemberBindingExpressionSyntax)?.Name;
CodeRefactorings\InlineMethod\CSharpInlineMethodRefactoringProvider.cs (1)
132return expressionSyntax is ConditionalAccessExpressionSyntax { WhenNotNull: var whenNotNull } &&
CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (1)
563case ConditionalAccessExpressionSyntax conditionalAccess:
GenerateMember\GenerateVariable\CSharpGenerateVariableService.cs (2)
101else if (identifierName.Parent.Parent is ConditionalAccessExpressionSyntax conditionalAccessExpression && 117isConditionalAccessExpression = identifierName.Parent.Parent is ConditionalAccessExpressionSyntax;
SignatureHelp\ElementAccessExpressionSignatureHelpProvider.cs (6)
116if (expression.Parent is ConditionalAccessExpressionSyntax conditional) 155if (expression.Parent is ConditionalAccessExpressionSyntax) 159var conditionalAccessExpression = ConditionalAccessExpression(expression, elementBinding); 368token.Parent.Parent.Parent is ConditionalAccessExpressionSyntax; 383var conditionalAccess = elementBindingExpression.FirstAncestorOrSelf<ConditionalAccessExpressionSyntax, ElementBindingExpressionSyntax>(
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (1)
25ConditionalAccessExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndMemberAccessDiagnosticAnalyzer.cs (1)
66asExpression, out var conditionalAccessExpression, out var binaryExpression, out var isPatternExpression, out var requiredLanguageVersion))
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (2)
16[NotNullWhen(true)] out ConditionalAccessExpressionSyntax? conditionalAccessExpression, 32Parent: ConditionalAccessExpressionSyntax parentConditionalAccess
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (2)
90simpleName is { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax { Parent: ConditionalAccessExpressionSyntax conditionalAccessExpression1 } invocation1 } memberBinding } && 112isInConditionalAccessExpression = invocationExpressionOpt.Parent is ConditionalAccessExpressionSyntax { WhenNotNull: var whenNotNull } &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
27ConditionalAccessExpressionSyntax,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (2)
53asExpression, out var conditionalAccessExpression, out var binaryExpression, out var isPatternExpression, out _)) 91static BaseExpressionColonSyntax CreateExpressionColon(ConditionalAccessExpressionSyntax conditionalAccessExpression)
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (1)
Microsoft.NetCore.Analyzers\Runtime\CSharpUseOrdinalStringComparison.cs (1)
27return ((ConditionalAccessExpressionSyntax)invocation.Expression).WhenNotNull.GetLocation();
Microsoft.CodeAnalysis.CSharp.Workspaces (25)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (1)
198ConditionalAccessExpressionSyntax conditional => GetRightmostInvocationExpression(conditional.WhenNotNull),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 675if (node is ConditionalAccessExpressionSyntax conditional)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
350if (current is ConditionalAccessExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (1)
393if (current is ConditionalAccessExpressionSyntax conditionalAccess)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (11)
172public static ConditionalAccessExpressionSyntax? GetParentConditionalAccessExpression(this SyntaxNode? node) 203current.Parent is not ConditionalAccessExpressionSyntax) 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 247return current as ConditionalAccessExpressionSyntax; 253public static ConditionalAccessExpressionSyntax? GetRootConditionalAccessExpression(this SyntaxNode? node) 260var current = node.GetParentConditionalAccessExpression(); 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 270public static ConditionalAccessExpressionSyntax? GetInnerMostConditionalAccessExpression(this SyntaxNode node) 272if (node is not ConditionalAccessExpressionSyntax result) 275while (result.WhenNotNull is ConditionalAccessExpressionSyntax syntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1546var conditionalAccess = (ConditionalAccessExpressionSyntax)node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (4)
321return ReplacementBreaksConditionalAccessExpression((ConditionalAccessExpressionSyntax)currentOriginalNode, (ConditionalAccessExpressionSyntax)currentReplacedNode); 684private bool ReplacementBreaksConditionalAccessExpression(ConditionalAccessExpressionSyntax conditionalAccessExpression, ConditionalAccessExpressionSyntax newConditionalAccessExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (2)
153ConditionalAccessExpressionSyntax conditionalAccessExpression => InferTypeInConditionalAccessExpression(conditionalAccessExpression), 1167private IEnumerable<TypeInferenceInfo> InferTypeInConditionalAccessExpression(ConditionalAccessExpressionSyntax expression)
Microsoft.Maui.Controls.BindingSourceGen (3)
BindingSourceGenerator.cs (1)
252 ConditionalAccessExpressionSyntax conditionalAccess => conditionalAccess.WhenNotNull,
PathParser.cs (2)
26 ConditionalAccessExpressionSyntax conditionalAccess => HandleConditionalAccessExpression(conditionalAccess), 86 private Result<List<IPathPart>> HandleConditionalAccessExpression(ConditionalAccessExpressionSyntax conditionalAccess)
Roslyn.Diagnostics.CSharp.Analyzers (25)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\CodeStyle\TypeStyle\TypeStyleHelper.cs (1)
198ConditionalAccessExpressionSyntax conditional => GetRightmostInvocationExpression(conditional.WhenNotNull),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 675if (node is ConditionalAccessExpressionSyntax conditional)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
350if (current is ConditionalAccessExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (1)
393if (current is ConditionalAccessExpressionSyntax conditionalAccess)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (11)
172public static ConditionalAccessExpressionSyntax? GetParentConditionalAccessExpression(this SyntaxNode? node) 203current.Parent is not ConditionalAccessExpressionSyntax) 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 247return current as ConditionalAccessExpressionSyntax; 253public static ConditionalAccessExpressionSyntax? GetRootConditionalAccessExpression(this SyntaxNode? node) 260var current = node.GetParentConditionalAccessExpression(); 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 270public static ConditionalAccessExpressionSyntax? GetInnerMostConditionalAccessExpression(this SyntaxNode node) 272if (node is not ConditionalAccessExpressionSyntax result) 275while (result.WhenNotNull is ConditionalAccessExpressionSyntax syntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1546var conditionalAccess = (ConditionalAccessExpressionSyntax)node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (4)
321return ReplacementBreaksConditionalAccessExpression((ConditionalAccessExpressionSyntax)currentOriginalNode, (ConditionalAccessExpressionSyntax)currentReplacedNode); 684private bool ReplacementBreaksConditionalAccessExpression(ConditionalAccessExpressionSyntax conditionalAccessExpression, ConditionalAccessExpressionSyntax newConditionalAccessExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (2)
153ConditionalAccessExpressionSyntax conditionalAccessExpression => InferTypeInConditionalAccessExpression(conditionalAccessExpression), 1167private IEnumerable<TypeInferenceInfo> InferTypeInConditionalAccessExpression(ConditionalAccessExpressionSyntax expression)