4061 references to Parent
Aspire.Hosting.Integration.Analyzers (6)
AspireExportAnalyzer.cs (6)
1272while (current.Parent is ParenthesizedExpressionSyntax or CastExpressionSyntax) 1274current = current.Parent; 1277return current.Parent is InvocationExpressionSyntax invocation && 1283if (localFunction.Parent is null) 1290foreach (var invocation in localFunction.Parent.DescendantNodes().OfType<InvocationExpressionSyntax>()) 1320} when invocation.Parent is ConditionalAccessExpressionSyntax
EventSourceGenerator (3)
EventSourceGenerator.Parser.cs (3)
24NamespaceDeclarationSyntax? ns = classDef.Parent as NamespaceDeclarationSyntax; 27if (classDef.Parent is not CompilationUnitSyntax) 154ns = ns.Parent as NamespaceDeclarationSyntax;
GenerateDocumentationAndConfigFiles (66)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
ILLink.CodeFixProvider (3)
BaseAttributeCodeFixProvider.cs (3)
95SyntaxNode? parentNode = node.Parent; 114parentNode = parentNode.Parent; 122parentNode = parentNode.Parent;
Microsoft.Analyzers.Extra (8)
CallAnalysis\Fixers\LegacyLoggingFixer.cs (5)
331var ns = cl.Parent as BaseNamespaceDeclarationSyntax; 334if (cl.Parent is not CompilationUnitSyntax) 346ns = ns.Parent as BaseNamespaceDeclarationSyntax; 522if (invocationExpression.Parent!.IsKind(SyntaxKind.ConditionalAccessExpression)) 524invocationExpression = (ExpressionSyntax)invocationExpression.Parent;
Utilities\SyntaxNodeExtensions.cs (3)
26var n = node.Parent; 29n = n.Parent; 118currentNode = currentNode.Parent;
Microsoft.Analyzers.Local (2)
CallAnalysis\Throws.cs (1)
49if (throwExpression.Parent is BinaryExpressionSyntax binaryExpression)
InternalReferencedInPublicDocAnalyzer.cs (1)
91node = node.Parent as MemberDeclarationSyntax;
Microsoft.AspNetCore.App.Analyzers (47)
Infrastructure\VirtualChars\CSharpVirtualCharService.cs (1)
34if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
RouteEmbeddedLanguage\FrameworkParametersCompletionProvider.cs (7)
149if (container.Parent.IsKind(SyntaxKind.Argument)) 331current = current.Parent; 342if (current.Parent?.IsKind(SyntaxKind.Argument) ?? false) 344if (current.Parent?.Parent?.IsKind(SyntaxKind.ArgumentList) ?? false) 350current = current.Parent; 358if (token.Parent?.Parent is ParameterSyntax parameter)
RouteEmbeddedLanguage\Infrastructure\RouteStringSyntaxDetector.cs (20)
83if (container.Parent.IsKind(SyntaxKind.Argument)) 85if (IsArgumentWithMatchingStringSyntaxAttribute(semanticModel, container.Parent, cancellationToken, out identifier)) 90else if (container.Parent.IsKind(SyntaxKind.AttributeArgument)) 92if (IsArgumentToAttributeParameterWithMatchingStringSyntaxAttribute(semanticModel, container.Parent, cancellationToken, out identifier)) 111if (container.Parent?.IsKind(SyntaxKind.EqualsValueClause) ?? false) 113if (container.Parent.Parent?.IsKind(SyntaxKind.VariableDeclarator) ?? false) 115var variableDeclarator = container.Parent.Parent; 125else if (IsEqualsValueOfPropertyDeclaration(container.Parent)) 127var property = container.Parent.GetRequiredParent(); 159token.Parent.Parent.IsBinaryExpression() && 160token.Parent.Parent.RawKind == (int)SyntaxKind.AddExpression) 165for (var node = token.Parent; node != null; node = node.Parent) 234=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node; 390if (argument.Parent is not BaseArgumentListSyntax argumentList || 391argumentList.Parent is null) 397var symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken); 472if (argument.Parent is not AttributeArgumentListSyntax argumentList) 476if (argumentList.Parent is not AttributeSyntax invocableExpression)
RouteEmbeddedLanguage\Infrastructure\RouteUsageDetector.cs (11)
82if (container.Parent.IsKind(SyntaxKind.Argument)) 109else if (container.Parent.IsKind(SyntaxKind.AttributeArgument)) 193var argument = container.Parent; 194if (argument?.Parent is not AttributeArgumentListSyntax argumentList) 199if (argumentList.Parent is not AttributeSyntax attribute) 204if (attribute.Parent is not AttributeListSyntax attributeList) 209return attributeList.Parent; 234var argument = container.Parent; 235if (argument?.Parent is not BaseArgumentListSyntax argumentList || 236argumentList.Parent is null) 243var symbols = GetBestOrAllSymbols(semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken));
RouteEmbeddedLanguage\Infrastructure\SyntaxNodeExtensions.cs (6)
21=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 25var parent = node.Parent; 46while (node?.Parent?.RawKind == (int)SyntaxKind.ParenthesizedExpression) 48node = node.Parent; 58Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 61creationExpression = node.Parent;
RouteEmbeddedLanguage\Infrastructure\SyntaxTokenExtensions.cs (1)
16if (node.Parent.IsAnyInitializerExpression(out var instance))
WebApplicationBuilder\PublicPartialProgramClassAnalyzer.cs (1)
37&& classDeclaration.Parent is CompilationUnitSyntax parentNode
Microsoft.AspNetCore.App.CodeFixes (5)
Dependencies\AddPackageFixer.cs (2)
61if (node.Parent is not MemberAccessExpressionSyntax) 66var symbol = semanticModel.GetSymbolInfo(((MemberAccessExpressionSyntax)node.Parent).Expression).Symbol;
Dependencies\ExtensionMethodsCompletionProvider.cs (1)
95current = current?.Parent;
Kestrel\ListenOnIPv6AnyFixer.cs (2)
47if (argumentSyntax.Parent?.Parent is not InvocationExpressionSyntax { ArgumentList.Arguments.Count: > 1 } invocationExpressionSyntax)
Microsoft.AspNetCore.Components.Analyzers (4)
StateHasChangedAnalyzer.cs (1)
251var disposalPoint = declaration.Parent is BlockSyntax enclosingBlock ? enclosingBlock.Span.End : declaration.Span.End;
StateHasChangedCodeFixProvider.cs (3)
65if (invocation.Parent is ExpressionStatementSyntax expressionStatement) 69else if (invocation.Parent is ArrowExpressionClauseSyntax { Parent: MethodDeclarationSyntax containingMethod })
Microsoft.AspNetCore.Http.RequestDelegateGenerator (1)
RequestDelegateGeneratorSuppressor.cs (1)
59{ Parent: InvocationExpressionSyntax s } => s,
Microsoft.AspNetCore.SignalR.Client.SourceGenerator (13)
HubClientProxyGenerator.Parser.cs (7)
27Parent: 29Parent: MethodDeclarationSyntax 31Parent: ClassDeclarationSyntax 47return (MethodDeclarationSyntax)attributeSyntax.Parent.Parent; 217if (!IsExtensionClassSignatureValid((ClassDeclarationSyntax)methodDeclarationSyntax.Parent)) 255&& memberAccess.Parent.ChildNodes().FirstOrDefault(x => x is ArgumentListSyntax) is
HubServerProxyGenerator.Parser.cs (6)
27Parent: 29Parent: MethodDeclarationSyntax 31Parent: ClassDeclarationSyntax 47return (MethodDeclarationSyntax)attributeSyntax.Parent.Parent; 206if (!IsExtensionClassSignatureValid((ClassDeclarationSyntax)methodDeclarationSyntax.Parent))
Microsoft.Build.TaskAuthoring.Analyzer (23)
MultiThreadableTaskCodeFixProvider.cs (4)
220for (SyntaxNode? current = node; current is not null; current = current.Parent) 228current.Parent is PropertyDeclarationSyntax or VariableDeclaratorSyntax { Parent.Parent: BaseFieldDeclarationSyntax })
PreferTypedParameterAnalyzer.cs (1)
1136current = current.Parent;
PreferTypedParameterCodeFixProvider.cs (17)
647if (propertyAccess.Parent is not ArgumentSyntax argument || 648argument.Parent is not ArgumentListSyntax argumentList || 650argumentList.Parent is not InvocationExpressionSyntax candidate) 682if (propertyAccess.Parent is not ArgumentSyntax argument || 683argument.Parent is not ArgumentListSyntax argumentList || 685argumentList.Parent is not InvocationExpressionSyntax candidate) 711if (propertyAccess.Parent is not ArgumentSyntax argument || 712argument.Parent is not ArgumentListSyntax argumentList || 713argumentList.Parent is not (InvocationExpressionSyntax or ObjectCreationExpressionSyntax)) 718ImmutableArray<IArgumentOperation> argumentOperations = semanticModel.GetOperation(argumentList.Parent, cancellationToken) switch 786if (itemAccess.Parent is not MemberAccessExpressionSyntax memberAccess || 800memberAccess.Parent is InvocationExpressionSyntax invocation && 826if (propertyAccess.Parent is not ForEachStatementSyntax forEach || 865if (argument.Parent is not ArgumentSyntax arg || 866arg.Parent is not ArgumentListSyntax argumentList || 872return argumentList.Parent switch 945if (identifier.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == identifier)
RequiredTaskPropertyInitializationSuppressor.cs (1)
96for (SyntaxNode? current = node; current is not null; current = current.Parent)
Microsoft.CodeAnalysis (24)
DiagnosticAnalyzer\AnalyzerDriver.cs (1)
1279node = node.Parent)
DiagnosticAnalyzer\SuppressMessageAttributeState.cs (1)
191node = node.Parent)
Syntax\SeparatedSyntaxList.cs (1)
155return new SyntaxToken(node.Parent, green, node.GetChildPosition(index), _list.index + index);
Syntax\SyntaxList.cs (1)
27protected override SyntaxTree SyntaxTreeCore => this.Parent!.SyntaxTree;
Syntax\SyntaxNavigator.cs (6)
435while (node.Parent != null) 440foreach (var child in node.Parent.ChildNodesAndTokens()) 469node = node.Parent; 485while (node.Parent != null) 490foreach (var child in node.Parent.ChildNodesAndTokens().Reverse()) 519node = node.Parent;
Syntax\SyntaxNode.cs (8)
222Interlocked.CompareExchange(ref element, green.CreateRed(this.Parent, this.GetChildPosition(slot)), null); 244Interlocked.CompareExchange(ref element, green.CreateRed(this.Parent, this.GetChildPosition(1)), null); 267var newNode = greenChild.CreateRed(this.Parent, GetChildPosition(index)); 388for (SyntaxNode? node = this; node != null; node = node.Parent) 542if (node.Parent != null) 544node = node.Parent; 821var parent = node.Parent; 985var parent = node.Parent;
Syntax\SyntaxNodeExtensions_Tracking.cs (4)
149while (node.Parent != null) 151node = node.Parent; 175if (node.Parent != null) 177node = node.Parent;
Syntax\SyntaxNodeOrToken.cs (1)
127public SyntaxNode? Parent => _token != null ? _nodeOrParent : _nodeOrParent?.Parent;
Syntax\SyntaxNodeOrTokenList.cs (1)
119internal SyntaxNode? Parent => _node?.Parent;
Microsoft.CodeAnalysis.Analyzers (74)
MetaAnalyzers\DiagnosticAnalyzerFieldsAnalyzer.cs (2)
174var current = typeSyntax.Parent; 182current = current.Parent;
MetaAnalyzers\DiagnosticDescriptorCreationAnalyzer.cs (1)
926fieldDeclaration = fieldDeclaration.Parent!;
MetaAnalyzers\Fixers\ConfigureGeneratedCodeAnalysisFix.cs (1)
63var methodDeclaration = generator.TryGetContainingDeclaration(parameterDeclaration.Parent, DeclarationKind.Method);
MetaAnalyzers\Fixers\EnableConcurrentExecutionFix.cs (1)
55var methodDeclaration = generator.TryGetContainingDeclaration(parameterDeclaration.Parent, DeclarationKind.Method);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
182while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 184declSyntax = declSyntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.AnalyzerUtilities (63)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
182while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 184declSyntax = declSyntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.CodeStyle (68)
src\roslyn\src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
35var parent = node.Parent;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessaryParentheses\AbstractRemoveUnnecessaryParenthesesDiagnosticAnalyzer.cs (1)
76var parentKind = parenthesizedExpression.Parent?.RawKind;
src\roslyn\src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (2)
317fieldDeclaration = variableDeclarator?.Parent?.Parent as TFieldDeclaration;
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\UseCollectionInitializerHelpers.cs (1)
69containingBlockOrCompilationUnit = containingBlockOrCompilationUnit.Parent!;
src\roslyn\src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
134var negated = syntaxFacts.IsLogicalNotExpression(invocation.Parent);
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer_IfStatement.cs (1)
132if (whenPartMatch.Parent is TMemberAccessExpressionSyntax memberAccess)
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (2)
199if (whenPartMatch.Parent is TMemberAccessExpressionSyntax memberAccess) 458if (syntaxFacts.IsAnyAssignmentStatement(node.Parent) &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.CodeStyle.Fixes (48)
src\roslyn\src\Analyzers\Core\CodeFixes\AddAnonymousTypeMemberName\AbstractAddAnonymousTypeMemberNameCodeFixProvider.cs (3)
63if (node.Parent is not TAnonymousObjectMemberDeclaratorSyntax declarator) 74if (declarator.Parent is not TAnonymousObjectInitializer) 125var anonymousType = current.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\AddExplicitCast\AbstractAddExplicitCastCodeFixProvider.cs (3)
127if (syntaxFacts.IsParenthesizedExpression(currentTarget.Parent)) 129return (currentTarget.Parent, currentTarget.Parent.ReplaceNode(currentTarget, currentReplacement).WithAdditionalAnnotations(Simplifier.Annotation));
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (1)
74for (var node = initialNode; node != null; node = node.Parent)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateMember\AbstractGenerateMemberService.cs (1)
172if (expression.Parent?.RawKind == syntaxFacts.SyntaxKinds.AddressOfExpression &&
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (2)
346var block = assignmentStatement.Parent; 445if (syntaxKinds.AddressOfExpression == SimpleNameOrMemberAccessExpressionOpt.Parent?.RawKind)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (1)
63var typeDeclarationWithCoreMembers = firstGeneratedMember.Parent!;
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodSynchronous\AbstractMakeMethodSynchronousCodeFixProvider.cs (3)
211expressionNode = nameNode.Parent; 221var invocationExpression = expressionNode.Parent; 241var parentExpression = parentMemberAccessExpression.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\NamingStyle\NamingStyleCodeFixProvider.cs (1)
67node = node.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveUnusedParametersAndValues\AbstractRemoveUnusedValuesCodeFixProvider.cs (16)
173!syntaxFacts.IsExpressionStatement(node.Parent)) 182else if (syntaxFacts.IsDeclarationPattern(node.Parent) || 183syntaxFacts.IsRecursivePattern(node.Parent) || 184syntaxFacts.IsListPattern(node.Parent)) 482if (declaredLocal == null && node.Parent is TCatchStatementSyntax) 484declaredLocal = semanticModel.GetDeclaredSymbol(node.Parent, cancellationToken) as ILocalSymbol; 512Contract.ThrowIfFalse(node.GetRequiredParent().Parent is TExpressionStatementSyntax); 519if (node.Parent is TStatementSyntax) 522nodesToRemove.Add(node.Parent); 524else if (node.Parent is TExpressionSyntax && node.Parent.Parent is TExpressionStatementSyntax) 527nodesToRemove.Add(node.Parent.Parent); 695n => n.Parent is TSwitchCaseBlockSyntax || 696blockFacts.IsExecutableBlock(n.Parent) &&
src\roslyn\src\Analyzers\Core\CodeFixes\SimplifyInterpolation\AbstractSimplifyInterpolationCodeFixProvider.cs (1)
65interpolationSyntax.Parent is TInterpolatedStringExpressionSyntax interpolatedString)
src\roslyn\src\Analyzers\Core\CodeFixes\UseAutoProperty\AbstractUseAutoPropertyCodeFixProvider.cs (4)
443if (fieldToRemove.Parent == property.Parent && 444fieldToRemove.Parent is TTypeDeclarationSyntax typeDeclaration) 582node = node.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\UseCompoundAssignment\AbstractUseCompoundAssignmentCodeFixProvider.cs (1)
98if (syntaxFacts.IsSimpleAssignmentStatement(currentAssignment.Parent))
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\AbstractUseConditionalExpressionCodeFixProvider.cs (2)
182while (sourceSyntax is { Parent.RawKind: var kind } && kind == suppressKind) 183sourceSyntax = sourceSyntax.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\UseNullPropagation\AbstractUseNullPropagationCodeFixProvider.cs (4)
183if (syntaxFacts.IsElseClause(ifStatement.Parent)) 197editor.ReplaceNode(ifStatement.Parent, PostProcessElseIf(ifStatement, newWhenTrueStatement)); 246if (syntaxFacts.IsSimpleMemberAccessExpression(match.Parent)) 248var memberAccess = match.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.CSharp (154)
Binder\Binder_Conversions.cs (3)
3428if (node.Parent != null && node.Parent.Kind() == SyntaxKind.InvocationExpression) 3430errorNode = node.Parent;
Binder\Binder_Expressions.cs (6)
4732SyntaxNode equalsValueClause = node.Parent; 4739SyntaxNode variableDeclarator = equalsValueClause.Parent; 4746SyntaxNode variableDeclaration = variableDeclarator.Parent; 4753variableDeclaration.Parent.IsKind(SyntaxKind.LocalDeclarationStatement) || 4754variableDeclaration.Parent.IsKind(SyntaxKind.ForStatement); 10468if (expr.Syntax.Parent is ConditionalAccessExpressionSyntax conditional &&
Binder\Binder_QueryErrors.cs (1)
33for (SyntaxNode node = queryClause; ; node = node.Parent)
Binder\Binder_Statements.cs (2)
3467if (syntax.Parent is QueryClauseSyntax || syntax.Parent is SelectOrGroupClauseSyntax)
Binder\Binder_Symbols.cs (2)
2397node = node.Parent; 2697var code = (where.Parent is QueryClauseSyntax) ? ErrorCode.ERR_TypeVarNotFoundRangeVariable : ErrorCode.ERR_TypeVarNotFound;
Binder\Binder_TupleOperators.cs (1)
324Location location = ((BoundTupleExpression)(useRight ? right : left)).Arguments[i].Syntax.Parent.Location;
Binder\Binder.cs (1)
83while (node.Parent is { } parent)
Binder\Binder.IdentifierUsedAsValueFinder.cs (2)
123Debug.Assert(targetNode.Parent is not null); 124targetNode = targetNode.Parent;
Binder\Binder.ValueChecks.cs (1)
1282return syntax.Parent is ParenthesizedExpressionSyntax parenthesized &&
Binder\BinderFactory.BinderFactoryVisitor.cs (3)
87return VisitCore(parent.Parent); 1095if (node.IsKind(SyntaxKind.UsingDirective) && node.Parent == containingNode) 1100node = node.Parent;
Binder\BinderFactory.cs (2)
116if ((!InScript || node.Kind() != SyntaxKind.CompilationUnit) && node.Parent != null) 118node = node.Parent;
Binder\DecisionDagBuilder_CheckOrReachability.cs (5)
297if (syntax.Parent is ParenthesizedPatternSyntax parens) 303if (syntax.Parent is BinaryPatternSyntax binary) 316if (syntax.Parent is SubpatternSyntax subpatternSyntax 326if (syntax.Parent is ListPatternSyntax listPattern) 332if (syntax.Parent is SlicePatternSyntax slicePattern)
Binder\LoopBinderContext.cs (1)
22_labelName = loopSyntax.Parent is LabeledStatementSyntax labeled ? labeled.Identifier.ValueText : null;
Compilation\CSharpSemanticModel.cs (1)
4000parentSyntax == boundNode.Syntax.Parent &&
Compilation\SpeculativeSemanticModelWithMemberModel.cs (2)
154attributeOrParameter.Parent is null || 160MemberSemanticModel containing = GetEnclosingMemberModel(attributeOrParameter.Parent);
Compilation\SyntaxTreeSemanticModel.cs (8)
374var variableDecl = type.ModifyingScopedOrRefTypeOrSelf().Parent as VariableDeclarationSyntax; 991for (SyntaxNode curr = node; curr != null; curr = curr.Parent) 2481return (node) => node.Kind() != SyntaxKind.GlobalStatement || node.Parent != unit; 2486return (node) => node.Parent != unit || node.Kind() == SyntaxKind.GlobalStatement; 2508if (node.Parent == typeDeclaration) 2512else if (node.Parent is BaseListSyntax baseList) 2516else if (node.Parent is PrimaryConstructorBaseTypeSyntax baseType && baseType == typeDeclaration.PrimaryConstructorBaseTypeIfClass) 2544if (node.Parent == typeDeclaration)
FlowAnalysis\UnassignedAddressTakenVariablesWalker.cs (2)
54if (node.Parent.Kind() == SyntaxKind.AddressOfExpression) 56_result.Add((PrefixUnaryExpressionSyntax)node.Parent);
Lowering\AsyncRewriter\AsyncExceptionHandlerRewriter.cs (1)
609var tryStatementSyntax = (TryStatementSyntax)node.Syntax.Parent;
Lowering\ClosureConversion\ClosureConversion.cs (2)
1781var curSyntax = lambdaSyntax.Parent; 1796curSyntax = curSyntax.Parent;
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (3)
417Debug.Assert(returnStatement.ExpressionOpt.Syntax.Parent != null); 419SyntaxKind parentKind = returnStatement.ExpressionOpt.Syntax.Parent.Kind(); 571SyntaxNode? parent = body.Parent;
Lowering\Instrumentation\DebugInfoInjector.cs (5)
141Debug.Assert(syntax is { Parent: { Parent: { } } }); 142var grandparent = syntax.Parent.Parent; 199SyntaxNode? parent = original.Syntax.Parent;
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (6)
83SyntaxNode? node = boundFixed.Syntax.Parent; 135Debug.Assert(node.Parent is TryStatementSyntax); 136if (((TryStatementSyntax)node.Parent).Finally != null) 143node = node.Parent; 145node = node.Parent; 153node = node.Parent;
Lowering\LocalRewriter\LocalRewriter_PatternSwitchStatement.cs (1)
51SyntaxNode? section = d.Syntax.Parent;
Operations\CSharpOperationFactory_Methods.cs (3)
40(SyntaxNode syntax, bool isImplicit) = expression.Syntax is { Parent: ArgumentSyntax or AttributeArgumentSyntax } ? (expression.Syntax.Parent, expression.WasCompilerGenerated) : (value.Syntax, true); 464var assignmentSyntax = value.Syntax?.Parent ?? syntax;
Operations\CSharpOperationFactory.cs (3)
2209Debug.Assert(node.Parent != null); 2210varStatement = node.Parent; 2212varDeclaration = node.Parent;
Parser\Blender.cs (1)
165parent = parent.Parent)
Parser\Blender.Cursor.cs (3)
111if (node.Parent == null) 116var children = node.Parent.ChildNodesAndTokens(); 149var redToken = new CodeAnalysis.SyntaxToken(node.Parent, greenToken, node.Position, _indexInParent);
SourceGeneration\CSharpSyntaxHelper.cs (5)
45Debug.Assert(attribute.Parent is AttributeListSyntax); 46Debug.Assert(attribute.Parent.Parent is not null); 47return attribute.Parent.Parent;
src\roslyn\src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpDeclarationComputer.cs (1)
222if (node.Parent is BasePropertyDeclarationSyntax parentProperty)
SymbolDisplay\SymbolDisplayVisitor_Minimal.cs (4)
205startNode = startNode.Parent!.Parent!; 209startNode = startNode.Parent; 233startNode = startNode.Parent;
Symbols\Source\SourceLocalSymbol.cs (6)
203nodeToBind.Kind() == SyntaxKind.ArgumentList && (nodeToBind.Parent is ConstructorInitializerSyntax || nodeToBind.Parent is PrimaryConstructorBaseTypeSyntax) || 818nodeToBind.Kind() == SyntaxKind.ArgumentList && (nodeToBind.Parent is ConstructorInitializerSyntax || nodeToBind.Parent is PrimaryConstructorBaseTypeSyntax) || 846switch (_nodeToBind.Parent) 855throw ExceptionUtilities.UnexpectedValue(_nodeToBind.Parent);
Symbols\Source\SourceMemberContainerSymbol.cs (1)
6140var parentSyntax = member.Parent;
Symbols\Tuples\TupleTypeSymbol.cs (1)
302diagnostics.Add(ErrorCode.WRN_TupleLiteralNameMismatch, literal.Arguments[i].Syntax.Parent!.Location, sourceName, destination);
Syntax\CSharpSyntaxNode.cs (1)
127return (CSharpSyntaxNode?)base.Parent;
Syntax\LambdaUtilities.cs (15)
42return !node.Parent.IsKind(SyntaxKind.QueryExpression); 55Debug.Assert(lambdaBody.Parent is object); 56var lambda = lambdaBody.Parent; 62lambda = lambda.Parent; 75Debug.Assert(oldBody.Parent is object); 105var oldJoin = (JoinClauseSyntax)oldBody.Parent; 111var oldGroup = (GroupClauseSyntax)oldBody.Parent; 143var parent = node?.Parent; 300if (node.Parent.IsKind(SyntaxKind.QueryExpression)) 442if (node.Parent != null) 444switch (node.Parent.Kind()) 450SeparatedSyntaxList<ExpressionSyntax> incrementors = ((ForStatementSyntax)node.Parent).Incrementors; 468if (node is ExpressionSyntax && node.Parent != null && node.Parent.Parent == null)
Syntax\SyntaxFacts.cs (13)
24var p = node.Parent as AliasQualifiedNameSyntax; 30var parent = node.Parent; 47var p = node.Parent as AttributeSyntax; 283var parent1 = node.Parent; 289var parent2 = parent1.Parent; 300var parent3 = parent2.Parent; 316var parent4 = parent3.Parent; 345var current = node.Parent; 348while (current != null && (current.IsKind(ParenthesizedExpression) || current.IsKind(CastExpression))) current = current.Parent; 350current = current.Parent; 352current = current.Parent; 354current = current.Parent; 455parent = node.ModifyingScopedOrRefTypeOrSelf().Parent as DeclarationExpressionSyntax;
Syntax\SyntaxNodeExtensions.cs (10)
151if (node.Parent.IsKind(SyntaxKind.CastExpression)) 153node = node.Parent; 156while (node.Parent.IsKind(SyntaxKind.ConditionalExpression)) 158node = node.Parent; 161SyntaxNode? parentNode = node.Parent; 173SyntaxNode? variableDeclarator = parentNode.Parent; 176variableDeclarator.Parent.IsKind(SyntaxKind.VariableDeclaration); 181return parentNode.Parent.IsKind(SyntaxKind.ExpressionStatement); 302SyntaxNode? parentNode = syntax.Parent; 307parentNode = parentNode.Parent;
Syntax\SyntaxNodeRemover.cs (4)
326Debug.Assert(node.Parent is object); 346this.AddDirectives(node.Parent, GetRemovedSpan(span, fullSpan)); 366Debug.Assert(node.Parent is object); 380this.AddDirectives(node.Parent, GetRemovedSpan(span, fullSpan));
Syntax\SyntaxNormalizer.cs (22)
218if (IsAccessorListWithoutAccessorsWithBlockBody(currentToken.Parent?.Parent)) 267if (currentToken.Parent is AttributeListSyntax && currentToken.Parent.Parent is not ParameterSyntax) 317return (nextToken.Parent is AttributeListSyntax && !(nextToken.Parent.Parent is ParameterSyntax)) ? 1 : 0; 386currentTokenParent?.Parent is AnonymousFunctionExpressionSyntax || 399if (currentTokenParent?.Parent is PropertyDeclarationSyntax property && IsSingleLineProperty(property) && 450IsAccessorListWithoutAccessorsWithBlockBody(currentToken.Parent.Parent)) 638IsAccessorListWithoutAccessorsWithBlockBody(next.Parent.Parent)) 675token.Parent.Parent?.Parent is not UsingDirectiveSyntax) 702if (token.Parent.Parent?.Kind() is not SyntaxKind.TypeArgumentList and not SyntaxKind.UsingDirective) 900if (next is { RawKind: (int)SyntaxKind.OpenParenToken, Parent.Parent: ParenthesizedLambdaExpressionSyntax lambda } && 906if (token.Parent.Parent?.Kind() == SyntaxKind.SuppressNullableWarningExpression) 1341else if (node.Parent != null) 1343if (node.Parent.IsKind(SyntaxKind.CompilationUnit)) 1348int parentDepth = GetDeclarationDepth(node.Parent); 1350if (node.Parent.Kind() is SyntaxKind.GlobalStatement or SyntaxKind.FileScopedNamespaceDeclaration) 1355if (node.IsKind(SyntaxKind.IfStatement) && node.Parent.IsKind(SyntaxKind.ElseClause)) 1360if (node.Parent is BlockSyntax) 1365if (node is { Parent: InitializerExpressionSyntax or AnonymousObjectMemberDeclaratorSyntax } || 1368if (!IsSingleLineInitializerContext(node.Parent)) 1430var currentParent = node.Parent; 1447currentParent = currentParent.Parent;
Microsoft.CodeAnalysis.CSharp.CodeStyle (476)
src\984dec8966cb7923\ConvertSwitchStatementToExpressionDiagnosticAnalyzer.Analyzer.cs (2)
65if (declaration.Parent == node.Parent && declarator.Initializer is null)
src\a6db168d9ad5d460\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\AddAccessibilityModifiers\CSharpAddAccessibilityModifiers.cs (1)
58if (member.Parent is InterfaceDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (4)
72=> binaryLike.Parent switch 75ConstantPatternSyntax { Parent: ExpressionSyntax expression } => expression, 76ConstantPatternSyntax { Parent: UnaryPatternSyntax { Parent: ExpressionSyntax expression } } => expression,
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredPatternParenthesesDiagnosticAnalyzer.cs (1)
38=> binaryLike.Parent as PatternSyntax;
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
61methodDeclaration.Parent is not TypeDeclarationSyntax containingTypeDeclaration ||
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertTypeofToNameof\CSharpConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
34return node is TypeOfExpressionSyntax { Parent: MemberAccessExpressionSyntax }
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (9)
96if (argumentNode.Parent is not ArgumentListSyntax argumentList) 101var invocationOrCreation = argumentList.Parent; 144var localDeclaration = localDeclarator.Parent as VariableDeclarationSyntax; 145if (localDeclaration?.Parent is not LocalDeclarationStatementSyntax localStatement) 277for (var current = argumentExpression; current != null; current = current.Parent) 280if (current.Parent is LambdaExpressionSyntax lambda && current == lambda.Body) 284if (current.Parent is LocalFunctionStatementSyntax localFunction && current == localFunction.ExpressionBody) 288if (current.Parent is SwitchExpressionArmSyntax switchArm && current == switchArm.Expression) 323? current.Parent
src\roslyn\src\Analyzers\CSharp\Analyzers\NamingStyle\CSharpNamingStyleDiagnosticAnalyzer.cs (2)
33Parent: ParameterListSyntax 35Parent: RecordDeclarationSyntax
src\roslyn\src\Analyzers\CSharp\Analyzers\NewLines\ArrowExpressionClausePlacement\ArrowExpressionClausePlacementDiagnosticAnalyzer.cs (1)
73if (arrowExpressionClause.Parent is AccessorDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\NewLines\EmbeddedStatementPlacement\EmbeddedStatementPlacementDiagnosticAnalyzer.cs (2)
92var parent = statement.Parent; 115var blockParent = parent.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\QualifyMemberAccess\CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (2)
44if (node.Parent is AssignmentExpressionSyntax { Parent: InitializerExpressionSyntax(SyntaxKind.ObjectInitializerExpression), Left: var left } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (3)
54if (discard.Parent is DeclarationPatternSyntax declarationPattern) 58if (declarationPattern.Parent is not IsPatternExpressionSyntax) 80else if (discard.Parent is RecursivePatternSyntax recursivePattern)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (2)
261node1 = node1.Parent; 262node2 = node2.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\NullableImpactingSpanWalker.cs (4)
66if (node?.Parent is QualifiedNameSyntax qualifiedName 85if (node?.Parent is BaseNamespaceDeclarationSyntax) 91if (node.IsParentKind(SyntaxKind.NameEquals) && node.Parent.IsParentKind(SyntaxKind.UsingDirective)) 109while (node.Parent is QualifiedNameSyntax qualifiedName
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (2)
57switch (parenthesizedExpression.Parent) 82case ConstantPatternSyntax { Parent: IsPatternExpressionSyntax isPatternExpression }:
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (2)
53if (parenthesizedPattern.Parent is not PatternSyntax) 62if (parenthesizedPattern.Parent is not BinaryPatternSyntax parentPattern)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnreachableCode\RemoveUnreachableCodeHelpers.cs (2)
16switch (firstUnreachableStatement.Parent) 27if (globalStatement.Parent is not CompilationUnitSyntax compilationUnit)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (2)
54=> variableDeclarator.Parent is VariableDeclarationSyntax 56Parent: FieldDeclarationSyntax { Declaration.Variables.Count: 0 } or
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (2)
69var statementAncestor = unusedSymbolWriteOperation.Syntax.FirstAncestorOrSelf<StatementSyntax>()?.Parent; 103if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationHelpers.cs (1)
23ConditionalExpressionSyntax { Parent: ParenthesizedExpressionSyntax parent } => parent,
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorDiagnosticAnalyzer.cs (2)
85if (accessorDeclaration is { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax containingPropertyDeclaration } containingAccessorList } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
25Parent: PropertyPatternClauseSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForArrayDiagnosticAnalyzer.cs (4)
150var isConcreteOrImplicitArrayCreation = initializer.Parent is ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax; 153if (!isConcreteOrImplicitArrayCreation && initializer.Parent is not EqualsValueClauseSyntax) 175var matches = initializer.Parent switch 189Debug.Assert(initializer.Parent is EqualsValueClauseSyntax);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (6)
136if (invocationExpression.Parent is not EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax localDeclarationStatement } } declarator }) 216identifierName.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 218memberAccess.Parent is InvocationExpressionSyntax { ArgumentList.Arguments.Count: 0 } invocationExpression &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (1)
41: memberAccess.Parent is InvocationExpressionSyntax invocation && IsCollectionEmptyAccess(semanticModel, invocation, cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs (3)
79if (memberAccess.Parent is not InvocationExpressionSyntax invocation) 87if (invocation.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax parentInvocation } parentMemberAccess &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (17)
104if (topMostExpression.Parent is CastExpressionSyntax { Type: IdentifierNameSyntax }) 408if (locallyScopedExpression.Parent is ExpressionStatementSyntax) 413if (locallyScopedExpression.Parent is ReturnStatementSyntax or ArrowExpressionClauseSyntax) 416if (locallyScopedExpression.Parent is ArgumentSyntax argument) 426if (locallyScopedExpression.Parent is MemberAccessExpressionSyntax memberAccess && 429if (memberAccess.Parent is InvocationExpressionSyntax invocationExpression) 451if (locallyScopedExpression.Parent is ElementAccessExpressionSyntax elementAccess) 465if (locallyScopedExpression.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax declarator }) 474if (locallyScopedExpression.Parent is AssignmentExpressionSyntax assignment && 554if (argument.Parent is not BaseArgumentListSyntax { Parent: ExpressionSyntax parentInvocation } argumentList) 672Contract.ThrowIfFalse(originalInitializer.Parent 796if (expression.WalkUpParentheses().Parent is not EqualsValueClauseSyntax 798Parent: VariableDeclaratorSyntax 801Parent.Parent: LocalDeclarationStatementSyntax localDeclarationStatement
src\roslyn\src\Analyzers\CSharp\Analyzers\UseConditionalExpression\CSharpUseConditionalExpressionForReturnDiagnosticAnalyzer.cs (1)
39if (block.Syntax.Parent is UnsafeStatementSyntax or CheckedStatementSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (3)
103if (variableDeclaration is not { Parent: LocalDeclarationStatementSyntax localDeclaration, Variables: [{ Initializer.Value: { } initializerValue } declarator] }) 110var searchScope = localDeclaration.Parent is GlobalStatementSyntax globalStatement 256if (identifierName.Parent is not MemberAccessExpressionSyntax memberAccess)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseImplicitObjectCreation\CSharpUseImplicitObjectCreationDiagnosticAnalyzer.cs (16)
87if (objectCreation.Parent is EqualsValueClauseSyntax 89Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: false } variableDeclaration } 102else if (objectCreation.Parent.IsKind(SyntaxKind.ArrowExpressionClause)) 104(typeNode, isAsync) = objectCreation.Parent.Parent switch 111AccessorDeclarationSyntax(SyntaxKind.GetAccessorDeclaration) { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax baseProperty } } => (baseProperty.Type, false), 115else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ObjectCreationExpressionSyntax { Type: var collectionType } }) 124else if (objectCreation.Parent is InitializerExpressionSyntax(kind: SyntaxKind.ArrayInitializerExpression) 126Parent: EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax arrayVariableDeclaration } } 131else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ArrayCreationExpressionSyntax { Type: var arrayCreationType } })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseInferredMemberName\CSharpUseInferredMemberNameDiagnosticAnalyzer.cs (2)
34if (nameColon.Parent is not ArgumentSyntax argument) 63if (nameEquals.Parent is not AnonymousObjectMemberDeclaratorSyntax anonCtor)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLabeledJumpStatements\CSharpUseLabeledJumpStatementsHelpers_FlagVariable.cs (19)
46Parent: BlockSyntax enclosingBlock, 147if (innerLoop.AncestorsAndSelf().FirstOrDefault(n => n.Parent == targetBody) is not StatementSyntax siteStatement) 156if (reset.Parent != targetBody || targetBody.Statements.IndexOf(reset) >= siteIndex) 172for (var current = targetLoop.Parent; current != null; current = current.Parent) 203var statementInBlock = current.Parent is LabeledStatementSyntax labeled ? labeled : current; 204if (statementInBlock.Parent is not BlockSyntax { Parent: StatementSyntax containingLoop } containingBlock || 253if (breakStatement is not { Name: null, Parent: BlockSyntax block }) 274Parent: VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax declaration } 307if (name.Parent is not AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) 310Parent: ExpressionStatementSyntax { Parent: BlockSyntax block } assignmentStatement, 333if (name.Parent is not AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) 336Parent: ExpressionStatementSyntax resetStatement, 350if (name.Parent is not IfStatementSyntax { Else: null } candidate || candidate.Condition != name) 365for (var current = node.Parent; current != null; current = current.Parent)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLabeledJumpStatements\CSharpUseLabeledJumpStatementsHelpers.cs (5)
95Parent: BlockSyntax { Parent: StatementSyntax candidateLoop, Statements: [.., var lastStatement] }, 181for (var current = jump; current != null && current != target; current = current.Parent) 192for (var current = jump.Parent; current != null && current != target; current = current.Parent)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (16)
94if (localDeclaration.Parent is BlockSyntax block) 96else if (localDeclaration.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit }) 221Parent: EqualsValueClauseSyntax 223Parent: VariableDeclaratorSyntax 225Parent: VariableDeclarationSyntax 227Parent: LocalDeclarationStatementSyntax declaration, 272if (nodeToCheck.Parent is BinaryExpressionSyntax) 279if (nodeToCheck.Parent is InvocationExpressionSyntax invocationExpression) 283else if (nodeToCheck.Parent is MemberAccessExpressionSyntax memberAccessExpression) 285if (memberAccessExpression is { Parent: InvocationExpressionSyntax explicitInvocationExpression, Name.Identifier.ValueText: WellKnownMemberNames.DelegateInvokeName }) 357if (anonymousFunction?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) { Parent: ExpressionStatementSyntax expressionStatement } assignment) 363if (expressionStatement.Parent is BlockSyntax block) 369else if (expressionStatement.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit } globalStatement)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNameofInNullableAttribute\CSharpUseNameofInNullableAttributeDiagnosticAnalyzer.cs (4)
113var attributeList = attribute.Parent as AttributeListSyntax; 114var container = attributeList?.Parent; 118var parameterList = container.Parent as BaseParameterListSyntax; 119container = parameterList?.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
125return node.WalkUpParentheses().Parent switch
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (1)
328if (statement.Parent is BlockSyntax block)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (5)
104if (declarator is not { Parent.Parent: LocalDeclarationStatementSyntax localStatement }) 112var enclosingBlock = localStatement.Parent; 241if (identifierName.Parent is AssignmentExpressionSyntax assignmentExpression && 248else if (identifierName.Parent is ArgumentSyntax argument &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (3)
95var ifStatementScope = ifStatement.Parent.IsKind(SyntaxKind.Block) 96? ifStatement.Parent 173if (!isExpression.Parent.IsKind(SyntaxKind.IfStatement, out ifStatement))
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (5)
29if (asExpression.Parent is not ParenthesizedExpressionSyntax 32Parent: ConditionalAccessExpressionSyntax parentConditionalAccess 54if (conditionalAccessExpression.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) parentBinaryExpression1 && 63else if (conditionalAccessExpression.Parent is 81else if (conditionalAccessExpression.Parent is IsPatternExpressionSyntax parentIsPatternExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (3)
125else if (nodeToRemove is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax field } }) 315if (primaryConstructorDeclaration.Parent is not TypeDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (2)
116if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (2)
104else if (elements is [{ Syntax.Parent: ArgumentSyntax }, ..]) 109else if (elements is [{ Syntax.Parent: (kind: SyntaxKind.CollectionInitializerExpression) }, ..])
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ArgumentSyntaxExtensions.cs (3)
45if (argument.Parent is not BaseArgumentListSyntax argumentList || 46argumentList.Parent is null) 52var symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DefaultExpressionSyntaxExtensions.cs (4)
40if (defaultExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 70equalsValueClause.Parent?.Parent is VariableDeclarationSyntax declaration) 74else if (equalsValueClause?.Parent is ParameterSyntax parameter)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (55)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression is { Parent: NameMemberCrefSyntax { Parent: QualifiedCrefSyntax } }; 48=> expression?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == expression; 55return expression == (expression.Parent as MemberAccessExpressionSyntax)?.Name || 60=> expression?.Parent is MemberBindingExpressionSyntax memberBinding && 64=> expression?.Parent is QualifiedNameSyntax qualifiedName && qualifiedName.Right == expression; 67=> expression?.Parent is AliasQualifiedNameSyntax aliasName && aliasName.Name == expression; 98=> (expression?.Parent) is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 103(expression.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Expression == expression); 106=> (expression?.Parent) is QualifiedNameSyntax qualifiedName && qualifiedName.Left == expression; 112=> expression?.Parent is InvocationExpressionSyntax invocation && 197=> expression?.Parent is ArgumentSyntax { RefOrOutKeyword: SyntaxToken(SyntaxKind.OutKeyword) } argument && 209while (expression?.Parent is ParenthesizedExpressionSyntax or PostfixUnaryExpressionSyntax(SyntaxKind.SuppressNullableWarningExpression)) 210expression = (ExpressionSyntax)expression.Parent; 212if (expression?.Parent is RefExpressionSyntax or 215refParent = expression.Parent; 224=> expression?.Parent is ArgumentSyntax { RefKindKeyword: SyntaxToken(SyntaxKind.InKeyword) }; 248if (expression.Parent != null) 282var parent = expr.Parent; 291if (parent.Parent?.Kind() == SyntaxKind.TupleExpression) 293expr = (TupleExpressionSyntax)parent.Parent; 337if (refParent.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type: { } variableDeclarationType } } }) 355if (expression.Parent.IsKind(SyntaxKind.AddressOfExpression)) 366if (expression.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccess && 384if (expression.Parent is ArgumentSyntax) 399var nameEquals = expression?.Parent as NameEqualsSyntax; 405if (expression?.Parent is SyntaxNode parent) 421=> expression is IdentifierNameSyntax { Parent: NameColonSyntax }; 517return expression is { Parent.RawKind: not (int)SyntaxKind.ConditionalAccessExpression }; 520if (expression.Parent == null) 523switch (expression.Parent.Kind()) 553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 555!parentConditionalAccessExpression.Parent.IsKind(SyntaxKind.ConditionalAccessExpression); 560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 596if (expression.Parent is PrefixUnaryExpressionSyntax) 606while (topExpression.Parent is TypeSyntax typeSyntax) 620if (expression.Parent is PostfixUnaryExpressionSyntax or 639if ((expression.IsParentKind(SyntaxKind.NameEquals) && expression.Parent.IsParentKind(SyntaxKind.AttributeArgument)) || 649=> expression is { Parent: ArgumentSyntax { Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocation } } } && 901=> expression?.Parent is MemberAccessExpressionSyntax; 912var parent = topExpression.Parent; 944if (argument.Parent is TupleExpressionSyntax tupleExpression) 973for (SyntaxNode? current = returnStatement; current != null; current = current.Parent) 988if (equalsValue.Parent is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: true } }) 1058if (initializerExpression.Parent is ArrayCreationExpressionSyntax arrayCreation) 1062if (initializerExpression.Parent is ImplicitArrayCreationExpressionSyntax) 1074if (initializerExpression.Parent is EqualsValueClauseSyntax equalsValue) 1078if (initializerExpression.Parent is StackAllocArrayCreationExpressionSyntax or ImplicitStackAllocArrayCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
27var nodeParent = node.Parent; 39? nodeParent.Parent as ExpressionSyntax 70if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 368if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 548if (node?.Parent is CastExpressionSyntax castExpression) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 608(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 660if (node.Parent is ArgumentSyntax argument) 662if (argument.Parent is ArgumentListSyntax argumentList) 671else if (node.Parent is InitializerExpressionSyntax initializer) 695if (node.Parent is ArgumentSyntax argument) 697if (argument.Parent is ArgumentListSyntax argumentList) 706else if (node.Parent is InitializerExpressionSyntax initializer) 744if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 759if (node.Parent is ParenthesizedPatternSyntax) 763if (node.Parent is IsPatternExpressionSyntax) 767if (node.Parent is SwitchExpressionArmSyntax) 771if (node.Parent is SubpatternSyntax) 775if (node.Parent is CasePatternSwitchLabelSyntax) 781return node.Parent is PatternSyntax patternParent &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList } baseType && 215else if (baseList.Types[0] == type.Parent) 224if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 233type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 234type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 235type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 251if (type.Parent.Kind() 260type.Parent, cancellationToken).DeclaredAccessibility; 273if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 275if (type.Parent.Parent.Parent?.Kind() 282type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 285if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 287var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 380if (current.Parent is ForEachStatementSyntax foreachStatement && 387if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 432if (topExpression?.Parent is ArgumentSyntax argument) 439if (argument.Parent is BaseArgumentListSyntax argumentList) 442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (6)
19return ((MemberAccessExpressionSyntax)name.Parent).Expression; 27return ((QualifiedNameSyntax)name.Parent).Left; 31return ((QualifiedCrefSyntax)name.Parent.Parent).Container; 52if (simpleName?.Parent is InvocationExpressionSyntax invocation && 59if (simpleName?.Parent is ElementAccessExpressionSyntax elementAccess &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\StatementSyntaxExtensions.cs (4)
40if (first.Parent.IsKind(SyntaxKind.GlobalStatement)) 41return second.Parent.IsKind(SyntaxKind.GlobalStatement); 43return first.Parent == second.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (23)
45=> CodeAnalysis.CSharpExtensions.IsKind(node?.Parent, kind); 52result = (TNode)node.Parent!; 186if ((current?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == current) || 187(current?.Parent is MemberBindingExpressionSyntax memberBinding && memberBinding.Name == current)) 189current = current.Parent; 203current.Parent is not ConditionalAccessExpressionSyntax) 205current = current.Parent; 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 288=> node?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment && 292=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Left == node; 295=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Right == node; 299return node?.Parent != null && 300node.Parent.IsCompoundAssignExpression() && 301((AssignmentExpressionSyntax)node.Parent).Left == node; 337for (var current = node; current != null; current = current.Parent) 360return !current.Parent.IsKind(SyntaxKind.CompilationUnit); 663=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 679current = current.Parent; 781for (var current = node; current != null; current = current.Parent) 829for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
110if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 113return token.Parent.Parent.GetFirstToken() != token; 126=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 135return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 204&& statementOrElse.Parent != null 205&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 282token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 382token.Parent?.Parent is QueryExpressionSyntax queryExpression && 390var parent = initializer.Parent; 414return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 426var parent = initializer.Parent; 446var parent = anonymousObjectInitializer.Parent; 482return token.Parent.Parent is LabeledStatementSyntax; 527return currentToken.Kind() == SyntaxKind.OpenParenToken && currentToken is { Parent: ParenthesizedVariableDesignationSyntax, Parent.Parent: DeclarationExpressionSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
36if (block.Parent is null or BlockSyntax) 44block.Parent.GetFirstToken(includeZeroWidth: true),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
167RoslynDebug.AssertNotNull(node.Parent); 170firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (10)
63if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 103RoslynDebug.AssertNotNull(node.Parent); 104var switchStatement = (SwitchStatementSyntax)node.Parent; 183if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 228if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 262if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression) 378for (var current = node; current != null; current = current.Parent) 380if (current.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == current)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (7)
49var parentKind = node.Parent?.Kind(); 85&& previousToken.Parent!.Parent == currentToken.Parent.Parent) 165var currentTokenParentParent = currentToken.Parent.Parent; 280|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 369var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 378if (initializer?.Parent != null) 380AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
205var attributeOwner = previousToken.Parent?.Parent; 231RoslynDebug.AssertNotNull(currentUsing.Parent); 233if (AreUsingsProperlyGrouped(GetUsings(currentUsing.Parent)))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (6)
351case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }: 410SimpleNameSyntax { Parent: InvocationExpressionSyntax invocation } => invocation.ArgumentList, 412SimpleNameSyntax { Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberAccess } when memberAccess.Name == node => invocation.ArgumentList, 414SimpleNameSyntax { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberBinding } when memberBinding.Name == node => invocation.ArgumentList,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (29)
173=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 204=> node?.Parent is UsingDirectiveSyntax usingDirective && 254return node.Parent is BaseMethodDeclarationSyntax or 528if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 637node.Parent.IsParentKind(SyntaxKind.Subpattern); 649if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 651var withInitializer = identifier.Parent.GetRequiredParent(); 655else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 657var objectInitializer = identifier.Parent.GetRequiredParent(); 658if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 660initializedInstance = objectInitializer.Parent; 663else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 675=> expression is IdentifierNameSyntax { Parent: NameEqualsSyntax { Parent: AnonymousObjectMemberDeclaratorSyntax } nameEquals } identifier && 682Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 685creationExpression = node.Parent; 731node = node.Parent; 772var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 776parent = parent.Parent; 785parent = parent.Parent; 955var parent = node.Parent; 1091=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1094=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1155node.Parent is AttributeListSyntax attributeList && 1184return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1309=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1315=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\CSharpInferredMemberNameSimplifier.cs (3)
14if (node.NameColon == null || !node.Parent.IsKind(SyntaxKind.TupleExpression)) 24if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node)) 45if (RemovalCausesAmbiguity(((AnonymousObjectCreationExpressionSyntax)node.Parent!).Initializers, node))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (32)
126if (leftOrRightChild.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) binary) 160if (castExpression.WalkUpParentheses().Parent is PrefixUnaryExpressionSyntax(SyntaxKind.BitwiseNotExpression) parent && 161parent.WalkUpParentheses().Parent is CastExpressionSyntax parentCast) 193if (isDefaultLiteralCast && castNode.WalkUpParentheses().Parent is PatternSyntax or CaseSwitchLabelSyntax) 356if (castNode.WalkUpParentheses().Parent is InterpolationSyntax) 467if (castNode.WalkUpParentheses().Parent is MemberAccessExpressionSyntax memberAccessExpression) 500if (castNode.WalkUpParentheses().Parent is InvocationExpressionSyntax invocationExpression) 519if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 756if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 878static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 903static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1077if (expression.WalkUpParentheses().Parent 1195if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1265if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1272else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1278else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1280equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1304for (SyntaxNode? current = expression; current != null; current = current.Parent) 1319for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1321currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1375for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1377currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1404for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1406currentOld = currentOld.Parent, currentNew = currentNew.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
180var containerOfList = parent.Parent; 196var parentOfParent = parent.Parent; 330RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 331var labelNode = previousToken.Parent.Parent; 374RoslynDebug.AssertNotNull(node.Parent); 376node = node.Parent; 383node = node.Parent; 393node = node.Parent; 435return token.Parent.Parent as MemberDeclarationSyntax;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
297Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 298Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode); 441var oldSwitchStatement = (SwitchStatementSyntax)originalCaseSwitchLabel.Parent.Parent; 442var newSwitchStatement = (SwitchStatementSyntax)newCaseSwitchLabel.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
83var isSupportedParentKind = variableDeclaration.Parent is (kind: 99switch (declaration.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
65if (typeName.Parent is DeclarationExpressionSyntax declExpression && 78if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 91if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 106else if (typeName.Parent is DeclarationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
104if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 107if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 139else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 201if (declarationExpression.Parent is not ArgumentSyntax 203Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 277if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (319)
src\50a3a051b0fef0d6\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\ArgumentFixer.cs (1)
31var newInvocation = newArgumentList.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\AttributeArgumentFixer.cs (1)
31var newAttribute = (AttributeSyntax)newArgumentList.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\CSharpAddExplicitCastCodeFixProvider.cs (4)
71&& targetArgument.Parent is ArgumentListSyntax argumentList 72&& argumentList.Parent is SyntaxNode invocationNode) 79&& targetAttributeArgument.Parent is AttributeArgumentListSyntax attributeArgumentList 80&& attributeArgumentList.Parent is AttributeSyntax attributeNode)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddInheritdoc\AddInheritdocCodeFixProvider.cs (4)
49if (node.IsKind(SyntaxKind.VariableDeclarator) && node is not { Parent.Parent: EventFieldDeclarationSyntax }) 76if (node is VariableDeclaratorSyntax { Parent.Parent: EventFieldDeclarationSyntax eventField })
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AbstractAssignOutParametersCodeFixProvider.cs (5)
67return location.Parent is BlockSyntax 68|| location.Parent is SwitchSectionSyntax 69|| location.Parent.IsEmbeddedStatementOwner(); 74return location.Parent is ArrowExpressionClauseSyntax or LambdaExpressionSyntax; 82for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AssignOutParametersAtStartCodeFixProvider.cs (2)
40statement.Parent is BlockSyntax block && 42block.Parent == container)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertNamespace\ConvertNamespaceTransform.cs (1)
138if (stringLiteral.GetRequiredParent() is not InterpolatedStringTextSyntax { Parent: InterpolatedStringExpressionSyntax { StringStartToken: (kind: SyntaxKind.InterpolatedMultiLineRawStringStartToken) } interpolatedString })
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.cs (2)
88if (declaratorToRemoveNode.Parent is VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax declStatement, Variables.Count: 1 })
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordEngine.cs (4)
184(expression.Parent as AssignmentExpressionSyntax)?.Parent as ExpressionStatementSyntax) 502.Select(referenceLocations => referenceLocations.Location.FindNode(cancellationToken).Parent) 521expression => objectCreationExpression.Initializer!.Expressions.IndexOf(expression.Parent));
src\roslyn\src\Analyzers\CSharp\CodeFixes\FixIncorrectConstraint\CSharpFixIncorrectConstraintCodeFixProvider.cs (1)
41if (constraint.Parent is not TypeParameterConstraintClauseSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (2)
91if (fullName.Parent is ObjectCreationExpressionSyntax objectCreationExpression) 123if (fullName.Parent is AttributeSyntax attribute)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateDefaultConstructors\CSharpGenerateDefaultConstructorsService.cs (3)
44if (node is { Parent: BaseTypeSyntax { Parent: BaseListSyntax { Types: [var firstType, ..] } baseList } }) 46if (baseList.Parent is TypeDeclarationSyntax(SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration) parentTypeDecl &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateEnumMember\CSharpGenerateEnumMemberService.cs (1)
34simpleNameOrMemberAccessExpression = identifierName.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == identifierName
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (1)
30node.Parent is AssignmentExpressionSyntax or EqualsValueClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (4)
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\ImplementInterface\CSharpImplementInterfaceService.cs (4)
37=> type?.Parent is BaseTypeSyntax { Parent: BaseListSyntax } baseTypeParent && baseTypeParent.Type == type; 56if (node is TypeSyntax interfaceNode && interfaceNode.Parent is BaseTypeSyntax baseType && 57baseType.Parent is BaseListSyntax baseList &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (5)
55declarationsToRemove.Add((LocalDeclarationStatementSyntax)diagnostic.AdditionalLocations[0].FindNode(cancellationToken).Parent.Parent); 108var declaration = (VariableDeclarationSyntax)declarator.Parent; 117var localDeclarationStatement = (LocalDeclarationStatementSyntax)declaration.Parent; 175editor.RemoveNode(localDeclarationStatement.Parent is GlobalStatementSyntax globalStatement
src\roslyn\src\Analyzers\CSharp\CodeFixes\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessCodeFixProvider.cs (1)
96if (ifStatement.Parent.IsKind(SyntaxKind.ElseClause) &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (4)
88if (node.Parent?.Parent is PropertyDeclarationSyntax oldAccessor) 93if (node.Parent?.Parent is IndexerDeclarationSyntax oldIndexer)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\MakeLocalFunctionStaticCodeFixHelper.cs (1)
72if (identifierNode.Parent is InvocationExpressionSyntax invocation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (4)
49if (node is not (PropertyDeclarationSyntax or VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax })) 131if (memberDeclarator is VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax fieldDeclaration })
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberStatic\CSharpMakeMemberStaticCodeFixProvider.cs (4)
31if (node.IsKind(SyntaxKind.VariableDeclarator) && node.Parent is VariableDeclarationSyntax { Parent: FieldDeclarationSyntax or EventFieldDeclarationSyntax }) 33memberDeclaration = node.Parent.Parent;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStatementAsynchronous\CSharpMakeStatementAsynchronousCodeFixProvider.cs (2)
96if (node.Parent is (kind: 101return node.Parent;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyCodeFixProvider.cs (2)
52else if (declaration is AccessorDeclarationSyntax { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax property } accessorList } accessor)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Nullable\CSharpDeclareAsNullableCodeFixProvider.cs (20)
59if (node.Parent is ArgumentSyntax) 63if (node.Parent is AssignmentExpressionSyntax) 116if (node.Parent is (kind: SyntaxKind.ReturnStatement or SyntaxKind.YieldReturnStatement)) 161if (node.Parent?.Parent?.Parent is VariableDeclarationSyntax variableDeclaration) 170if (node.Parent is AssignmentExpressionSyntax assignment) 176if (syntax is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Variables.Count: 1 } declaration }) 187if (syntax is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Variables.Count: 1 } declaration }) 212if (node.Parent is ArgumentSyntax argument && argument.Parent?.Parent is InvocationExpressionSyntax invocation) 239if (node.Parent?.Parent is PropertyDeclarationSyntax propertyDeclaration) 249if (node is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 } declarationSyntax }) 253if (node.Parent?.Parent is ParameterSyntax optionalParameter) 261node.Parent?.Parent is MethodDeclarationSyntax arrowMethod)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationCodeFixProvider.cs (2)
42switch (discard.Parent) 45if (declarationPattern.Parent is IsPatternExpressionSyntax isPattern)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnreachableCode\CSharpRemoveUnreachableCodeCodeFixProvider.cs (1)
80if (statement.Parent?.Kind()
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedLocalFunction\CSharpRemoveUnusedLocalFunctionCodeFixProvider.cs (1)
51editor.RemoveNode(localFunction.Parent is GlobalStatementSyntax globalStatement ? globalStatement : localFunction);
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (4)
42=> declarator.Parent?.Parent as LocalDeclarationStatementSyntax; 56variableDeclarator.Parent is VariableDeclarationSyntax parent) 212if (originalCompoundAssignment.Parent.IsKind(SyntaxKind.ExpressionStatement))
src\roslyn\src\Analyzers\CSharp\CodeFixes\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorCodeFixProvider.cs (2)
51if (accessor.Parent?.Parent is PropertyDeclarationSyntax containingProperty &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseAutoProperty\UseAutoPropertyRewriter.cs (2)
45if (node.Parent is AssignmentExpressionSyntax 47Parent: InitializerExpressionSyntax { RawKind: (int)SyntaxKind.ObjectInitializerExpression }
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (3)
612Contract.ThrowIfNull(node.Parent); 656for (var current = node; current != null; current = current.Parent) 879Contract.ThrowIfNull(expression.Parent);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider_CollectionInitializer.cs (1)
98Contract.ThrowIfNull(expression.Parent);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundAssignmentCodeFixProvider.cs (1)
52if (currentAssignment.Parent is ForStatementSyntax forStatement &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
47if (ifStatement.Parent is ElseClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForReturnCodeFixProvider.cs (1)
34if (ifStatement.Parent is ElseClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExpressionBody\UseExpressionBodyCodeFixProvider.cs (1)
89if (declaration.Parent is AccessorListSyntax accessorList)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (4)
65var declarationContext = node.Parent; 69declarationContext = declarationContext.Parent; 99RoslynDebug.AssertNotNull(typeSyntax.Parent); 101var tupleTypeSymbol = GetConvertedType(semanticModel, typeSyntax.Parent, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (1)
233while (expr?.Parent is CheckedExpressionSyntax parent)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLabeledJumpStatements\CSharpUseLabeledJumpStatementsCodeFixProvider.cs (3)
181=> (loop.Parent as LabeledStatementSyntax)?.Identifier.Text; 220if (loop.Parent is LabeledStatementSyntax) 231editor.ReplaceNode(loop, loop.Parent is BlockSyntax or SwitchSectionSyntax or GlobalStatementSyntax
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (1)
171editor.RemoveNode(anonymousFunctionStatement.Parent is GlobalStatementSyntax globalStatement
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
47var elseClauseSyntax = (ElseClauseSyntax)ifStatement.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (4)
74if (statement.Parent is BlockSyntax or SwitchSectionSyntax) 76statementParentScopes.Add(statement.Parent); 109if (declarator.Parent is VariableDeclarationSyntax declaration && 110declaration.Parent is LocalDeclarationStatementSyntax localDeclaration &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (2)
283if (nameSyntax.Parent is QualifiedNameSyntax qualifiedNameSyntax) 292else if (nameSyntax.Parent is MemberAccessExpressionSyntax memberAccessExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSimpleUsingStatement\UseSimpleUsingStatementCodeFixProvider.cs (2)
48var blockLikes = topmostUsingStatements.Select(u => u.Parent is GlobalStatementSyntax ? u.Parent.GetRequiredParent() : u.GetRequiredParent()).ToSet();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (4)
88if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } variableDeclaration) 139if (expression.Parent is MemberAccessExpressionSyntax memberAccess && 145if (expression.Parent is not AssignmentExpressionSyntax assignment ||
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseThrowExpression\UseThrowExpressionCodeFixProvider.cs (1)
62if (throwStatementExpression.Parent is ThrowStatementSyntax throwStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpDeclarationComparer.cs (5)
345for (var node = parent; node != null; node = node.Parent) 388var xAccessibility = GetAccessibilityPrecedence(xModifiers, x.Parent ?? y.Parent); 389var yAccessibility = GetAccessibilityPrecedence(yModifiers, y.Parent ?? x.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (7)
215targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 378token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 394token.Parent.Parent is StatementSyntax) 491FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause, 548return attributeList?.Parent switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (20)
126if (token.Parent.Parent is StatementSyntax) 135if (token.Parent.Parent.Kind() is not SyntaxKind.TryStatement and not SyntaxKind.DoStatement) 138else if (token.Parent.Parent?.Kind() 180var container = token.Parent.Parent; 261var container = token.Parent.Parent; 262if (container is IncompleteMemberSyntax && container.Parent is CompilationUnitSyntax) 451targetToken.Parent.Parent.IsKind(SyntaxKind.Argument) && 452targetToken.Parent.Parent.Parent.IsKind(SyntaxKind.ArgumentList)) 454var owner = targetToken.Parent.Parent.Parent.Parent; 469if (targetToken.Parent?.Parent?.Kind() 590targetToken.Parent.Parent is AccessorDeclarationSyntax) 605targetToken.Parent.Parent is AccessorDeclarationSyntax) 617if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 619else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 650targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 651IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (76)
100parent = attributeList.Parent; 180token.Parent.Parent is BaseTypeDeclarationSyntax) 197token.Parent.Parent is BaseTypeDeclarationSyntax) 209token.Parent.Parent is MemberDeclarationSyntax) 229var container = token.Parent.Parent?.Parent; 313member.Parent is BaseTypeDeclarationSyntax; 493token.Parent.Parent is MemberDeclarationSyntax) 520var container = token.Parent?.Parent?.Parent; 597var container = token.Parent?.Parent; 786token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 841token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 957{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1016name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1018conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1106token.Parent.Parent is ParameterSyntax parameter3 && 1107parameter3.Parent is ParameterListSyntax parameterList3 && 1122parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1126if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1136=> parameterList.Parent switch 1275parent = token.Parent.Parent; 1277else if (token.IsKind(SyntaxKind.IdentifierToken) && token is { Text: "scoped", Parent: IdentifierNameSyntax scopedIdentifierName } && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1279parent = scopedIdentifierName.Parent.Parent; 1358leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1360var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1442leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1528while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1533if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1564if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1592possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1660if (outer.Parent is ForEachStatementSyntax @foreach) 1681if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1683node = node.Parent; 1687if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1689node = node.Parent.Parent; 1701leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1809parent.Parent?.Parent is (kind: 1817if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1873if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2086equalsValue.Parent.IsParentKind(SyntaxKind.VariableDeclaration)) 2349type.Parent?.Parent is LocalDeclarationStatementSyntax declStatement) 2502token.Parent?.Parent is ObjectCreationExpressionSyntax objectCreation) 2739=> token.Parent?.Parent is InvocationExpressionSyntax invocation && 2756while (parentMemberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 2758parentMemberAccess = parentMemberAccess.Parent; 2761if (parentMemberAccess.Parent.IsKind(SyntaxKind.Argument) && 2762parentMemberAccess.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2764token = ((ArgumentListSyntax)parentMemberAccess.Parent.Parent!).OpenParenToken; 2772while (parentQualifiedName.Parent.IsKind(SyntaxKind.QualifiedName)) 2774parentQualifiedName = parentQualifiedName.Parent; 2777if (parentQualifiedName.Parent.IsKind(SyntaxKind.Argument) && 2778parentQualifiedName.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2780token = ((ArgumentListSyntax)parentQualifiedName.Parent.Parent!).OpenParenToken; 2789token.Parent.Parent is InvocationExpressionSyntax invocationExpression && 2858nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2869token.Parent.Parent is (kind: SyntaxKind.ObjectInitializerExpression or SyntaxKind.CollectionInitializerExpression)) 2878if (token.Parent.Parent is ArgumentSyntax { RefOrOutKeyword.RawKind: (int)SyntaxKind.OutKeyword }) 2914if (name.Parent != null) 2916switch (name.Parent.Kind()) 2919return ((QualifiedNameSyntax)name.Parent).Right == name; 2921return ((AliasQualifiedNameSyntax)name.Parent).Name == name; 2923return ((MemberAccessExpressionSyntax)name.Parent).Name == name; 2957block.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.CatchClause) 3001targetToken.Parent is BaseListSyntax { Parent: TypeDeclarationSyntax }; 3034token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression && 3041token.Parent?.Parent is DeclarationPatternSyntax declarationExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (1)
20if (withElement?.Parent is not CollectionExpressionSyntax collectionExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
353var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.cs (3)
132!argument.Parent.IsKind(SyntaxKind.ThisConstructorInitializer) && 193RoslynDebug.AssertNotNull(node.Parent); 196var baseToken = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (9)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 229if (embeddedStatementOwner.Parent is LabeledStatementSyntax) 232embeddedStatementOwner = embeddedStatementOwner.Parent; 254token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 406if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 429RoslynDebug.AssertNotNull(queryBody.Parent); 430return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
46if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 281if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 287if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 293if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 304if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 311if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 322if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 327if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 328argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 329argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 330argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 381if (argument.Parent != null) 383if (argument.Parent.Parent is AttributeSyntax attribute) 521switch (argumentList.Parent) 551if (attributeArgumentList.Parent is AttributeSyntax attribute) 747var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 900if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1218if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1221if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1225SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1243if (expressionElement.Parent is CollectionExpressionSyntax collectionExpression) 1434if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1462else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1472else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1482else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1506var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1575if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1713if (memberDeclarator is { NameEquals: not null, Parent: AnonymousObjectCreationExpressionSyntax anonymousObject }) 1738return nameColon.Parent switch 1754return expressionColon.Parent switch 1806memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1807memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1929if (nameColon.Parent is SubpatternSyntax subpattern) 1939if (expressionColon.Parent is SubpatternSyntax subpattern) 1956if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2114=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2198var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2264variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2332var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\SemanticModelReuse\CSharpSemanticModelReuseLanguageService.cs (6)
31Contract.ThrowIfFalse(accessor.Parent is AccessorListSyntax); 32Contract.ThrowIfFalse(accessor.Parent.Parent is BasePropertyDeclarationSyntax); 33return (BasePropertyDeclarationSyntax)accessor.Parent.Parent; 41for (SyntaxNode? previous = null, current = node; current != null; previous = current, current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
Microsoft.CodeAnalysis.CSharp.Features (849)
AddImport\CSharpAddImportFeatureService.cs (12)
39=> node.GetAncestor<UsingDirectiveSyntax>()?.Parent is CompilationUnitSyntax; 55if (node.Parent is not MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) simpleMemberAccess || 75else if (node.Parent.IsKind(SyntaxKind.CollectionInitializerExpression)) 94var memberAccessName = (node.Parent as MemberAccessExpressionSyntax)?.Name; 95var conditionalAccessName = (((node.Parent as ConditionalAccessExpressionSyntax)?.WhenNotNull as InvocationExpressionSyntax)?.Expression as MemberBindingExpressionSyntax)?.Name; 126if (nameNode?.Parent?.Kind() is not SyntaxKind.SimpleMemberAccessExpression and not SyntaxKind.MemberBindingExpression) 129var memberAccess = nameNode.Parent as MemberAccessExpressionSyntax; 130var memberBinding = nameNode.Parent as MemberBindingExpressionSyntax; 131if (memberAccess?.Parent?.Kind() is SyntaxKind.SimpleMemberAccessExpression or SyntaxKind.ElementAccessExpression || 132memberBinding?.Parent?.Kind() is SyntaxKind.SimpleMemberAccessExpression or SyntaxKind.ElementAccessExpression) 170node.AncestorsAndSelf().Any(n => n is QueryExpressionSyntax && !(n.Parent is QueryContinuationSyntax)); 623if (node.Parent.IsKind(SyntaxKind.CollectionInitializerExpression))
BraceCompletion\CurlyBraceCompletionService.cs (2)
150var currentTokenParentParent = currentToken.Parent?.Parent; 206var parentKind = node?.Parent?.Kind();
BraceCompletion\ParenthesisBraceCompletionService.cs (2)
52for (var currentNode = token.Parent.Parent; currentNode != null; currentNode = currentNode.Parent)
ChangeSignature\ChangeSignatureFormattingRule.cs (2)
40if (node.Parent != null) 42var baseToken = node.Parent.GetFirstToken();
ChangeSignature\CSharpChangeSignatureService.cs (1)
197for (var current = node; current != null; current = current.Parent)
CodeFixes\Suppression\CSharpSuppressionCodeFixProvider.cs (1)
216return attributeSyntax.Parent is AttributeListSyntax attributeList && attributeList.Attributes.Count == 1;
CodeLens\CSharpCodeLensDisplayInfoService.cs (8)
54node = node.Parent; 59node = node.Parent; 96if (node.Parent.IsKind(SyntaxKind.AccessorList) && 97node.Parent.Parent.IsKind(SyntaxKind.IndexerDeclaration)) 99return GetDisplayName(semanticModel, node.Parent.Parent); 186scopeNode = scopeNode.Parent;
CodeRefactorings\ConvertLocalFunctionToMethod\CSharpConvertLocalFunctionToMethodCodeRefactoringProvider.cs (2)
40if (localFunction?.Parent is not BlockSyntax parentBlock) 164if (simpleName.Parent is InvocationExpressionSyntax invocation)
CodeRefactorings\InlineMethod\CSharpInlineMethodRefactoringProvider.cs (1)
107return syntaxNode.Parent switch
CodeRefactorings\InlineTemporary\InlineTemporaryCodeRefactoringProvider.cs (28)
56if (variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration || 57variableDeclaration.Parent is not LocalDeclarationStatementSyntax localDeclarationStatement) 110if (identifierNode?.Parent is ArgumentSyntax argument) 115else if (identifierNode.Parent.Kind() is 124else if (identifierNode.Parent is AssignmentExpressionSyntax binaryExpression && 225if (identifier.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: null } anonymousMember) 239else if (identifier.Parent is ArgumentSyntax 241Parent: TupleExpressionSyntax tupleExpression, 259else if (identifier.Parent is SpreadElementSyntax spreadElement && 337var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent; 338var localDeclaration = (LocalDeclarationStatementSyntax)variableDeclaration.Parent; 339var scope = localDeclaration.Parent; 342scope = scope.Parent; 345scope = parentExpressions.LastOrDefault()?.Parent ?? scope; 348scope = scope.Parent; 366var localDeclaration = (LocalDeclarationStatementSyntax)variableDeclaration.Parent; 380var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent; 386var localDeclaration = (LocalDeclarationStatementSyntax)variableDeclaration.Parent; 411var newLocalDeclaration = (LocalDeclarationStatementSyntax)FindDeclarator(newScope).Parent.Parent; 415if (newLocalDeclaration?.Parent is LabeledStatementSyntax labeledStatement) 422if (newLocalDeclaration?.Parent is GlobalStatementSyntax globalStatement) 450var isVar = ((VariableDeclarationSyntax)variableDeclarator.Parent).Type.IsVar; 505var parent = node.Parent; 507parent = parent.Parent; 511parent = parent.Parent; 516else if (parent?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 521parent = parent.Parent;
CodeRefactorings\SyncNamespace\CSharpChangeNamespaceService.cs (6)
144RoslynDebug.Assert(nameRef.Parent is object); 145oldNode = nameRef.Parent; 161RoslynDebug.Assert(nameRef.Parent is object); 162oldNode = nameRef.Parent; 175else if (nameRef.Parent is NameMemberCrefSyntax crefName && crefName.Parent is QualifiedCrefSyntax qualifiedCref)
CodeRefactorings\UseExplicitOrImplicitType\AbstractUseTypeCodeRefactoringProvider.cs (6)
95var typeParent = type?.Parent; 99if (type?.Parent is VariableDeclarationSyntax) 100return type.Parent; 106if (type?.Parent is DeclarationExpressionSyntax or VariableDeclarationSyntax) 107return type.Parent; 109if (type?.Parent is ForEachStatementSyntax foreachStatement2 &&
CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (10)
78WhenClauseSyntax { Parent: CasePatternSwitchLabelSyntax switchLabel } whenClause => CombineWhenClauseCondition(switchLabel.Pattern, whenClause.Condition, model), 79WhenClauseSyntax { Parent: SwitchExpressionArmSyntax switchArm } whenClause => CombineWhenClauseCondition(switchArm.Pattern, whenClause.Condition, model), 89WhenClauseSyntax { Parent: CasePatternSwitchLabelSyntax } => true, 90WhenClauseSyntax { Parent: SwitchExpressionArmSyntax } => true, 105if (leftTarget.Parent is IsPatternExpressionSyntax isPatternExpression && 173switch (receiver.GetRequiredParent().Parent) 276ExpressionSyntax constant => originalReceiver.Parent switch 318if (designation is not { Parent: PatternSyntax(not SyntaxKind.ListPattern) containingPattern }) 453var leftIsNullCheck = IsNullCheck(leftTarget.Parent); 454var rightIsNullCheck = IsNullCheck(rightTarget.Parent);
Completion\CompletionProviders\AttributeNamedParameterCompletionProvider.cs (1)
73if (token.Parent!.Parent is not AttributeSyntax attributeSyntax || token.Parent is not AttributeArgumentListSyntax attributeArgumentList)
Completion\CompletionProviders\AwaitCompletionProvider.cs (2)
138if (node?.Parent is AssignmentExpressionSyntax(kind: SyntaxKind.AddAssignmentExpression or SyntaxKind.SubtractAssignmentExpression) assignment) 162if (parent is NameSyntax { Parent: LocalFunctionStatementSyntax localFunction } name &&
Completion\CompletionProviders\CSharpSuggestionModeCompletionProvider.cs (3)
127return token.Parent.Parent is not null and ParenthesizedLambdaExpressionSyntax; 171&& token.Parent.Parent is InvocationExpressionSyntax invocation 216for (var current = patternSyntax; current != null; current = current.Parent as PatternSyntax)
Completion\CompletionProviders\DeclarationName\DeclarationNameInfo.cs (9)
209var argument = token.Parent.Parent as ArgumentSyntax // var is child of ArgumentSyntax, eg. Goo(out var $$ 210?? token.Parent.Parent?.Parent as ArgumentSyntax; // var is child of DeclarationExpression 392v => v.Parent is FieldDeclarationSyntax f ? f.Modifiers : null, 431modifierGetter: v => v.Parent is LocalDeclarationStatementSyntax localDeclaration 470modifierGetter: v => v.Parent is UsingStatementSyntax or ForStatementSyntax 521token.GetAncestor<ParameterSyntax>()?.Parent?.Parent is (kind: SyntaxKind.RecordDeclaration or SyntaxKind.RecordStructDeclaration)) 552parent is TypeArgumentListSyntax { Parent: GenericNameSyntax genericName })
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.cs (2)
304if (parameterSyntax is not { Type: { } parameterType, Parent.Parent: BaseMethodDeclarationSyntax baseMethod })
Completion\CompletionProviders\ExplicitInterfaceMemberCompletionProvider.cs (1)
93ancestor = ancestor.Parent;
Completion\CompletionProviders\ExplicitInterfaceMemberCompletionProvider.ItemGetter.cs (1)
90when node.Parent.IsKind(SyntaxKind.IncompleteMember):
Completion\CompletionProviders\ExplicitInterfaceTypeCompletionProvider.cs (2)
75potentialTypeNode = typeArgumentList.Parent; 81if (typeNode.Parent is TypeSyntax parentType && parentType.Span.End < position)
Completion\CompletionProviders\NamedParameterCompletionProvider.cs (3)
71var parameterLists = GetParameterLists(semanticModel, position, argumentList.Parent!, cancellationToken); 207var baseList = baseType.Parent; 208if (baseList?.Parent is not BaseTypeDeclarationSyntax typeDeclaration)
Completion\CompletionProviders\ObjectAndWithInitializerCompletionProvider.cs (3)
70if (token.Parent.Parent is not ExpressionSyntax expression) 105if (token.Parent == null || token.Parent.Parent == null) 124var parent = token.Parent?.Parent;
Completion\CompletionProviders\PropertySubPatternCompletionProvider.cs (9)
59var propertyPatternType = semanticModel.GetTypeInfo((PatternSyntax)propertyPatternClause.Parent!, cancellationToken).ConvertedType; 185if (tokenBeforeAdjustment.Parent is IdentifierNameSyntax { Parent: NameColonSyntax { Parent: SubpatternSyntax subpattern } }) 192return token.Parent is PropertyPatternClauseSyntax { Parent: PatternSyntax } propertyPatternClause 210while (memberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 212memberAccess = (MemberAccessExpressionSyntax)memberAccess.Parent; 215if (memberAccess is { Parent.Parent: SubpatternSyntax { Parent: PropertyPatternClauseSyntax found } })
Completion\CompletionProviders\SymbolCompletionProvider.cs (1)
113=> context.TargetToken.Parent?.Parent?.IsKind(SyntaxKind.PrimaryConstructorBaseType) is true;
Completion\CompletionProviders\XmlDocCommentCompletionProvider.cs (11)
148token.Parent.Parent.IsParentKind(SyntaxKind.XmlElement)) 161if (token.Parent.Parent is XmlElementSyntax xmlElement) 167token.Parent.Parent!.Parent is XmlElementSyntax nestedXmlElement) 172if (token.Parent.Parent is DocumentationCommentTriviaSyntax || 173(token.Parent.Parent.IsKind(SyntaxKind.XmlEmptyElement) && token.Parent.Parent.Parent is DocumentationCommentTriviaSyntax)) 235(elementName, attributes) = GetElementNameAndAttributes(token.Parent.Parent!); 249(elementName, attributes) = GetElementNameAndAttributes(attributeSyntax.Parent!); 294token.Parent?.Parent is XmlNameAttributeSyntax xmlName)
Completion\KeywordRecommenders\AssemblyKeywordRecommender.cs (3)
22var parentSyntax = attributeList.Parent; 31case BaseTypeDeclarationSyntax baseType when baseType.Parent is CompilationUnitSyntax: 35case IncompleteMemberSyntax incompleteMember when incompleteMember.Parent is CompilationUnitSyntax:
Completion\KeywordRecommenders\BaseKeywordRecommender.cs (2)
49token.Parent.Parent?.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration))
Completion\KeywordRecommenders\FieldKeywordRecommender.cs (4)
46for (var node = targetToken.Parent; node != null; node = node.Parent) 48if (node is ArrowExpressionClauseSyntax { Parent: PropertyDeclarationSyntax }) 51if (node is AccessorDeclarationSyntax { Parent: AccessorListSyntax { Parent: PropertyDeclarationSyntax } })
Completion\KeywordRecommenders\MethodKeywordRecommender.cs (1)
26Parent: PropertyDeclarationSyntax
Completion\KeywordRecommenders\NamespaceKeywordRecommender.cs (3)
113!token.Parent.Parent.IsKind(SyntaxKind.FileScopedNamespaceDeclaration)) 124token.Parent.Parent is not TypeDeclarationSyntax) 140token.Parent.Parent is not TypeDeclarationSyntax)
Completion\KeywordRecommenders\RefKeywordRecommender.cs (3)
149identifier.Parent is TypeConstraintSyntax typeConstraint && typeConstraint.Type == identifier && 150typeConstraint.Parent is TypeParameterConstraintClauseSyntax constraintClause) 251|| parent?.Parent?.Kind() == SyntaxKind.VariableDeclarator;
Completion\KeywordRecommenders\ReturnKeywordRecommender.cs (1)
37token.Parent.Parent is AccessorDeclarationSyntax;
Completion\KeywordRecommenders\StructKeywordRecommender.cs (2)
59refStructConstraint.Parent is AllowsConstraintClauseSyntax allowsClause && 60allowsClause.Parent is TypeParameterConstraintClauseSyntax)
Completion\KeywordRecommenders\ThisKeywordRecommender.cs (1)
32token.Parent is ConstructorInitializerSyntax { Parent: ConstructorDeclarationSyntax constructor } &&
Completion\KeywordRecommenders\WhenKeywordRecommender.cs (1)
29if (pattern?.Parent is SwitchExpressionArmSyntax)
Completion\KeywordRecommenders\WhereKeywordRecommender.cs (2)
63token.Parent.Parent is MethodDeclarationSyntax { TypeParameterList: not null } 73if (baseList?.Parent is TypeDeclarationSyntax typeDecl)
ConvertForEachToFor\CSharpConvertForEachToForCodeRefactoringProvider.cs (1)
50return foreachInfo.ForEachStatement.Parent.IsKind(SyntaxKind.Block);
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.cs (1)
39if (syntaxToRemove is (IfStatementSyntax or BlockSyntax) and { Parent: ElseClauseSyntax elseClause } &&
ConvertLinq\ConvertForEachToLinqQuery\CSharpConvertForEachToLinqQueryProvider.cs (2)
288if (forEachInfo.ForEachStatement?.Parent is BlockSyntax block && 289block.Parent == memberDeclarationSyntax)
ConvertLinq\CSharpConvertLinqQueryToForEachProvider.cs (11)
213var identifier = ((QueryBodySyntax)selectClause.Parent).Continuation.Identifier; 223var parent = _source.WalkUpParentheses().Parent; 263currentNode = currentNode.Parent; 279if (memberAccessExpression.Parent is InvocationExpressionSyntax invocationExpression) 419var invocationParent = invocationExpression.WalkUpParentheses().Parent; 461if (invocationParent?.Parent.Kind() is 466((VariableDeclarationSyntax)invocationParent.Parent.Parent).Variables.Count == 1) 468var variableDeclarator = ((VariableDeclaratorSyntax)invocationParent.Parent); 471((VariableDeclarationSyntax)variableDeclarator.Parent).Type, 945node = node.Parent;
ConvertPrimaryToRegularConstructor\ConvertPrimaryToRegularConstructorCodeRefactoringProvider.cs (5)
228if (initializer.Parent is not PropertyDeclarationSyntax and not VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } }) 276if (initializer.Parent is PropertyDeclarationSyntax propertyDeclaration) 285else if (initializer.Parent is VariableDeclaratorSyntax)
ConvertProgram\ConvertProgramTransform_TopLevelStatements.cs (4)
33var typeDeclaration = (TypeDeclarationSyntax?)methodDeclaration.Parent; 44if (typeDeclaration.Parent is not BaseNamespaceDeclarationSyntax namespaceDeclaration) 110var namespaceDeclaration = typeDeclaration.Parent as BaseNamespaceDeclarationSyntax; 264typeDeclaration.Parent is NamespaceDeclarationSyntax namespaceDeclaration)
ConvertToExtension\ConvertToExtensionCodeRefactoringProvider.cs (2)
78if (methodDeclaration.Parent is not ClassDeclarationSyntax classDeclaration) 89if (classDeclaration.Parent is not BaseNamespaceDeclarationSyntax and not CompilationUnitSyntax)
ConvertToRawString\ConvertInterpolatedStringToRawStringCodeRefactoringProvider.cs (1)
275for (var current = node; current != null; current = current.Parent)
Copilot\CSharpImplementNotImplementedExceptionDiagnosticAnalyzer.cs (2)
106operation.Syntax.Parent is not ArrowExpressionClauseSyntax { Parent: PropertyDeclarationSyntax })
Debugging\CSharpProximityExpressionsService_ExpressionTermCollector.cs (1)
189memberAccessExpression.Parent?.Kind() is not SyntaxKind.SimpleMemberAccessExpression and not SyntaxKind.PointerMemberAccessExpression)
Debugging\CSharpProximityExpressionsService.Worker.cs (12)
81if (block != null && block?.Parent is CatchClauseSyntax catchClause && 91? (BlockSyntax)_parentStatement.Parent 98=> _parentStatement.Parent is BlockSyntax parentBlockOpt && parentBlockOpt.Statements.FirstOrDefault() == _parentStatement; 114if (block != null && block.Parent is MemberDeclarationSyntax memberDeclaration) 120&& _parentStatement.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit } globalStatement 134block.Parent is AccessorDeclarationSyntax && 135block.Parent.Parent is AccessorListSyntax && 136block.Parent.Parent.Parent is IndexerDeclarationSyntax indexerDeclaration)
Diagnostics\Analyzers\CSharpUnboundIdentifiersDiagnosticAnalyzer.cs (1)
29=> node.Parent is InvocationExpressionSyntax invocation && invocation.IsNameOfInvocation();
DocumentationComments\CSharpDocumentationCommentSnippetService.cs (2)
193for (SyntaxNode? current = exceptionType; current != null; current = current?.Parent) 195if (current is not BlockSyntax { Parent: TryStatementSyntax tryStatement } block ||
EditAndContinue\BreakpointSpans.cs (7)
103node = node.Parent; 556if (switchLabel.Parent is not SwitchSectionSyntax switchSection || switchSection.Statements.Count == 0) 774=> declaration.Parent!.Kind() switch 859var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent!; 880var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent!; 964if (expression == null || expression.Parent == null) 969var parent = expression.Parent;
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (91)
126if (current is { Parent.Parent: RecordDeclarationSyntax }) 136Debug.Assert(current.Parent.IsKind(SyntaxKind.VariableDeclaration)); 138switch (current.Parent.Parent!.Kind()) 146current = current.Parent; 151if (current.Parent is (kind: SyntaxKind.PropertyDeclaration or SyntaxKind.IndexerDeclaration)) 160Debug.Assert(current.Parent.IsKind(SyntaxKind.CompilationUnit)); 161declarations = new(current.Parent); 165current = current.Parent; 298node = node.Parent!; 301partnerStatement = partnerStatement.Parent; 375ParameterListSyntax parameters => parameters.Parent!, 391current = current.Parent; 408AccessorDeclarationSyntax { Parent.Parent: IndexerDeclarationSyntax { ParameterList: var list } } => list, 409ArrowExpressionClauseSyntax { Parent: { } memberDecl } => GetDeclarationParameterList(memberDecl), 420(oldBody.Parent.IsKind(SyntaxKind.LocalFunctionStatement) && newBody.Parent.IsKind(SyntaxKind.LocalFunctionStatement))) 441var parent = body.Parent!; 444return parent.IsKind(SyntaxKind.ArrowExpressionClause) && parent.Parent.IsKind(SyntaxKind.LocalFunctionStatement) ? parent.Parent : parent; 642case SyntaxKind.ParameterList when node.Parent is TypeDeclarationSyntax typeDeclaration: 678var parent = statement.Parent; 770if (oldStatement.Parent is UsingStatementSyntax oldUsing) 772return newStatement.Parent is UsingStatementSyntax newUsing && 913=> node is CompilationUnitSyntax ? null : node.Parent!.FirstAncestorOrSelf<BaseTypeDeclarationSyntax>(); 924return declaration.Parent?.Parent is not FieldDeclarationSyntax fieldDeclaration || 932=> declaration.Parent is TypeDeclarationSyntax { ParameterList: var parameterList } and not ExtensionBlockDeclarationSyntax && parameterList == declaration; 1015Contract.ThrowIfNull(declaration.Parent); 1016var recordType = (INamedTypeSymbol?)model.GetDeclaredSymbol(declaration.Parent, cancellationToken); 1018return recordType.InstanceConstructors.Single(ctor => ctor.DeclaringSyntaxReferences is [var syntaxRef] && syntaxRef.GetSyntax(cancellationToken) == declaration.Parent); 1111if (oldNode is ParameterSyntax { Parent.Parent: RecordDeclarationSyntax } || 1112newNode is ParameterSyntax { Parent.Parent: RecordDeclarationSyntax }) 1307Debug.Assert(node.Parent.IsKind(SyntaxKind.AccessorList)); 1309if (HasEdit(editMap, node.Parent, editKind) && !HasEdit(editMap, node.Parent.Parent, editKind)) 1407Contract.ThrowIfNull(node.Parent); 1408node = node.Parent; 1434if (declaration is BaseParameterListSyntax and not { Parent: TypeDeclarationSyntax }) 1436declaration = declaration.Parent; 1442=> node is TypeParameterSyntax ? node.Parent!.Parent! : node!.Parent!; 1671return TryGetDiagnosticSpanImpl(node.Parent!, editKind); 1734return TryGetDiagnosticSpanImpl(node.Parent!, editKind); 1753return TryGetDiagnosticSpanImpl(node.Parent!, editKind); 1877return TryGetDiagnosticSpanImpl(queryBody.Clauses.FirstOrDefault() ?? queryBody.Parent!, editKind); 2050return TryGetDisplayNameImpl(node.Parent!, editKind); 2081if (node.Parent!.Parent!.IsKind(SyntaxKind.PropertyDeclaration)) 2087RoslynDebug.Assert(node.Parent.Parent.IsKind(SyntaxKind.IndexerDeclaration)); 2093if (node.Parent!.Parent!.IsKind(SyntaxKind.PropertyDeclaration)) 2099RoslynDebug.Assert(node.Parent.Parent.IsKind(SyntaxKind.IndexerDeclaration)); 2108return node.Parent!.Kind() switch 2126return node.Parent is TypeDeclarationSyntax ? FeaturesResources.constructor : null; 2272RoslynDebug.Assert(((LocalDeclarationStatementSyntax)node.Parent!.Parent!).AwaitKeyword.IsKind(SyntaxKind.AwaitKeyword)); 2421if (node.IsParentKind(SyntaxKind.CompilationUnit) || node.Parent.IsParentKind(SyntaxKind.CompilationUnit)) 2452if (oldNode.IsParentKind(SyntaxKind.CompilationUnit) || oldNode.Parent.IsParentKind(SyntaxKind.CompilationUnit)) 2475if (newNode.IsParentKind(SyntaxKind.CompilationUnit) || newNode.Parent.IsParentKind(SyntaxKind.CompilationUnit)) 2610RoslynDebug.Assert(current.Parent is object); 2611RoslynDebug.Assert(current.Parent.Kind() == SyntaxKind.TryStatement); 2612current = current.Parent; 2630Debug.Assert(current.Parent != null); 2631current = current.Parent; 2715tryStatement = (TryStatementSyntax)node.Parent!; 2756RoslynDebug.Assert(node.Parent is object); 2757switch (node.Parent.Kind()) 2776node = node.Parent; 2810return awaitExpression.Parent!.Parent!.Parent == containingStatementPart; 2815return awaitExpression.Parent!.Parent!.Parent!.Parent == containingStatementPart; 2883if (oldActiveStatement.Parent!.Parent!.Parent is not SwitchStatementSyntax oldSwitch) 2889var newSwitch = (SwitchStatementSyntax)newActiveStatement.Parent!.Parent!.Parent!; 2979node = node.Parent;
EditAndContinue\DeclarationBody\CSharpLambdaBody.cs (1)
32IsAsync: SyntaxUtilities.IsAsyncDeclaration(node.Parent!),
EditAndContinue\DeclarationBody\FieldWithInitializerDeclarationBody.cs (2)
30=> (BaseFieldDeclarationSyntax)variableDeclarator.Parent!.Parent!;
EditAndContinue\DeclarationBody\SimpleMemberBody.cs (1)
26IsAsync: SyntaxUtilities.IsAsyncDeclaration(Node.Parent!),
EditAndContinue\SyntaxComparer.cs (26)
247if (node != null && node.Parent.IsKind(SyntaxKind.ForStatement) && node is ExpressionSyntax) 469if (node == null || node.Parent.IsKind(SyntaxKind.QueryExpression)) 635if (node?.Parent is (kind: SyntaxKind.PropertyDeclaration or SyntaxKind.IndexerDeclaration)) 679if (node is { Parent: { } parent } && parent.IsParentKind(SyntaxKind.CompilationUnit)) 1047if (leftBlock.Parent == null || 1048rightBlock.Parent == null || 1049leftBlock.Parent.IsKind(SyntaxKind.ConstructorDeclaration) || 1050rightBlock.Parent.IsKind(SyntaxKind.ConstructorDeclaration)) 1056if (GetLabel(leftBlock.Parent) != GetLabel(rightBlock.Parent)) 1062switch (leftBlock.Parent.Kind()) 1079distance = GetDistance(leftBlock.Parent, rightBlock.Parent); 1083var leftCatch = (CatchClauseSyntax)leftBlock.Parent; 1084var rightCatch = (CatchClauseSyntax)rightBlock.Parent; 1088var leftTry = (TryStatementSyntax)leftCatch.Parent!; 1089var rightTry = (TryStatementSyntax)rightCatch.Parent!; 1097distance = GetDistance(leftBlock.Parent, rightBlock.Parent); 1118throw ExceptionUtilities.UnexpectedValue(leftBlock.Parent.Kind()); 1127if (leftNode.Parent != null && 1128rightNode.Parent != null && 1129GetLabel(leftNode.Parent) == GetLabel(rightNode.Parent)) 1131parentDistance = ComputeDistance(leftNode.Parent, rightNode.Parent);
EditAndContinue\SyntaxUtilities.cs (14)
39ArrowExpressionClauseSyntax { Parent: (kind: SyntaxKind.PropertyDeclaration) or (kind: SyntaxKind.IndexerDeclaration) } arrowExpression 40=> new PropertyOrIndexerWithExplicitBodyDeclarationBody((BasePropertyDeclarationSyntax)arrowExpression.Parent!), 55VariableDeclaratorSyntax { Parent.Parent: BaseFieldDeclarationSyntax fieldDeclaration, Initializer: { } } variableDeclarator 59ParameterListSyntax { Parent: TypeDeclarationSyntax typeDeclaration and not ExtensionBlockDeclarationSyntax } 69ParameterSyntax { Parent.Parent: RecordDeclarationSyntax } parameterSyntax when symbol is not IParameterSymbol 107if (syntax is ExpressionSyntax { Parent: ArrowExpressionClauseSyntax }) 113if (syntax is ExpressionSyntax { Parent.Parent: VariableDeclaratorSyntax }) 119if (syntax is ExpressionSyntax { Parent.Parent: PropertyDeclarationSyntax }) 217Contract.ThrowIfNull(declaration.Parent); 218declaration = declaration.Parent;
EncapsulateField\CSharpEncapsulateFieldService.cs (5)
65var declaration = root.GetAnnotatedNodes<SyntaxNode>(tempAnnotation).First().Parent as VariableDeclarationSyntax; 69var fieldSyntax = declaration.Parent as FieldDeclarationSyntax; 91declaration = declarator.Parent as VariableDeclarationSyntax; 115declaration = declarator.Parent as VariableDeclarationSyntax; 154=> field.Parent is TypeDeclarationSyntax;
ExtractMethod\CSharpMethodExtractor.Analyzer.cs (3)
69Parent: VariableDeclarationSyntax 71Parent: LocalDeclarationStatementSyntax 73Parent: BlockSyntax { Statements: [.., var lastBlockStatement] },
ExtractMethod\CSharpMethodExtractor.cs (4)
107return globalStatement.Parent; 113currentNode = currentNode.Parent; 139return globalStatement.Parent; 145return globalStatement.Parent;
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.CallSiteContainerRewriter.cs (4)
54private SyntaxNode ContainerOfStatementsOrFieldToReplace => _firstStatementOrFieldToReplace.Parent; 324var firstMemberIndex = newMembers.FindIndex(s => s == (global ? _firstStatementOrFieldToReplace.Parent : _firstStatementOrFieldToReplace)); 327var lastMemberIndex = newMembers.FindIndex(s => s == (global ? _lastStatementOrFieldToReplace.Parent : _lastStatementOrFieldToReplace)); 416if (node != ContainerOfStatementsOrFieldToReplace.Parent)
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.cs (4)
332Contract.ThrowIfFalse(declStatement.Parent.IsStatementContainerNode()); 334return declStatement.Parent; 902var usingKeyword = originalIdentifierToken.Parent?.Parent?.Parent is LocalDeclarationStatementSyntax { UsingKeyword.FullSpan.IsEmpty: false }
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.ExpressionCodeGenerator.cs (10)
45if (expression.Parent != null && 46expression.Parent.Kind() == SyntaxKind.EqualsValueClause && 47expression.Parent.Parent != null && 48expression.Parent.Parent.Kind() == SyntaxKind.VariableDeclarator) 50var name = ((VariableDeclaratorSyntax)expression.Parent.Parent).Identifier.ValueText; 124scope ??= this.SelectionResult.GetContainingScopeOf<ArrowExpressionClauseSyntax>()?.Parent; 142sourceNode.Parent is MemberAccessExpressionSyntax memberAccessExpression && memberAccessExpression.Name == sourceNode,
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.MultipleStatementsCodeGenerator.cs (2)
40foreach (var statement in GetStatementsFromContainer(firstStatementUnderContainer.Parent)) 75GlobalStatementSyntax globalStatement => ((CompilationUnitSyntax)globalStatement.Parent).Members.OfType<GlobalStatementSyntax>().Select(globalStatement => globalStatement.Statement),
ExtractMethod\CSharpSelectionResult.cs (6)
117return constructorInitializer.Parent; 122return field.Parent; 126return primaryConstructorBaseType.Parent; 129Contract.ThrowIfFalse(last.Parent.IsParentKind(SyntaxKind.CompilationUnit)); 130return last.Parent.Parent;
ExtractMethod\CSharpSelectionResult.ExpressionResult.cs (1)
75if (node.Parent is CastExpressionSyntax castExpression)
ExtractMethod\CSharpSelectionValidator.cs (3)
147for (var current = initialSelectionInfo.CommonRoot; current != null; current = current.Parent) 196firstValidNode = (firstValidNode.Parent is ExpressionStatementSyntax) ? firstValidNode.Parent : firstValidNode;
ExtractMethod\CSharpSelectionValidator.Validator.cs (1)
33return block.Parent is BlockSyntax or
ExtractMethod\Extensions.cs (7)
23for (var current = node; current is object; current = current.Parent) 25if (current.Parent != null && 26current.Parent.IsStatementContainerNode()) 36=> (StatementSyntax)((node.Parent is LabeledStatementSyntax) ? node.Parent : node); 252=> node is InitializerExpressionSyntax && node.Parent is EqualsValueClauseSyntax; 255=> node is ExpressionSyntax && node.Parent is CastExpressionSyntax;
FullyQualify\CSharpFullyQualifyService.cs (1)
59simpleName.Parent is UsingDirectiveSyntax { Alias: null, StaticKeyword.RawKind: 0 } usingDirective)
GenerateMember\GenerateVariable\CSharpGenerateVariableService.cs (14)
96if (identifierName.Parent is MemberAccessExpressionSyntax memberAccessExpression && 101else if (identifierName.Parent.Parent is ConditionalAccessExpressionSyntax conditionalAccessExpression && 102conditionalAccessExpression.WhenNotNull == identifierName.Parent) 106else if (identifierName.Parent is MemberBindingExpressionSyntax memberBindingExpression && 107identifierName.Parent.Parent is AssignmentExpressionSyntax assignmentExpression && 117isConditionalAccessExpression = identifierName.Parent.Parent is ConditionalAccessExpressionSyntax; 191if (expression.Parent is (kind: SyntaxKind.NameColon or SyntaxKind.ExpressionColon) && 192expression.Parent.IsParentKind(SyntaxKind.Subpattern)) 209if (node.IsLeftSideOfAssignExpression() && node.Parent.IsParentKind(SyntaxKind.ExpressionStatement)) 211var assignExpression = (AssignmentExpressionSyntax)node.Parent; 212var expressionStatement = (StatementSyntax)assignExpression.Parent;
GenerateType\CSharpGenerateTypeService.cs (36)
48expression.Parent.IsParentKind(SyntaxKind.ArrayCreationExpression); 56if (expression is TypeSyntax typeSyntax && expression.Parent is TypeArgumentListSyntax typeArgumentList) 58var symbolInfo = semanticModel.GetSymbolInfo(typeArgumentList.Parent, cancellationToken); 86if (expression is TypeSyntax { Parent: BaseTypeSyntax { Parent: BaseListSyntax baseList } baseType } && 90if (baseList.Types[0] != expression.Parent) 95return baseList.Parent.Kind() is 101if (expression is TypeSyntax { Parent: TypeConstraintSyntax { Parent: TypeParameterConstraintClauseSyntax constraintClause } typeConstraint }) 144nameOrMemberAccessExpression = generateTypeServiceStateOptions.NameOrMemberAccessExpression = (ExpressionSyntax)simpleName.Parent; 165if (nameOrMemberAccessExpression.Parent is BaseTypeSyntax baseType && 166nameOrMemberAccessExpression.Parent.IsParentKind(SyntaxKind.BaseList) && 168nameOrMemberAccessExpression.Parent.Parent.IsParentKind(SyntaxKind.EnumDeclaration)) 230simpleName.Parent == token.Parent) 240fieldDeclaration.Parent is CompilationUnitSyntax && 253if (simpleName.Parent is QualifiedNameSyntax parent) 285if (simpleName.Parent is not null and not QualifiedNameSyntax) 298if (nameOrMemberAccessExpression.Parent is not null and QualifiedNameSyntax) 317if ((nameOrMemberAccessExpression.IsKind(SyntaxKind.SimpleMemberAccessExpression) || (nameOrMemberAccessExpression.Parent != null && nameOrMemberAccessExpression.IsParentKind(SyntaxKind.SimpleMemberAccessExpression))) 329outerMostMemberAccessExpression = (ExpressionSyntax)nameOrMemberAccessExpression.Parent; 356if (nameOrMemberAccessExpression.Parent is ObjectCreationExpressionSyntax objectCreationExpressionOpt) 385if (nameOrMemberAccessExpression.Parent is VariableDeclarationSyntax 396if (nameOrMemberAccessExpression.Parent is VariableDeclarationSyntax variableDeclaration) 404if (nameOrMemberAccessExpression.Parent is CastExpressionSyntax { Expression: not null } castExpression) 641if (expression.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList }) 643if (baseList.Parent.Kind() is SyntaxKind.InterfaceDeclaration or SyntaxKind.StructDeclaration or SyntaxKind.RecordStructDeclaration) 668node.Parent != null && 669node.Parent is TypeDeclarationSyntax) 671if (node.Parent is TypeDeclarationSyntax typeDecl) 681node.Parent != null && 682node.Parent is TypeDeclarationSyntax) 692node = node.Parent; 763if (propertyName.Parent is AssignmentExpressionSyntax parentAssignment) 769if (propertyName.Parent is IsPatternExpressionSyntax isPatternExpression)
GoToDefinition\CSharpGoToDefinitionSymbolService.cs (2)
91for (var current = node; current is not null && current != corresponding.Syntax; current = current.Parent) 113node = node.Parent;
Highlighting\KeywordHighlighters\IfStatementHighlighter.cs (1)
34if (ifStatement.Parent.Kind() != SyntaxKind.ElseClause)
Highlighting\KeywordHighlighters\LoopHighlighter.cs (1)
41var labelName = (node.Parent as LabeledStatementSyntax)?.Identifier.ValueText;
Highlighting\KeywordHighlighters\SwitchStatementHighlighter.cs (1)
39var labelName = (switchStatement.Parent as LabeledStatementSyntax)?.Identifier.ValueText;
ImplementInterface\AbstractChangeImplementationCodeRefactoringProvider.cs (1)
158for (var node = token.Parent; node != null; node = node.Parent)
ImplementInterface\CSharpImplementExplicitlyCodeRefactoringProvider.cs (3)
97? identifierName.Parent 101if (syntaxFacts.IsInvocationExpression(node.Parent)) 102node = node.Parent;
InitializeParameter\CSharpInitializeMemberFromPrimaryConstructorParameterCodeRefactoringProvider.cs (2)
47if (selectedParameter.Parent is not ParameterListSyntax { Parent: TypeDeclarationSyntax(kind: SyntaxKind.ClassDeclaration or SyntaxKind.StructDeclaration) typeDeclaration })
InlineHints\CSharpInlineTypeHintsService.cs (4)
51else if (node is SingleVariableDesignationSyntax { Parent: not DeclarationPatternSyntax and not DeclarationExpressionSyntax } variableDesignation) 57return node.Parent is VarPatternSyntax varPattern 80return parameterNode.Parent?.Parent?.Kind() is SyntaxKind.ParenthesizedLambdaExpression
IntroduceParameter\CSharpIntroduceParameterCodeRefactoringProvider.cs (2)
29=> variableDecl.Parent?.Parent as LocalDeclarationStatementSyntax;
IntroduceUsingStatement\CSharpIntroduceUsingStatementCodeRefactoringProvider.cs (1)
99if (declarationStatement.Parent is SwitchSectionSyntax ||
IntroduceVariable\CSharpIntroduceVariableService_IntroduceLocal.cs (3)
393if (!IsBlockLike(statement.Parent)) 405innermostCommonBlock = statement.Parent; 432if (statement is IfStatementSyntax { Parent: ElseClauseSyntax })
IntroduceVariable\CSharpIntroduceVariableService_IntroduceQueryLocal.cs (1)
87var oldQuery = (QueryBodySyntax)oldClause.Parent;
IntroduceVariable\CSharpIntroduceVariableService.cs (1)
62for (SyntaxNode? node = expression; node != null; node = node.Parent)
IntroduceVariable\CSharpIntroduceVariableService.Rewriter.cs (1)
65node.Parent is TupleExpressionSyntax)
InvertIf\CSharpInvertIfCodeRefactoringProvider.cs (1)
42=> ifNode?.Parent is (kind: SyntaxKind.Block or SyntaxKind.SwitchSection);
MoveToNamespace\CSharpMoveToNamespaceService.cs (1)
24ParameterListSyntax parameterList => parameterList.Parent as BaseTypeDeclarationSyntax,
QuickInfo\CSharpDiagnosticAnalyzerQuickInfoProvider.cs (3)
50{ Parent: PragmaWarningDirectiveTriviaSyntax } node => node, 93Parent: AttributeArgumentListSyntax 96Parent: AttributeSyntax
QuickInfo\CSharpSemanticQuickInfoProvider.cs (5)
62token.Parent?.Parent.IsKind(SyntaxKind.ElementAccessExpression) == true) 64found = token.Parent.Parent; 109node = node.Parent; 202if (node is IdentifierNameSyntax { IsVar: true, Parent: VariableDeclarationSyntax { Variables: [var declarator] } }) 280Parent: VariableDeclarationSyntax { Type.IsVar: true },
QuickInfo\CSharpSyntacticQuickInfoProvider.cs (2)
80spanStart = parent.Parent!.SpanStart; 90&& node.Parent?.Kind() is SyntaxKind.Block or SyntaxKind.SwitchSection or SyntaxKind.GlobalStatement;
RemoveUnusedVariable\CSharpRemoveUnusedVariableCodeFixProvider.cs (5)
36node = node.Parent; 39var parent = node.Parent; 61RemoveNode(editor, node.IsParentKind(SyntaxKind.GlobalStatement) ? node.Parent : node, blockFacts); 73if (node.Parent?.Parent is not LocalDeclarationStatementSyntax localDeclaration)
Rename\CSharpRenameIssuesService.cs (2)
62if (parent?.Parent is VariableDeclarationSyntax varDecl) 66else if (parent?.Parent is FieldDeclarationSyntax fieldDecl)
ReplaceMethodWithProperty\CSharpReplaceMethodWithPropertyService.cs (1)
399if (nameNode.IsAnyMemberAccessExpressionName() && nameNode.Parent == invocationExpression)
ReplacePropertyWithMethods\CSharpReplacePropertyWithMethodsService.cs (1)
307=> identifierName.Parent as NameMemberCrefSyntax;
SignatureHelp\AttributeSignatureHelpProvider.cs (1)
62token.Parent.Parent is AttributeSyntax;
SignatureHelp\ConstructorInitializerSignatureHelpProvider.cs (1)
82var currentConstructor = semanticModel.GetDeclaredSymbol(constructorInitializer.Parent!, cancellationToken);
SignatureHelp\ElementAccessExpressionSignatureHelpProvider.cs (8)
116if (expression.Parent is ConditionalAccessExpressionSyntax conditional) 155if (expression.Parent is ConditionalAccessExpressionSyntax) 283token.Parent.Parent is ElementAccessExpressionSyntax; 295openBracket.Parent.Parent is ElementAccessExpressionSyntax or ElementBindingExpressionSyntax); 336Contract.ThrowIfFalse(openBracket.Parent is ArrayRankSpecifierSyntax && openBracket.Parent.Parent is ArrayTypeSyntax); 367token.Parent.Parent is ElementBindingExpressionSyntax && 368token.Parent.Parent.Parent is ConditionalAccessExpressionSyntax;
SignatureHelp\GenericNameFullyWrittenSignatureHelpProvider.cs (3)
48token.Parent.Parent is GenericNameSyntax; 60Contract.ThrowIfFalse(lessThanToken.Parent is TypeArgumentListSyntax && lessThanToken.Parent.Parent is GenericNameSyntax); 61return SignatureHelpUtilities.GetSignatureHelpSpan(((GenericNameSyntax)lessThanToken.Parent.Parent).TypeArgumentList);
SignatureHelp\PrimaryConstructorBaseTypeSignatureHelpProvider.cs (2)
76var baseList = baseTypeSyntax.Parent as BaseListSyntax; 77if (baseList?.Parent is not BaseTypeDeclarationSyntax namedTypeSyntax)
SignatureHelp\SignatureHelpUtilities.cs (5)
108if (parenthesizedExpr.Parent is ArgumentSyntax) 110var parent = parenthesizedExpr.Parent; 111var grandParent = parent.Parent; 112if (grandParent is ArgumentListSyntax && grandParent.Parent is TSyntaxNode) 140token.Parent.Parent is TSyntaxNode;
SignatureHelp\WithElementSignatureHelpProvider.cs (1)
56if (withElement?.Parent is not CollectionExpressionSyntax collectionExpression)
Snippets\CSharpForEachLoopSnippetProvider.cs (2)
47if (token is { RawKind: (int)SyntaxKind.AwaitKeyword, Parent: ExpressionSyntax { Parent: ExpressionStatementSyntax } } || 48token is { RawKind: (int)SyntaxKind.IdentifierToken, ValueText: "await", Parent: IdentifierNameSyntax { Parent: ExpressionStatementSyntax } })
SplitOrMergeIfStatements\CSharpIfLikeStatementGenerator.cs (8)
33if (expression.Parent is IfStatementSyntax ifStatement && ifStatement.Condition == expression) 45if (node is IfStatementSyntax && node.Parent is ElseClauseSyntax) 47parentIfOrElseIf = (IfStatementSyntax)node.Parent.Parent; 78while (ifStatement.Parent is ElseClauseSyntax elseClause) 80ifStatement = (IfStatementSyntax)elseClause.Parent; 158editor.ReplaceNode(elseIfClause.Parent.Parent, (currentNode, _) =>
src\984dec8966cb7923\ConvertSwitchStatementToExpressionDiagnosticAnalyzer.Analyzer.cs (2)
65if (declaration.Parent == node.Parent && declarator.Initializer is null)
src\roslyn\src\Analyzers\CSharp\Analyzers\AddAccessibilityModifiers\CSharpAddAccessibilityModifiers.cs (1)
58if (member.Parent is InterfaceDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (4)
72=> binaryLike.Parent switch 75ConstantPatternSyntax { Parent: ExpressionSyntax expression } => expression, 76ConstantPatternSyntax { Parent: UnaryPatternSyntax { Parent: ExpressionSyntax expression } } => expression,
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredPatternParenthesesDiagnosticAnalyzer.cs (1)
38=> binaryLike.Parent as PatternSyntax;
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
61methodDeclaration.Parent is not TypeDeclarationSyntax containingTypeDeclaration ||
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertTypeofToNameof\CSharpConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
34return node is TypeOfExpressionSyntax { Parent: MemberAccessExpressionSyntax }
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (9)
96if (argumentNode.Parent is not ArgumentListSyntax argumentList) 101var invocationOrCreation = argumentList.Parent; 144var localDeclaration = localDeclarator.Parent as VariableDeclarationSyntax; 145if (localDeclaration?.Parent is not LocalDeclarationStatementSyntax localStatement) 277for (var current = argumentExpression; current != null; current = current.Parent) 280if (current.Parent is LambdaExpressionSyntax lambda && current == lambda.Body) 284if (current.Parent is LocalFunctionStatementSyntax localFunction && current == localFunction.ExpressionBody) 288if (current.Parent is SwitchExpressionArmSyntax switchArm && current == switchArm.Expression) 323? current.Parent
src\roslyn\src\Analyzers\CSharp\Analyzers\NamingStyle\CSharpNamingStyleDiagnosticAnalyzer.cs (2)
33Parent: ParameterListSyntax 35Parent: RecordDeclarationSyntax
src\roslyn\src\Analyzers\CSharp\Analyzers\NewLines\ArrowExpressionClausePlacement\ArrowExpressionClausePlacementDiagnosticAnalyzer.cs (1)
73if (arrowExpressionClause.Parent is AccessorDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\NewLines\EmbeddedStatementPlacement\EmbeddedStatementPlacementDiagnosticAnalyzer.cs (2)
92var parent = statement.Parent; 115var blockParent = parent.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\QualifyMemberAccess\CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (2)
44if (node.Parent is AssignmentExpressionSyntax { Parent: InitializerExpressionSyntax(SyntaxKind.ObjectInitializerExpression), Left: var left } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (3)
54if (discard.Parent is DeclarationPatternSyntax declarationPattern) 58if (declarationPattern.Parent is not IsPatternExpressionSyntax) 80else if (discard.Parent is RecursivePatternSyntax recursivePattern)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (2)
261node1 = node1.Parent; 262node2 = node2.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\NullableImpactingSpanWalker.cs (4)
66if (node?.Parent is QualifiedNameSyntax qualifiedName 85if (node?.Parent is BaseNamespaceDeclarationSyntax) 91if (node.IsParentKind(SyntaxKind.NameEquals) && node.Parent.IsParentKind(SyntaxKind.UsingDirective)) 109while (node.Parent is QualifiedNameSyntax qualifiedName
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (2)
57switch (parenthesizedExpression.Parent) 82case ConstantPatternSyntax { Parent: IsPatternExpressionSyntax isPatternExpression }:
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (2)
53if (parenthesizedPattern.Parent is not PatternSyntax) 62if (parenthesizedPattern.Parent is not BinaryPatternSyntax parentPattern)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnreachableCode\RemoveUnreachableCodeHelpers.cs (2)
16switch (firstUnreachableStatement.Parent) 27if (globalStatement.Parent is not CompilationUnitSyntax compilationUnit)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (2)
54=> variableDeclarator.Parent is VariableDeclarationSyntax 56Parent: FieldDeclarationSyntax { Declaration.Variables.Count: 0 } or
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (2)
69var statementAncestor = unusedSymbolWriteOperation.Syntax.FirstAncestorOrSelf<StatementSyntax>()?.Parent; 103if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationHelpers.cs (1)
23ConditionalExpressionSyntax { Parent: ParenthesizedExpressionSyntax parent } => parent,
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorDiagnosticAnalyzer.cs (2)
85if (accessorDeclaration is { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax containingPropertyDeclaration } containingAccessorList } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
25Parent: PropertyPatternClauseSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForArrayDiagnosticAnalyzer.cs (4)
150var isConcreteOrImplicitArrayCreation = initializer.Parent is ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax; 153if (!isConcreteOrImplicitArrayCreation && initializer.Parent is not EqualsValueClauseSyntax) 175var matches = initializer.Parent switch 189Debug.Assert(initializer.Parent is EqualsValueClauseSyntax);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (6)
136if (invocationExpression.Parent is not EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax localDeclarationStatement } } declarator }) 216identifierName.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 218memberAccess.Parent is InvocationExpressionSyntax { ArgumentList.Arguments.Count: 0 } invocationExpression &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (1)
41: memberAccess.Parent is InvocationExpressionSyntax invocation && IsCollectionEmptyAccess(semanticModel, invocation, cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs (3)
79if (memberAccess.Parent is not InvocationExpressionSyntax invocation) 87if (invocation.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax parentInvocation } parentMemberAccess &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (17)
104if (topMostExpression.Parent is CastExpressionSyntax { Type: IdentifierNameSyntax }) 408if (locallyScopedExpression.Parent is ExpressionStatementSyntax) 413if (locallyScopedExpression.Parent is ReturnStatementSyntax or ArrowExpressionClauseSyntax) 416if (locallyScopedExpression.Parent is ArgumentSyntax argument) 426if (locallyScopedExpression.Parent is MemberAccessExpressionSyntax memberAccess && 429if (memberAccess.Parent is InvocationExpressionSyntax invocationExpression) 451if (locallyScopedExpression.Parent is ElementAccessExpressionSyntax elementAccess) 465if (locallyScopedExpression.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax declarator }) 474if (locallyScopedExpression.Parent is AssignmentExpressionSyntax assignment && 554if (argument.Parent is not BaseArgumentListSyntax { Parent: ExpressionSyntax parentInvocation } argumentList) 672Contract.ThrowIfFalse(originalInitializer.Parent 796if (expression.WalkUpParentheses().Parent is not EqualsValueClauseSyntax 798Parent: VariableDeclaratorSyntax 801Parent.Parent: LocalDeclarationStatementSyntax localDeclarationStatement
src\roslyn\src\Analyzers\CSharp\Analyzers\UseConditionalExpression\CSharpUseConditionalExpressionForReturnDiagnosticAnalyzer.cs (1)
39if (block.Syntax.Parent is UnsafeStatementSyntax or CheckedStatementSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (3)
103if (variableDeclaration is not { Parent: LocalDeclarationStatementSyntax localDeclaration, Variables: [{ Initializer.Value: { } initializerValue } declarator] }) 110var searchScope = localDeclaration.Parent is GlobalStatementSyntax globalStatement 256if (identifierName.Parent is not MemberAccessExpressionSyntax memberAccess)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseImplicitObjectCreation\CSharpUseImplicitObjectCreationDiagnosticAnalyzer.cs (16)
87if (objectCreation.Parent is EqualsValueClauseSyntax 89Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: false } variableDeclaration } 102else if (objectCreation.Parent.IsKind(SyntaxKind.ArrowExpressionClause)) 104(typeNode, isAsync) = objectCreation.Parent.Parent switch 111AccessorDeclarationSyntax(SyntaxKind.GetAccessorDeclaration) { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax baseProperty } } => (baseProperty.Type, false), 115else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ObjectCreationExpressionSyntax { Type: var collectionType } }) 124else if (objectCreation.Parent is InitializerExpressionSyntax(kind: SyntaxKind.ArrayInitializerExpression) 126Parent: EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax arrayVariableDeclaration } } 131else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ArrayCreationExpressionSyntax { Type: var arrayCreationType } })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseInferredMemberName\CSharpUseInferredMemberNameDiagnosticAnalyzer.cs (2)
34if (nameColon.Parent is not ArgumentSyntax argument) 63if (nameEquals.Parent is not AnonymousObjectMemberDeclaratorSyntax anonCtor)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLabeledJumpStatements\CSharpUseLabeledJumpStatementsHelpers_FlagVariable.cs (19)
46Parent: BlockSyntax enclosingBlock, 147if (innerLoop.AncestorsAndSelf().FirstOrDefault(n => n.Parent == targetBody) is not StatementSyntax siteStatement) 156if (reset.Parent != targetBody || targetBody.Statements.IndexOf(reset) >= siteIndex) 172for (var current = targetLoop.Parent; current != null; current = current.Parent) 203var statementInBlock = current.Parent is LabeledStatementSyntax labeled ? labeled : current; 204if (statementInBlock.Parent is not BlockSyntax { Parent: StatementSyntax containingLoop } containingBlock || 253if (breakStatement is not { Name: null, Parent: BlockSyntax block }) 274Parent: VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax declaration } 307if (name.Parent is not AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) 310Parent: ExpressionStatementSyntax { Parent: BlockSyntax block } assignmentStatement, 333if (name.Parent is not AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) 336Parent: ExpressionStatementSyntax resetStatement, 350if (name.Parent is not IfStatementSyntax { Else: null } candidate || candidate.Condition != name) 365for (var current = node.Parent; current != null; current = current.Parent)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLabeledJumpStatements\CSharpUseLabeledJumpStatementsHelpers.cs (5)
95Parent: BlockSyntax { Parent: StatementSyntax candidateLoop, Statements: [.., var lastStatement] }, 181for (var current = jump; current != null && current != target; current = current.Parent) 192for (var current = jump.Parent; current != null && current != target; current = current.Parent)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (16)
94if (localDeclaration.Parent is BlockSyntax block) 96else if (localDeclaration.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit }) 221Parent: EqualsValueClauseSyntax 223Parent: VariableDeclaratorSyntax 225Parent: VariableDeclarationSyntax 227Parent: LocalDeclarationStatementSyntax declaration, 272if (nodeToCheck.Parent is BinaryExpressionSyntax) 279if (nodeToCheck.Parent is InvocationExpressionSyntax invocationExpression) 283else if (nodeToCheck.Parent is MemberAccessExpressionSyntax memberAccessExpression) 285if (memberAccessExpression is { Parent: InvocationExpressionSyntax explicitInvocationExpression, Name.Identifier.ValueText: WellKnownMemberNames.DelegateInvokeName }) 357if (anonymousFunction?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) { Parent: ExpressionStatementSyntax expressionStatement } assignment) 363if (expressionStatement.Parent is BlockSyntax block) 369else if (expressionStatement.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit } globalStatement)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNameofInNullableAttribute\CSharpUseNameofInNullableAttributeDiagnosticAnalyzer.cs (4)
113var attributeList = attribute.Parent as AttributeListSyntax; 114var container = attributeList?.Parent; 118var parameterList = container.Parent as BaseParameterListSyntax; 119container = parameterList?.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
125return node.WalkUpParentheses().Parent switch
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (1)
328if (statement.Parent is BlockSyntax block)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (5)
104if (declarator is not { Parent.Parent: LocalDeclarationStatementSyntax localStatement }) 112var enclosingBlock = localStatement.Parent; 241if (identifierName.Parent is AssignmentExpressionSyntax assignmentExpression && 248else if (identifierName.Parent is ArgumentSyntax argument &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (3)
95var ifStatementScope = ifStatement.Parent.IsKind(SyntaxKind.Block) 96? ifStatement.Parent 173if (!isExpression.Parent.IsKind(SyntaxKind.IfStatement, out ifStatement))
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (5)
29if (asExpression.Parent is not ParenthesizedExpressionSyntax 32Parent: ConditionalAccessExpressionSyntax parentConditionalAccess 54if (conditionalAccessExpression.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) parentBinaryExpression1 && 63else if (conditionalAccessExpression.Parent is 81else if (conditionalAccessExpression.Parent is IsPatternExpressionSyntax parentIsPatternExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (3)
125else if (nodeToRemove is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax field } }) 315if (primaryConstructorDeclaration.Parent is not TypeDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (2)
116if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (2)
104else if (elements is [{ Syntax.Parent: ArgumentSyntax }, ..]) 109else if (elements is [{ Syntax.Parent: (kind: SyntaxKind.CollectionInitializerExpression) }, ..])
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\ArgumentFixer.cs (1)
31var newInvocation = newArgumentList.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\AttributeArgumentFixer.cs (1)
31var newAttribute = (AttributeSyntax)newArgumentList.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\CSharpAddExplicitCastCodeFixProvider.cs (4)
71&& targetArgument.Parent is ArgumentListSyntax argumentList 72&& argumentList.Parent is SyntaxNode invocationNode) 79&& targetAttributeArgument.Parent is AttributeArgumentListSyntax attributeArgumentList 80&& attributeArgumentList.Parent is AttributeSyntax attributeNode)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddInheritdoc\AddInheritdocCodeFixProvider.cs (4)
49if (node.IsKind(SyntaxKind.VariableDeclarator) && node is not { Parent.Parent: EventFieldDeclarationSyntax }) 76if (node is VariableDeclaratorSyntax { Parent.Parent: EventFieldDeclarationSyntax eventField })
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AbstractAssignOutParametersCodeFixProvider.cs (5)
67return location.Parent is BlockSyntax 68|| location.Parent is SwitchSectionSyntax 69|| location.Parent.IsEmbeddedStatementOwner(); 74return location.Parent is ArrowExpressionClauseSyntax or LambdaExpressionSyntax; 82for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AssignOutParametersAtStartCodeFixProvider.cs (2)
40statement.Parent is BlockSyntax block && 42block.Parent == container)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertNamespace\ConvertNamespaceTransform.cs (1)
138if (stringLiteral.GetRequiredParent() is not InterpolatedStringTextSyntax { Parent: InterpolatedStringExpressionSyntax { StringStartToken: (kind: SyntaxKind.InterpolatedMultiLineRawStringStartToken) } interpolatedString })
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.cs (2)
88if (declaratorToRemoveNode.Parent is VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax declStatement, Variables.Count: 1 })
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordEngine.cs (4)
184(expression.Parent as AssignmentExpressionSyntax)?.Parent as ExpressionStatementSyntax) 502.Select(referenceLocations => referenceLocations.Location.FindNode(cancellationToken).Parent) 521expression => objectCreationExpression.Initializer!.Expressions.IndexOf(expression.Parent));
src\roslyn\src\Analyzers\CSharp\CodeFixes\FixIncorrectConstraint\CSharpFixIncorrectConstraintCodeFixProvider.cs (1)
41if (constraint.Parent is not TypeParameterConstraintClauseSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (2)
91if (fullName.Parent is ObjectCreationExpressionSyntax objectCreationExpression) 123if (fullName.Parent is AttributeSyntax attribute)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateDefaultConstructors\CSharpGenerateDefaultConstructorsService.cs (3)
44if (node is { Parent: BaseTypeSyntax { Parent: BaseListSyntax { Types: [var firstType, ..] } baseList } }) 46if (baseList.Parent is TypeDeclarationSyntax(SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration) parentTypeDecl &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateEnumMember\CSharpGenerateEnumMemberService.cs (1)
34simpleNameOrMemberAccessExpression = identifierName.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == identifierName
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (1)
30node.Parent is AssignmentExpressionSyntax or EqualsValueClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (4)
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\ImplementInterface\CSharpImplementInterfaceService.cs (4)
37=> type?.Parent is BaseTypeSyntax { Parent: BaseListSyntax } baseTypeParent && baseTypeParent.Type == type; 56if (node is TypeSyntax interfaceNode && interfaceNode.Parent is BaseTypeSyntax baseType && 57baseType.Parent is BaseListSyntax baseList &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (5)
55declarationsToRemove.Add((LocalDeclarationStatementSyntax)diagnostic.AdditionalLocations[0].FindNode(cancellationToken).Parent.Parent); 108var declaration = (VariableDeclarationSyntax)declarator.Parent; 117var localDeclarationStatement = (LocalDeclarationStatementSyntax)declaration.Parent; 175editor.RemoveNode(localDeclarationStatement.Parent is GlobalStatementSyntax globalStatement
src\roslyn\src\Analyzers\CSharp\CodeFixes\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessCodeFixProvider.cs (1)
96if (ifStatement.Parent.IsKind(SyntaxKind.ElseClause) &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (4)
88if (node.Parent?.Parent is PropertyDeclarationSyntax oldAccessor) 93if (node.Parent?.Parent is IndexerDeclarationSyntax oldIndexer)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\MakeLocalFunctionStaticCodeFixHelper.cs (1)
72if (identifierNode.Parent is InvocationExpressionSyntax invocation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (4)
49if (node is not (PropertyDeclarationSyntax or VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax })) 131if (memberDeclarator is VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax fieldDeclaration })
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberStatic\CSharpMakeMemberStaticCodeFixProvider.cs (4)
31if (node.IsKind(SyntaxKind.VariableDeclarator) && node.Parent is VariableDeclarationSyntax { Parent: FieldDeclarationSyntax or EventFieldDeclarationSyntax }) 33memberDeclaration = node.Parent.Parent;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStatementAsynchronous\CSharpMakeStatementAsynchronousCodeFixProvider.cs (2)
96if (node.Parent is (kind: 101return node.Parent;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyCodeFixProvider.cs (2)
52else if (declaration is AccessorDeclarationSyntax { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax property } accessorList } accessor)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Nullable\CSharpDeclareAsNullableCodeFixProvider.cs (20)
59if (node.Parent is ArgumentSyntax) 63if (node.Parent is AssignmentExpressionSyntax) 116if (node.Parent is (kind: SyntaxKind.ReturnStatement or SyntaxKind.YieldReturnStatement)) 161if (node.Parent?.Parent?.Parent is VariableDeclarationSyntax variableDeclaration) 170if (node.Parent is AssignmentExpressionSyntax assignment) 176if (syntax is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Variables.Count: 1 } declaration }) 187if (syntax is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Variables.Count: 1 } declaration }) 212if (node.Parent is ArgumentSyntax argument && argument.Parent?.Parent is InvocationExpressionSyntax invocation) 239if (node.Parent?.Parent is PropertyDeclarationSyntax propertyDeclaration) 249if (node is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 } declarationSyntax }) 253if (node.Parent?.Parent is ParameterSyntax optionalParameter) 261node.Parent?.Parent is MethodDeclarationSyntax arrowMethod)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationCodeFixProvider.cs (2)
42switch (discard.Parent) 45if (declarationPattern.Parent is IsPatternExpressionSyntax isPattern)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnreachableCode\CSharpRemoveUnreachableCodeCodeFixProvider.cs (1)
80if (statement.Parent?.Kind()
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedLocalFunction\CSharpRemoveUnusedLocalFunctionCodeFixProvider.cs (1)
51editor.RemoveNode(localFunction.Parent is GlobalStatementSyntax globalStatement ? globalStatement : localFunction);
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (4)
42=> declarator.Parent?.Parent as LocalDeclarationStatementSyntax; 56variableDeclarator.Parent is VariableDeclarationSyntax parent) 212if (originalCompoundAssignment.Parent.IsKind(SyntaxKind.ExpressionStatement))
src\roslyn\src\Analyzers\CSharp\CodeFixes\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorCodeFixProvider.cs (2)
51if (accessor.Parent?.Parent is PropertyDeclarationSyntax containingProperty &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseAutoProperty\UseAutoPropertyRewriter.cs (2)
45if (node.Parent is AssignmentExpressionSyntax 47Parent: InitializerExpressionSyntax { RawKind: (int)SyntaxKind.ObjectInitializerExpression }
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (3)
612Contract.ThrowIfNull(node.Parent); 656for (var current = node; current != null; current = current.Parent) 879Contract.ThrowIfNull(expression.Parent);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider_CollectionInitializer.cs (1)
98Contract.ThrowIfNull(expression.Parent);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundAssignmentCodeFixProvider.cs (1)
52if (currentAssignment.Parent is ForStatementSyntax forStatement &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
47if (ifStatement.Parent is ElseClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForReturnCodeFixProvider.cs (1)
34if (ifStatement.Parent is ElseClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExpressionBody\UseExpressionBodyCodeFixProvider.cs (1)
89if (declaration.Parent is AccessorListSyntax accessorList)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (4)
65var declarationContext = node.Parent; 69declarationContext = declarationContext.Parent; 99RoslynDebug.AssertNotNull(typeSyntax.Parent); 101var tupleTypeSymbol = GetConvertedType(semanticModel, typeSyntax.Parent, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (1)
233while (expr?.Parent is CheckedExpressionSyntax parent)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLabeledJumpStatements\CSharpUseLabeledJumpStatementsCodeFixProvider.cs (3)
181=> (loop.Parent as LabeledStatementSyntax)?.Identifier.Text; 220if (loop.Parent is LabeledStatementSyntax) 231editor.ReplaceNode(loop, loop.Parent is BlockSyntax or SwitchSectionSyntax or GlobalStatementSyntax
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (1)
171editor.RemoveNode(anonymousFunctionStatement.Parent is GlobalStatementSyntax globalStatement
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
47var elseClauseSyntax = (ElseClauseSyntax)ifStatement.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (4)
74if (statement.Parent is BlockSyntax or SwitchSectionSyntax) 76statementParentScopes.Add(statement.Parent); 109if (declarator.Parent is VariableDeclarationSyntax declaration && 110declaration.Parent is LocalDeclarationStatementSyntax localDeclaration &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (2)
283if (nameSyntax.Parent is QualifiedNameSyntax qualifiedNameSyntax) 292else if (nameSyntax.Parent is MemberAccessExpressionSyntax memberAccessExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSimpleUsingStatement\UseSimpleUsingStatementCodeFixProvider.cs (2)
48var blockLikes = topmostUsingStatements.Select(u => u.Parent is GlobalStatementSyntax ? u.Parent.GetRequiredParent() : u.GetRequiredParent()).ToSet();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (4)
88if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } variableDeclaration) 139if (expression.Parent is MemberAccessExpressionSyntax memberAccess && 145if (expression.Parent is not AssignmentExpressionSyntax assignment ||
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseThrowExpression\UseThrowExpressionCodeFixProvider.cs (1)
62if (throwStatementExpression.Parent is ThrowStatementSyntax throwStatement &&
src\roslyn\src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpDeclarationComputer.cs (1)
222if (node.Parent is BasePropertyDeclarationSyntax parentProperty)
src\roslyn\src\Compilers\CSharp\Portable\Syntax\LambdaUtilities.cs (21)
42return !node.Parent.IsKind(SyntaxKind.QueryExpression); 55Debug.Assert(lambdaBody.Parent is object); 56var lambda = lambdaBody.Parent; 62lambda = lambda.Parent; 75Debug.Assert(oldBody.Parent is object); 105var oldJoin = (JoinClauseSyntax)oldBody.Parent; 111var oldGroup = (GroupClauseSyntax)oldBody.Parent; 143var parent = node?.Parent; 163return arrowExpressionClause.Expression == node && arrowExpressionClause.Parent is LocalFunctionStatementSyntax; 167return fromClause.Expression == node && fromClause.Parent is QueryBodySyntax; 230Debug.Assert(selectOrGroupClause.Parent!.Parent is object); 231var containingQueryOrContinuation = selectOrGroupClause.Parent.Parent; 300if (node.Parent.IsKind(SyntaxKind.QueryExpression)) 442if (node.Parent != null) 444switch (node.Parent.Kind()) 450SeparatedSyntaxList<ExpressionSyntax> incrementors = ((ForStatementSyntax)node.Parent).Incrementors; 468if (node is ExpressionSyntax && node.Parent != null && node.Parent.Parent == null)
src\roslyn\src\Compilers\CSharp\Portable\Syntax\SyntaxBindingUtilities.cs (4)
17or VariableDeclaratorSyntax { Parent.Parent: UsingStatementSyntax { AwaitKeyword.RawKind: not 0 } or LocalDeclarationStatementSyntax { AwaitKeyword.RawKind: not 0 } } 21=> node is VariableDeclaratorSyntax { Parent.Parent: UsingStatementSyntax { } or LocalDeclarationStatementSyntax { UsingKeyword.RawKind: not 0 } }
Structure\Providers\BlockSyntaxStructureProvider.cs (3)
40if (parent is IfStatementSyntax { Parent: not ElseClauseSyntax } ifStatement) 181if (node.Parent.IsKind(SyntaxKind.IfStatement) || node.Parent.IsKind(SyntaxKind.TryStatement))
Structure\Providers\CollectionExpressionStructureProvider.cs (2)
22if (node.Parent?.Parent is CollectionExpressionSyntax)
Structure\Providers\InitializerExpressionStructureProvider.cs (2)
24if (node.Parent is InitializerExpressionSyntax) 65: node.Parent.Span;
UseExpressionBody\UseExpressionBodyCodeRefactoringProvider.cs (2)
152for (var current = node; current != null; current = current.Parent) 178? declaration.Parent
UseNamedArguments\CSharpUseNamedArgumentsCodeRefactoringProvider.cs (2)
30=> argument.Parent?.Parent;
UsePatternMatching\CSharpIsAndCastCheckWithoutNameDiagnosticAnalyzer.cs (1)
254for (SyntaxNode? current = isExpression; current != null; current = current.Parent)
Wrapping\SeparatedSyntaxList\CSharpArgumentWrapper.cs (1)
106for (var current = token.Parent; current != listSyntax; current = current?.Parent)
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (62)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\CSharpIdentifiersShouldNotContainUnderscores.Fixer.cs (1)
36? node.Parent!
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpAvoidDuplicateElementInitializationFixer.cs (1)
40elementInitializer.Parent is not InitializerExpressionSyntax objectInitializer)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpAvoidMultipleEnumerationsAnalyzer.cs (1)
14=> syntax.Parent is ForEachStatementSyntax forEachStatementSyntax && forEachStatementSyntax.Expression.Equals(syntax);
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpDoNotInitializeUnnecessarily.Fixer.cs (1)
41if (node.Parent is PropertyDeclarationSyntax prop)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpDoNotInitializeUnnecessarilyAnalyzer.cs (1)
14=> op.Syntax?.Parent?.RawKind == (int)CodeAnalysis.CSharp.SyntaxKind.SuppressNullableWarningExpression;
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpUseLiteralsWhereAppropriate.Fixer.cs (1)
24currentNode = currentNode.Parent;
Microsoft.NetCore.Analyzers\InteropServices\CSharpDisableRuntimeMarshalling.Fixer.cs (3)
215while (syntax.Parent is not (null or BaseMethodDeclarationSyntax)) 217syntax = syntax.Parent; 220return (BaseMethodDeclarationSyntax?)syntax.Parent;
Microsoft.NetCore.Analyzers\InteropServices\CSharpDynamicInterfaceCastableImplementation.Fixer.cs (3)
232if (identifierNode.Parent is InvocationExpressionSyntax invocationOnThis) 236else if (identifierNode.Parent is MemberAccessExpressionSyntax methodAccess 237&& methodAccess.Parent is InvocationExpressionSyntax invocation)
Microsoft.NetCore.Analyzers\Performance\CSharpConstantExpectedAnalyzer.cs (2)
36if (attributeSyntax.Parent?.Parent is ParameterSyntax parameter)
Microsoft.NetCore.Analyzers\Performance\CSharpDoNotGuardCall.Fixer.cs (3)
40=> childStatementSyntax.Parent is ElseClauseSyntax || childStatementSyntax.Parent?.Parent is ElseClauseSyntax;
Microsoft.NetCore.Analyzers\Performance\CSharpPreferDictionaryTryMethodsOverContainsKeyGuardFixer.cs (5)
153Parent: VariableDeclarationSyntax 155Parent: LocalDeclarationStatementSyntax local 233switch (dictionaryAccess.Parent) 327editor.RemoveNode(fix.DictionaryAddInvocation.Parent!, SyntaxRemoveOptions.KeepNoTrivia); 345editor.RemoveNode(fix.DictionaryAddInvocation.Parent!, SyntaxRemoveOptions.KeepNoTrivia);
Microsoft.NetCore.Analyzers\Performance\CSharpPreferHashDataOverComputeHash.Fixer.cs (6)
119switch (currentCreateNode.Parent) 121case { Parent: UsingStatementSyntax usingStatement } when usingStatement.Declaration?.Variables.Count == 1: 126case { Parent: UsingStatementSyntax }: 131case { Parent: LocalDeclarationStatementSyntax localDeclarationStatementSyntax }: 177var parent = usingStatement.Parent!; 180parent = parent.Parent!;
Microsoft.NetCore.Analyzers\Performance\CSharpPreferLengthCountIsEmptyOverAny.Fixer.cs (2)
25return invocation.Parent.IsKind(SyntaxKind.LogicalNotExpression) ? invocation.Parent : invocation;
Microsoft.NetCore.Analyzers\Performance\CSharpRecommendCaseInsensitiveStringComparisonFixer.cs (1)
64actualArgumentNode = actualArgumentNode.Parent!;
Microsoft.NetCore.Analyzers\Runtime\CSharpAvoidRedundantRegexIsMatchBeforeMatch.Fixer.cs (7)
244if (ifStatement.Parent is not BlockSyntax parentBlock) 427if (id.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == id) 433if (id.Parent is QualifiedNameSyntax qualified && qualified.Right == id) 439if (id.Parent is NameColonSyntax nameColon && nameColon.Name == id) 582while (current.Parent is ElseClauseSyntax elseClause && 583elseClause.Parent is IfStatementSyntax parentIf) 588if (current.Parent is not BlockSyntax parentBlock)
Microsoft.NetCore.Analyzers\Runtime\CSharpDetectPreviewFeatureAnalyzer.cs (1)
40definition = definition.Parent;
Microsoft.NetCore.Analyzers\Runtime\CSharpDoNotUseEnumerableMethodsOnIndexableCollectionsInsteadUseTheCollectionDirectlyFixer.cs (2)
17if (syntaxNode?.Parent.IsKind(SyntaxKind.SuppressNullableWarningExpression) == true) 19return syntaxNode.Parent;
Microsoft.NetCore.Analyzers\Runtime\CSharpDoNotUseStackallocInLoops.cs (1)
29for (SyntaxNode? node = ctx.Node; node != null; node = node.Parent)
Microsoft.NetCore.Analyzers\Runtime\CSharpForwardCancellationTokenToInvocations.Fixer.cs (4)
32var operation = node.Parent.IsKind(SyntaxKind.MemberBindingExpression) 33? model.GetOperation(node.Parent.Parent!, ct) 34: model.GetOperation(node.Parent!, ct);
Microsoft.NetCore.Analyzers\Runtime\CSharpMarkAllNonSerializableFields.Fixer.cs (1)
20fieldNode = fieldNode.Parent;
Microsoft.NetCore.Analyzers\Runtime\CSharpPreferReadOnlySpanPropertiesOverReadOnlyArrayFields.Fixer.cs (5)
90variableDeclaratorSyntax.Parent?.Parent is not FieldDeclarationSyntax fieldDeclaration || 132variableDeclaratorSyntax.Parent?.Parent is not FieldDeclarationSyntax fieldDeclarationSyntax || 393variableDeclaratorSyntax.Parent is not VariableDeclarationSyntax variableDeclaration ||
Microsoft.NetCore.Analyzers\Runtime\CSharpPreferStreamAsyncMemoryOverloads.Fixer.cs (1)
34identifierNameNode.Parent is PostfixUnaryExpressionSyntax nullableExpression)
Microsoft.NetCore.Analyzers\Runtime\CSharpPreventNumericIntPtrUIntPtrBehavioralChanges.cs (2)
36parent = parent.Parent; 52definition = definition.Parent!;
Microsoft.NetCore.Analyzers\Runtime\CSharpSpecifyCultureForToLowerAndToUpper.Fixer.cs (5)
22(node.Parent?.IsKind(SyntaxKind.SimpleMemberAccessExpression) == true || node.Parent?.IsKind(SyntaxKind.MemberBindingExpression) == true); 28identifier.Parent?.FirstAncestorOrSelf<InvocationExpressionSyntax>() is not InvocationExpressionSyntax invocation || 51return node.Parent is MemberAccessExpressionSyntax or MemberBindingExpressionSyntax ? node.Parent : null;
Microsoft.NetCore.Analyzers\Runtime\CSharpUseOrdinalStringComparison.Fixer.cs (1)
51return identifier.Parent?.FirstAncestorOrSelf<InvocationExpressionSyntax>();
Microsoft.NetCore.Analyzers\Usage\CSharpPreferGenericOverloads.Fixer.cs (1)
57if (castExpressionSyntax.Parent is ParenthesizedExpressionSyntax parenthesizedExpressionSyntax)
Microsoft.CodeAnalysis.CSharp.Workspaces (623)
Classification\ClassificationHelpers.cs (21)
186return interpolatedStringText.Parent is InterpolatedStringExpressionSyntax interpolatedString 213if (methodDeclaration.Parent is ExtensionBlockDeclarationSyntax) 220return GetClassificationTypeForConstructorOrDestructorParent(constructorDeclaration.Parent!); 224return GetClassificationTypeForConstructorOrDestructorParent(destructorDeclaration.Parent!); 244var varDecl = variableDeclarator.Parent as VariableDeclarationSyntax; 245return varDecl?.Parent switch 259if (token.Text == "_" && parameterSyntax.Parent is ParameterListSyntax { Parent: AnonymousFunctionExpressionSyntax } parameterList) 318var parent = identifierSyntax.Parent; 321parent = parent.Parent; 341parentNode = parentNode!.Parent!.Parent; 494if (token.Parent is IdentifierNameSyntax && token.Parent?.Parent is ExpressionStatementSyntax) 503token.Parent.Parent is VariableDeclarationSyntax && 504!(token.Parent.Parent.Parent is FieldDeclarationSyntax) && 505!(token.Parent.Parent.Parent is EventFieldDeclarationSyntax); 510&& token.Parent.Parent is TypeConstraintSyntax 511&& token.Parent.Parent.Parent is TypeParameterConstraintClauseSyntax;
Classification\SyntaxClassification\NameSyntaxClassifier.cs (1)
173if ((name.IsUnmanaged || name.IsNotNull) && name.Parent.IsKind(SyntaxKind.TypeConstraint))
Classification\Worker_DocumentationComments.cs (2)
189var classificationType = node.Parent switch 283return attribute.Name.LocalName.Text == DocumentationCommentXmlNames.LangwordAttributeName && IsSeeElement(attribute.Parent);
CodeGeneration\CSharpSyntaxGenerator.cs (38)
1978if (vd.Variables.Count == 1 && vd.Parent == null) 1991var vd = declaration.Parent as VariableDeclarationSyntax; 2023if (declaration.Parent is not AttributeListSyntax parentList || parentList.Attributes.Count > 1) 2045=> node?.Parent.IsKind(SyntaxKind.FieldDeclaration) ?? false; 2048=> node?.Parent.IsKind(SyntaxKind.EventFieldDeclaration) ?? false; 2051=> node?.Parent.IsKind(SyntaxKind.LocalDeclarationStatement) ?? false; 2140if (declaration.Parent != null) 2142return this.GetType(declaration.Parent); 2182if (vd.Parent != null && vd.Variables.Count == 1) 2184return AsIsolatedDeclaration(vd.Parent); 2191if (v.Parent != null && v.Parent.Parent != null) 2193return ClearTrivia(WithVariable(v.Parent.Parent, v)); 2200if (attr.Parent != null) 2202var attrList = (AttributeListSyntax)attr.Parent; 2251Contract.ThrowIfNull(vd.Parent); 2252return vd.Parent; 2261if (declaration.Parent != null) 2263return GetFullDeclaration(declaration.Parent); 2282var container = GetDeclaration(existingNode.Parent); 2931return AreSimilarExceptForSubDeclarations(decl1.Parent, decl2.Parent); 2979return SyntaxFactory.AreEquivalent(vd1.Type, vd2.Type) && AreSimilarExceptForSubDeclarations(vd1.Parent, vd2.Parent); 3019if (declaration.Parent.IsKind(SyntaxKind.GlobalStatement)) 3022declaration = declaration.Parent; 3058if (declaration.Parent.IsKind(SyntaxKind.GlobalStatement)) 3061declaration = declaration.Parent; 3129if (node.Parent.IsKind(SyntaxKind.GlobalStatement)) 3132node = node.Parent; 3154if (attr.Parent is AttributeListSyntax attrList && attrList.Attributes.Count == 1) 3163if (declaration.Parent != null && ((AttributeArgumentListSyntax)declaration.Parent).Arguments.Count == 1) 3166return RemoveNodeInternal(root, declaration.Parent, options); 3182if (declaration.Parent is BaseListSyntax baseList && baseList.Types.Count == 1) 3191var parent = declaration.Parent;
FindSymbols\CSharpDeclaredSymbolInfoFactoryService.cs (2)
90for (var current = node; current != null; current = current.Parent) 483=> typeDecl.Parent is BaseTypeDeclarationSyntax;
ReassignedVariable\CSharpReassignedVariableService.cs (3)
39var current = designation.Parent; 63current = current.Parent; 81current = current.Parent;
Recommendations\CSharpRecommendationServiceRunner.cs (8)
122if (node.GetAncestor<BaseListSyntax>()?.Parent is EnumDeclarationSyntax) 169for (var current = node; current != null; current = current.Parent) 186for (var current = node; current != null; last = current, current = current.Parent) 289if (alias.GetAncestor<BaseListSyntax>()?.Parent is EnumDeclarationSyntax) 501Parent: PropertyDeclarationSyntax or 502VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } } 611if (name.GetAncestor<BaseListSyntax>()?.Parent is EnumDeclarationSyntax)
Rename\CSharpRenameRewriterLanguageService.cs (8)
271=> accessor?.Parent?.Parent is PropertyDeclarationSyntax property // 3 null checks in one: accessor -> accessor list -> property declaration 538token.Parent.Parent is (kind: SyntaxKind.AliasQualifiedName or SyntaxKind.QualifiedCref or SyntaxKind.QualifiedName)) 867var currentUsing = (UsingDirectiveSyntax)token.Parent!.Parent!.Parent!; 897foreach (var typeParameter in ((TypeParameterListSyntax)currentTypeParameter.Parent!).Parameters) 1135if (enclosingNameMemberCrefOrnull != null && token.Parent is TypeSyntax && token.Parent.Parent is TypeSyntax) 1143if (enclosingStatement == null && enclosingInitializer != null && enclosingInitializer.Parent is VariableDeclaratorSyntax)
Simplification\CSharpSimplificationService.cs (3)
113var parent = parentOfToken.Parent; 209var parent = currentTuple.Parent; 220var grandParent = parent.Parent;
Simplification\CSharpSimplificationService.Expander.cs (7)
80argument.Parent?.Parent is ObjectCreationExpressionSyntax objectCreationExpression) 254&& node.Parent is TupleExpressionSyntax tuple 621var parent = originalSimpleName.Parent; 873parent = parent.Parent; 942var parent = originalNode.Parent; 973else if (originalNode.Parent is CrefSyntax)
Simplification\Reducers\AbstractCSharpReducer.AbstractReductionRewriter.cs (6)
85for (var current = (SyntaxNode)expression; current != null; current = current.Parent) 99for (SyntaxNode? current = pattern; current != null; current = current.Parent) 107Contract.ThrowIfNull(lastPattern.Parent); 108return lastPattern.Parent; 118Contract.ThrowIfNull(topMostCref.Parent); 119return topMostCref.Parent;
Simplification\Reducers\CSharpInferredMemberNameReducer.Rewriter.cs (1)
55if (node.Parent.IsKind(SyntaxKind.TupleExpression))
Simplification\Reducers\CSharpMiscellaneousReducer.cs (6)
41parameterSyntax.Parent.IsParentKind(SyntaxKind.ParenthesizedLambdaExpression)) 124if (!CanHaveEmbeddedStatement(node.Parent)) 142if (!node.Parent.IsKind(SyntaxKind.IfStatement)) 148if (node.Parent?.Parent is (kind: SyntaxKind.IfStatement or SyntaxKind.ElseClause)) 160if (!FormattingRangeHelper.AreTwoTokensOnSameLine(node.Parent.GetFirstToken(), node.GetFirstToken().GetPreviousToken()))
Simplification\Simplifiers\AbstractCSharpSimplifier.cs (5)
265var nameofValueOpt = semanticModel.GetConstantValue(node.Parent.Parent.Parent); 345startNode = usingDirective.Parent.Parent;
Simplification\Simplifiers\NameSimplifier.cs (9)
241if (!name.Parent.IsKind(SyntaxKind.QualifiedName) && (inDeclarationContext || inMemberAccessContext)) 376if (name.Parent is QualifiedCrefSyntax qualifiedCrefParent && qualifiedCrefParent.Container == name) 386else if (name.Parent is QualifiedNameSyntax qualifiedParent && qualifiedParent.Left == name && 426if (name.Parent is NameMemberCrefSyntax) 496if (name.Parent.Kind() == SyntaxKind.Attribute || name.IsRightSideOfDotOrColonColon()) 562parent = parent.Parent; 662if (expression?.Parent is CastExpressionSyntax castExpression && 689name = (NameSyntax)name.Parent; 692if (name?.Parent is UsingDirectiveSyntax usingDirective &&
src\50a3a051b0fef0d6\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\a6db168d9ad5d460\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ArgumentSyntaxExtensions.cs (3)
45if (argument.Parent is not BaseArgumentListSyntax argumentList || 46argumentList.Parent is null) 52var symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DefaultExpressionSyntaxExtensions.cs (4)
40if (defaultExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 70equalsValueClause.Parent?.Parent is VariableDeclarationSyntax declaration) 74else if (equalsValueClause?.Parent is ParameterSyntax parameter)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (55)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression is { Parent: NameMemberCrefSyntax { Parent: QualifiedCrefSyntax } }; 48=> expression?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == expression; 55return expression == (expression.Parent as MemberAccessExpressionSyntax)?.Name || 60=> expression?.Parent is MemberBindingExpressionSyntax memberBinding && 64=> expression?.Parent is QualifiedNameSyntax qualifiedName && qualifiedName.Right == expression; 67=> expression?.Parent is AliasQualifiedNameSyntax aliasName && aliasName.Name == expression; 98=> (expression?.Parent) is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 103(expression.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Expression == expression); 106=> (expression?.Parent) is QualifiedNameSyntax qualifiedName && qualifiedName.Left == expression; 112=> expression?.Parent is InvocationExpressionSyntax invocation && 197=> expression?.Parent is ArgumentSyntax { RefOrOutKeyword: SyntaxToken(SyntaxKind.OutKeyword) } argument && 209while (expression?.Parent is ParenthesizedExpressionSyntax or PostfixUnaryExpressionSyntax(SyntaxKind.SuppressNullableWarningExpression)) 210expression = (ExpressionSyntax)expression.Parent; 212if (expression?.Parent is RefExpressionSyntax or 215refParent = expression.Parent; 224=> expression?.Parent is ArgumentSyntax { RefKindKeyword: SyntaxToken(SyntaxKind.InKeyword) }; 248if (expression.Parent != null) 282var parent = expr.Parent; 291if (parent.Parent?.Kind() == SyntaxKind.TupleExpression) 293expr = (TupleExpressionSyntax)parent.Parent; 337if (refParent.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type: { } variableDeclarationType } } }) 355if (expression.Parent.IsKind(SyntaxKind.AddressOfExpression)) 366if (expression.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccess && 384if (expression.Parent is ArgumentSyntax) 399var nameEquals = expression?.Parent as NameEqualsSyntax; 405if (expression?.Parent is SyntaxNode parent) 421=> expression is IdentifierNameSyntax { Parent: NameColonSyntax }; 517return expression is { Parent.RawKind: not (int)SyntaxKind.ConditionalAccessExpression }; 520if (expression.Parent == null) 523switch (expression.Parent.Kind()) 553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 555!parentConditionalAccessExpression.Parent.IsKind(SyntaxKind.ConditionalAccessExpression); 560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 596if (expression.Parent is PrefixUnaryExpressionSyntax) 606while (topExpression.Parent is TypeSyntax typeSyntax) 620if (expression.Parent is PostfixUnaryExpressionSyntax or 639if ((expression.IsParentKind(SyntaxKind.NameEquals) && expression.Parent.IsParentKind(SyntaxKind.AttributeArgument)) || 649=> expression is { Parent: ArgumentSyntax { Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocation } } } && 901=> expression?.Parent is MemberAccessExpressionSyntax; 912var parent = topExpression.Parent; 944if (argument.Parent is TupleExpressionSyntax tupleExpression) 973for (SyntaxNode? current = returnStatement; current != null; current = current.Parent) 988if (equalsValue.Parent is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: true } }) 1058if (initializerExpression.Parent is ArrayCreationExpressionSyntax arrayCreation) 1062if (initializerExpression.Parent is ImplicitArrayCreationExpressionSyntax) 1074if (initializerExpression.Parent is EqualsValueClauseSyntax equalsValue) 1078if (initializerExpression.Parent is StackAllocArrayCreationExpressionSyntax or ImplicitStackAllocArrayCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
27var nodeParent = node.Parent; 39? nodeParent.Parent as ExpressionSyntax 70if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 368if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 548if (node?.Parent is CastExpressionSyntax castExpression) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 608(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 660if (node.Parent is ArgumentSyntax argument) 662if (argument.Parent is ArgumentListSyntax argumentList) 671else if (node.Parent is InitializerExpressionSyntax initializer) 695if (node.Parent is ArgumentSyntax argument) 697if (argument.Parent is ArgumentListSyntax argumentList) 706else if (node.Parent is InitializerExpressionSyntax initializer) 744if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 759if (node.Parent is ParenthesizedPatternSyntax) 763if (node.Parent is IsPatternExpressionSyntax) 767if (node.Parent is SwitchExpressionArmSyntax) 771if (node.Parent is SubpatternSyntax) 775if (node.Parent is CasePatternSwitchLabelSyntax) 781return node.Parent is PatternSyntax patternParent &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList } baseType && 215else if (baseList.Types[0] == type.Parent) 224if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 233type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 234type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 235type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 251if (type.Parent.Kind() 260type.Parent, cancellationToken).DeclaredAccessibility; 273if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 275if (type.Parent.Parent.Parent?.Kind() 282type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 285if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 287var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 380if (current.Parent is ForEachStatementSyntax foreachStatement && 387if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 432if (topExpression?.Parent is ArgumentSyntax argument) 439if (argument.Parent is BaseArgumentListSyntax argumentList) 442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (6)
19return ((MemberAccessExpressionSyntax)name.Parent).Expression; 27return ((QualifiedNameSyntax)name.Parent).Left; 31return ((QualifiedCrefSyntax)name.Parent.Parent).Container; 52if (simpleName?.Parent is InvocationExpressionSyntax invocation && 59if (simpleName?.Parent is ElementAccessExpressionSyntax elementAccess &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\StatementSyntaxExtensions.cs (4)
40if (first.Parent.IsKind(SyntaxKind.GlobalStatement)) 41return second.Parent.IsKind(SyntaxKind.GlobalStatement); 43return first.Parent == second.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (23)
45=> CodeAnalysis.CSharpExtensions.IsKind(node?.Parent, kind); 52result = (TNode)node.Parent!; 186if ((current?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == current) || 187(current?.Parent is MemberBindingExpressionSyntax memberBinding && memberBinding.Name == current)) 189current = current.Parent; 203current.Parent is not ConditionalAccessExpressionSyntax) 205current = current.Parent; 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 288=> node?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment && 292=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Left == node; 295=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Right == node; 299return node?.Parent != null && 300node.Parent.IsCompoundAssignExpression() && 301((AssignmentExpressionSyntax)node.Parent).Left == node; 337for (var current = node; current != null; current = current.Parent) 360return !current.Parent.IsKind(SyntaxKind.CompilationUnit); 663=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 679current = current.Parent; 781for (var current = node; current != null; current = current.Parent) 829for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
110if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 113return token.Parent.Parent.GetFirstToken() != token; 126=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 135return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 204&& statementOrElse.Parent != null 205&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 282token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 382token.Parent?.Parent is QueryExpressionSyntax queryExpression && 390var parent = initializer.Parent; 414return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 426var parent = initializer.Parent; 446var parent = anonymousObjectInitializer.Parent; 482return token.Parent.Parent is LabeledStatementSyntax; 527return currentToken.Kind() == SyntaxKind.OpenParenToken && currentToken is { Parent: ParenthesizedVariableDesignationSyntax, Parent.Parent: DeclarationExpressionSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
36if (block.Parent is null or BlockSyntax) 44block.Parent.GetFirstToken(includeZeroWidth: true),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
167RoslynDebug.AssertNotNull(node.Parent); 170firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (10)
63if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 103RoslynDebug.AssertNotNull(node.Parent); 104var switchStatement = (SwitchStatementSyntax)node.Parent; 183if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 228if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 262if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression) 378for (var current = node; current != null; current = current.Parent) 380if (current.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == current)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (7)
49var parentKind = node.Parent?.Kind(); 85&& previousToken.Parent!.Parent == currentToken.Parent.Parent) 165var currentTokenParentParent = currentToken.Parent.Parent; 280|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 369var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 378if (initializer?.Parent != null) 380AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
205var attributeOwner = previousToken.Parent?.Parent; 231RoslynDebug.AssertNotNull(currentUsing.Parent); 233if (AreUsingsProperlyGrouped(GetUsings(currentUsing.Parent)))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (8)
351case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }: 410SimpleNameSyntax { Parent: InvocationExpressionSyntax invocation } => invocation.ArgumentList, 412SimpleNameSyntax { Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberAccess } when memberAccess.Name == node => invocation.ArgumentList, 414SimpleNameSyntax { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberBinding } when memberBinding.Name == node => invocation.ArgumentList, 512var expression = simpleName.Parent switch 519if (expression.Parent is not InvocationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (29)
173=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 204=> node?.Parent is UsingDirectiveSyntax usingDirective && 254return node.Parent is BaseMethodDeclarationSyntax or 528if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 637node.Parent.IsParentKind(SyntaxKind.Subpattern); 649if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 651var withInitializer = identifier.Parent.GetRequiredParent(); 655else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 657var objectInitializer = identifier.Parent.GetRequiredParent(); 658if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 660initializedInstance = objectInitializer.Parent; 663else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 675=> expression is IdentifierNameSyntax { Parent: NameEqualsSyntax { Parent: AnonymousObjectMemberDeclaratorSyntax } nameEquals } identifier && 682Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 685creationExpression = node.Parent; 731node = node.Parent; 772var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 776parent = parent.Parent; 785parent = parent.Parent; 955var parent = node.Parent; 1091=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1094=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1155node.Parent is AttributeListSyntax attributeList && 1184return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1309=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1315=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\CSharpInferredMemberNameSimplifier.cs (3)
14if (node.NameColon == null || !node.Parent.IsKind(SyntaxKind.TupleExpression)) 24if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node)) 45if (RemovalCausesAmbiguity(((AnonymousObjectCreationExpressionSyntax)node.Parent!).Initializers, node))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (32)
126if (leftOrRightChild.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) binary) 160if (castExpression.WalkUpParentheses().Parent is PrefixUnaryExpressionSyntax(SyntaxKind.BitwiseNotExpression) parent && 161parent.WalkUpParentheses().Parent is CastExpressionSyntax parentCast) 193if (isDefaultLiteralCast && castNode.WalkUpParentheses().Parent is PatternSyntax or CaseSwitchLabelSyntax) 356if (castNode.WalkUpParentheses().Parent is InterpolationSyntax) 467if (castNode.WalkUpParentheses().Parent is MemberAccessExpressionSyntax memberAccessExpression) 500if (castNode.WalkUpParentheses().Parent is InvocationExpressionSyntax invocationExpression) 519if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 756if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 878static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 903static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1077if (expression.WalkUpParentheses().Parent 1195if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1265if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1272else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1278else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1280equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1304for (SyntaxNode? current = expression; current != null; current = current.Parent) 1319for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1321currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1375for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1377currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1404for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1406currentOld = currentOld.Parent, currentNew = currentNew.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
180var containerOfList = parent.Parent; 196var parentOfParent = parent.Parent; 330RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 331var labelNode = previousToken.Parent.Parent; 374RoslynDebug.AssertNotNull(node.Parent); 376node = node.Parent; 383node = node.Parent; 393node = node.Parent; 435return token.Parent.Parent as MemberDeclarationSyntax;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
297Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 298Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode); 441var oldSwitchStatement = (SwitchStatementSyntax)originalCaseSwitchLabel.Parent.Parent; 442var newSwitchStatement = (SwitchStatementSyntax)newCaseSwitchLabel.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
83var isSupportedParentKind = variableDeclaration.Parent is (kind: 99switch (declaration.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
65if (typeName.Parent is DeclarationExpressionSyntax declExpression && 78if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 91if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 106else if (typeName.Parent is DeclarationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
104if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 107if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 139else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 201if (declarationExpression.Parent is not ArgumentSyntax 203Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 277if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpDeclarationComparer.cs (5)
345for (var node = parent; node != null; node = node.Parent) 388var xAccessibility = GetAccessibilityPrecedence(xModifiers, x.Parent ?? y.Parent); 389var yAccessibility = GetAccessibilityPrecedence(yModifiers, y.Parent ?? x.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (7)
215targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 378token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 394token.Parent.Parent is StatementSyntax) 491FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause, 548return attributeList?.Parent switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (20)
126if (token.Parent.Parent is StatementSyntax) 135if (token.Parent.Parent.Kind() is not SyntaxKind.TryStatement and not SyntaxKind.DoStatement) 138else if (token.Parent.Parent?.Kind() 180var container = token.Parent.Parent; 261var container = token.Parent.Parent; 262if (container is IncompleteMemberSyntax && container.Parent is CompilationUnitSyntax) 451targetToken.Parent.Parent.IsKind(SyntaxKind.Argument) && 452targetToken.Parent.Parent.Parent.IsKind(SyntaxKind.ArgumentList)) 454var owner = targetToken.Parent.Parent.Parent.Parent; 469if (targetToken.Parent?.Parent?.Kind() 590targetToken.Parent.Parent is AccessorDeclarationSyntax) 605targetToken.Parent.Parent is AccessorDeclarationSyntax) 617if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 619else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 650targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 651IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (76)
100parent = attributeList.Parent; 180token.Parent.Parent is BaseTypeDeclarationSyntax) 197token.Parent.Parent is BaseTypeDeclarationSyntax) 209token.Parent.Parent is MemberDeclarationSyntax) 229var container = token.Parent.Parent?.Parent; 313member.Parent is BaseTypeDeclarationSyntax; 493token.Parent.Parent is MemberDeclarationSyntax) 520var container = token.Parent?.Parent?.Parent; 597var container = token.Parent?.Parent; 786token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 841token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 957{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1016name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1018conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1106token.Parent.Parent is ParameterSyntax parameter3 && 1107parameter3.Parent is ParameterListSyntax parameterList3 && 1122parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1126if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1136=> parameterList.Parent switch 1275parent = token.Parent.Parent; 1277else if (token.IsKind(SyntaxKind.IdentifierToken) && token is { Text: "scoped", Parent: IdentifierNameSyntax scopedIdentifierName } && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1279parent = scopedIdentifierName.Parent.Parent; 1358leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1360var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1442leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1528while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1533if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1564if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1592possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1660if (outer.Parent is ForEachStatementSyntax @foreach) 1681if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1683node = node.Parent; 1687if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1689node = node.Parent.Parent; 1701leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1809parent.Parent?.Parent is (kind: 1817if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1873if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2086equalsValue.Parent.IsParentKind(SyntaxKind.VariableDeclaration)) 2349type.Parent?.Parent is LocalDeclarationStatementSyntax declStatement) 2502token.Parent?.Parent is ObjectCreationExpressionSyntax objectCreation) 2739=> token.Parent?.Parent is InvocationExpressionSyntax invocation && 2756while (parentMemberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 2758parentMemberAccess = parentMemberAccess.Parent; 2761if (parentMemberAccess.Parent.IsKind(SyntaxKind.Argument) && 2762parentMemberAccess.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2764token = ((ArgumentListSyntax)parentMemberAccess.Parent.Parent!).OpenParenToken; 2772while (parentQualifiedName.Parent.IsKind(SyntaxKind.QualifiedName)) 2774parentQualifiedName = parentQualifiedName.Parent; 2777if (parentQualifiedName.Parent.IsKind(SyntaxKind.Argument) && 2778parentQualifiedName.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2780token = ((ArgumentListSyntax)parentQualifiedName.Parent.Parent!).OpenParenToken; 2789token.Parent.Parent is InvocationExpressionSyntax invocationExpression && 2858nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2869token.Parent.Parent is (kind: SyntaxKind.ObjectInitializerExpression or SyntaxKind.CollectionInitializerExpression)) 2878if (token.Parent.Parent is ArgumentSyntax { RefOrOutKeyword.RawKind: (int)SyntaxKind.OutKeyword }) 2914if (name.Parent != null) 2916switch (name.Parent.Kind()) 2919return ((QualifiedNameSyntax)name.Parent).Right == name; 2921return ((AliasQualifiedNameSyntax)name.Parent).Name == name; 2923return ((MemberAccessExpressionSyntax)name.Parent).Name == name; 2957block.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.CatchClause) 3001targetToken.Parent is BaseListSyntax { Parent: TypeDeclarationSyntax }; 3034token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression && 3041token.Parent?.Parent is DeclarationPatternSyntax declarationExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (1)
20if (withElement?.Parent is not CollectionExpressionSyntax collectionExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
353var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.cs (3)
132!argument.Parent.IsKind(SyntaxKind.ThisConstructorInitializer) && 193RoslynDebug.AssertNotNull(node.Parent); 196var baseToken = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (9)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 229if (embeddedStatementOwner.Parent is LabeledStatementSyntax) 232embeddedStatementOwner = embeddedStatementOwner.Parent; 254token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 406if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 429RoslynDebug.AssertNotNull(queryBody.Parent); 430return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
46if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 281if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 287if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 293if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 304if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 311if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 322if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 327if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 328argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 329argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 330argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 381if (argument.Parent != null) 383if (argument.Parent.Parent is AttributeSyntax attribute) 521switch (argumentList.Parent) 551if (attributeArgumentList.Parent is AttributeSyntax attribute) 747var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 900if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1218if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1221if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1225SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1243if (expressionElement.Parent is CollectionExpressionSyntax collectionExpression) 1434if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1462else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1472else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1482else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1506var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1575if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1713if (memberDeclarator is { NameEquals: not null, Parent: AnonymousObjectCreationExpressionSyntax anonymousObject }) 1738return nameColon.Parent switch 1754return expressionColon.Parent switch 1806memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1807memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1929if (nameColon.Parent is SubpatternSyntax subpattern) 1939if (expressionColon.Parent is SubpatternSyntax subpattern) 1956if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2114=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2198var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2264variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2332var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\SemanticModelReuse\CSharpSemanticModelReuseLanguageService.cs (6)
31Contract.ThrowIfFalse(accessor.Parent is AccessorListSyntax); 32Contract.ThrowIfFalse(accessor.Parent.Parent is BasePropertyDeclarationSyntax); 33return (BasePropertyDeclarationSyntax)accessor.Parent.Parent; 41for (SyntaxNode? previous = null, current = node; current != null; previous = current, current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
Microsoft.CodeAnalysis.Features (240)
AddImport\AbstractAddImportCodeRefactoringProvider.cs (4)
128while (IsQualified(current.Parent)) 130var parentSymbol = semanticModel.GetSymbolInfo(current.Parent, cancellationToken).Symbol; 133current = current.Parent; 147current = current.Parent;
AddImport\SymbolReferenceFinder_PackageAssemblySearch.cs (2)
80while (_syntaxFacts.IsQualifiedName(current.Parent)) 81current = current.Parent;
AddImport\SymbolReferenceFinder.cs (1)
303: syntaxFacts.GetTargetOfMemberBinding(nameNode.Parent);
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.RemoveSuppressionCodeAction_Attribute.cs (1)
56? attributeNode.Parent
CodeLens\CodeLensReferencesService.cs (1)
189node = node.Parent;
CodeRefactorings\AddAwait\AbstractAddAwaitCodeRefactoringProvider.cs (1)
73if (syntaxFacts.IsExpressionOfInvocationExpression(node.Parent))
CodeRefactorings\MoveType\AbstractMoveTypeService.cs (1)
150=> typeNode.Parent is TTypeDeclarationSyntax;
CodeRefactorings\MoveType\AbstractMoveTypeService.MoveTypeNamespaceScopeEditor.cs (1)
32return TypeDeclaration.Parent is TNamespaceDeclarationSyntax namespaceDeclaration
CodeRefactorings\SyncNamespace\AbstractChangeNamespaceService.cs (3)
665while (name.Parent is TNameSyntax parentName) 668return name.Parent is TCrefSyntax ? name.Parent : name;
Completion\Providers\AbstractAwaitCompletionProvider.cs (1)
270var parentOfAwaitable = potentialAwaitableExpression.Parent;
Completion\Providers\AbstractInternalsVisibleToCompletionProvider.cs (6)
103while (syntaxFactsService.IsElementAccessExpression(node.Parent) || syntaxFactsService.IsBinaryExpression(node.Parent)) 105node = node.Parent; 109var attributeSyntaxNodeCandidate = node.Parent?.Parent?.Parent;
ConvertAutoPropertyToFullProperty\AbstractConvertAutoPropertyToFullPropertyCodeRefactoringProvider.cs (1)
79if (containingProperty?.Parent is not TTypeDeclarationNode)
ConvertForToForEach\AbstractConvertForToForEachCodeRefactoringProvider.cs (13)
156var argument = current.Parent; 161var argumentList = argument?.Parent; 198if (syntaxFacts.IsElementAccessExpression(argumentList.Parent)) 200var expr = syntaxFacts.GetExpressionOfElementAccessExpression(argumentList.Parent); 212if (syntaxFacts.IsInvocationExpression(argumentList.Parent)) 214var invokedExpression = syntaxFacts.GetExpressionOfInvocationExpression(argumentList.Parent); 426if (syntaxFacts.AreEquivalent(current.Parent, indexExpression)) 432else if (syntaxFacts.AreEquivalent(current.Parent?.Parent, elementAtExpression)) 443var shouldWarn = syntaxFacts.IsArgument(current.Parent); 446syntaxFacts.IsMemberAccessExpression(current.Parent) && 447syntaxFacts.IsInvocationExpression(current.Parent.Parent);
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (2)
51var nodesToRemove = sections.Skip(1).Select(s => s.SyntaxToRemove).Where(s => s.Parent == ifStatement.Parent);
ConvertToInterpolatedString\AbstractConvertConcatenationToInterpolatedStringRefactoringProvider.cs (1)
63IsStringConcat(syntaxFacts, top.Parent, semanticModel, cancellationToken))
ConvertToInterpolatedString\AbstractConvertPlaceholderToInterpolatedStringRefactoringProvider.cs (3)
169var invocation = selectedArgument?.Parent?.Parent as TInvocationExpressionSyntax; 178var invocation = argumentList?.Parent as TInvocationExpressionSyntax;
Debugging\AbstractDataTipInfoGetter.cs (2)
33if (expression.Parent is TMemberExpressionSyntax { Parent: TInvocationExpressionSyntax invocation } memberAccess &&
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (13)
270var current = node.Parent; 284current = current.Parent; 363var current = node.Parent; 387current = current.Parent; 1881if (newAncestor.Parent == null) 1908oldNode = oldNode.Parent; 1934return HasEdit(editMap, node.Parent, edit.Kind); 2200current = current.Parent; 5300if (node.Parent == null && 5929var oldTargetParameter = oldLambda.Parent != null 5930? (oldModel.RequiredModel.GetOperation(oldLambda.Parent, cancellationToken) as IArgumentOperation)?.Parameter 6764node = node.Parent; 7044current = current.Parent;
EditAndContinue\Utilities\Extensions.cs (3)
288Contract.ThrowIfFalse(otherRoot.Parent == null); 292var parent = node.Parent; 297parent = parent.Parent;
EmbeddedLanguages\AbstractLanguageDetector.cs (4)
71syntaxFacts.IsArgument(token.Parent.Parent)) 73options = GetOptionsFromSiblingArgument(token.Parent.Parent, semanticModel, cancellationToken) ?? 103syntaxFacts.IsArgument(token.Parent.Parent) && 104IsArgumentToWellKnownAPI(token, token.Parent.Parent, semanticModel, cancellationToken, out options);
EmbeddedLanguages\DateAndTime\LanguageServices\DateAndTimeLanguageDetector.cs (4)
58var interpolation = interpolationFormatClause?.Parent; 76var argumentList = argumentNode.Parent; 77var invocationOrCreation = argumentList?.Parent; 131syntaxFacts.IsArgument(token.Parent.Parent);
EmbeddedLanguages\EmbeddedLanguageDetector.cs (25)
96syntaxFacts.IsBinaryExpression(token.Parent.Parent) && 97syntaxFacts.SyntaxKinds.AddExpression == token.Parent.Parent.RawKind) 102for (var node = token.Parent; node != null; node = node.Parent) 166var interpolation = interpolationFormatClause?.Parent; 220if (syntaxFacts.IsArgument(container.Parent)) 222if (IsArgumentWithMatchingStringSyntaxAttribute(semanticModel, container.Parent, cancellationToken, out identifier)) 225else if (syntaxFacts.IsAttributeArgument(container.Parent)) 227if (IsAttributeArgumentWithMatchingStringSyntaxAttribute(semanticModel, container.Parent, cancellationToken, out identifier)) 230else if (syntaxFacts.IsNamedMemberInitializer(container.Parent)) 232syntaxFacts.GetPartsOfNamedMemberInitializer(container.Parent, out var name, out _); 250if (syntaxFacts.IsEqualsValueClause(container.Parent)) 252if (syntaxFacts.IsVariableDeclarator(container.Parent.Parent)) 254var variableDeclarator = container.Parent.Parent; 262else if (syntaxFacts.IsEqualsValueOfPropertyDeclaration(container.Parent)) 264var property = container.Parent.GetRequiredParent(); 316if (syntaxFacts.IsEqualsValueClause(container.Parent) && 317syntaxFacts.IsVariableDeclarator(container.Parent.Parent)) 319var variableDeclarator = container.Parent.Parent; 424if (syntaxFacts.IsAnyInitializerExpression(node.Parent, out var instance)) 429else if (syntaxFacts.IsExpressionElement(node.Parent)) 432node = syntaxFacts.WalkUpParentheses(node.Parent.GetRequiredParent());
EmbeddedLanguages\Json\LanguageServices\JsonLanguageDetector.cs (1)
134var invocationOrCreation = argumentList.Parent;
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexLanguageDetector.cs (1)
88var invocationOrCreation = argumentList.Parent;
ExtractMethod\MethodExtractor.CodeGenerator.cs (4)
209mappedMember = mappedMember.Parent?.RawKind == syntaxKinds.GlobalStatement 210? mappedMember.Parent 214? mappedMember.Parent 218var destination = mappedMember.Parent ?? mappedMember;
ExtractMethod\MethodExtractor.cs (2)
122? insertionPointNode.Parent 124destination = mappedPoint.Parent ?? mappedPoint;
ExtractMethod\SelectionValidator.cs (4)
84if (firstStatement != null && statement.Span.End <= textSpan.End && statement.Parent == firstStatement.Parent) 190var parent1 = blockFacts.GetImmediateParentExecutableBlockForStatement(statement1) ?? statement1.Parent; 191var parent2 = blockFacts.GetImmediateParentExecutableBlockForStatement(statement2) ?? statement2.Parent;
FullyQualify\AbstractFullyQualifyService.cs (1)
166var rightSide = syntaxFacts.GetRightSideOfDot(simpleName.Parent);
GenerateType\AbstractGenerateTypeService.State.cs (1)
195for (var current = node; current != null; current = current.Parent)
Highlighting\Keywords\AbstractKeywordHighlighter.cs (1)
50for (var parent = token.Parent; parent != null; parent = parent.Parent)
InlineMethod\AbstractInlineMethodRefactoringProvider.cs (9)
139if (_syntaxFacts.IsThrowStatement(rawInlineExpression.Parent) || _syntaxFacts.IsThrowExpression(rawInlineExpression)) 178&& !_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 351if (_syntaxFacts.IsThrowStatement(rawInlineExpression.Parent) 352&& _syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 360&& _syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 375if (_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent) 415if (_syntaxFacts.IsThrowStatement(rawInlineExpression.Parent)) 435if (!_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent) 486for (SyntaxNode? node = calleeMethodInvocationNode; node != null; node = node.Parent)
InlineMethod\AbstractInlineMethodRefactoringProvider.MethodParametersInfo.cs (1)
487&& _syntaxFacts.IsExpressionStatement(calleInvocationNode.Parent)
IntroduceParameter\IntroduceParameterDocumentRewriter.cs (2)
110var declarator = _expression?.Parent?.Parent;
IntroduceVariable\AbstractIntroduceVariableService.State.cs (5)
205while (syntaxFacts.IsParenthesizedExpression(current.Parent)) 206current = (TExpressionSyntax)current.Parent; 208if (!syntaxFacts.IsEqualsValueClause(current.Parent)) 211var equalsValue = current.Parent; 212if (!syntaxFacts.IsVariableDeclarator(equalsValue.Parent))
InvertIf\AbstractInvertIfCodeRefactoringProvider.cs (1)
467ifNode.Parent == subsequentStatementRanges[0].Parent;
InvertIf\AbstractInvertIfCodeRefactoringProvider.StatementRange.cs (3)
27Debug.Assert(firstStatement.Parent != null); 28Debug.Assert(firstStatement.Parent == lastStatement.Parent);
InvertLogical\AbstractInvertLogicalCodeRefactoringProvider.cs (7)
55while (expression.Parent?.RawKind == expression.RawKind) 57expression = expression.Parent; 67syntaxFacts.IsLogicalAndExpression(expression.Parent) || syntaxFacts.IsLogicalOrExpression(expression.Parent)) 124while (syntaxFacts.IsParenthesizedExpression(expression.Parent) || 125syntaxFacts.IsLogicalNotExpression(expression.Parent)) 127expression = expression.Parent;
MoveStaticMembers\MoveStaticMembersWithDialogCodeAction.cs (5)
301syntaxFacts.IsMemberAccessExpression(refNode.Parent) && 302syntaxFacts.IsInvocationExpression(refNode.Parent.Parent)) 305var extensionMethodInvocation = refNode.Parent.Parent;
NameTupleElement\AbstractNameTupleElementCodeRefactoringProvider.cs (1)
50var argument = potentialArguments.FirstOrDefault(n => n?.Parent is TTupleExpressionSyntax);
QuickInfo\CommonSemanticQuickInfoProvider.cs (2)
275for (var current = last.Parent; current != null; last = current, current = current.Parent)
RemoveUnusedVariable\AbstractRemoveUnusedVariableCodeFixProvider.cs (2)
171if (variableDeclarator.Parent?.Parent is TLocalDeclarationStatement candidate)
ReplaceConditionalWithStatements\AbstractReplaceConditionalWithStatementsCodeRefactoringProvider.cs (8)
131var parentStatement = topExpression.Parent as TStatementSyntax; 153if (topExpression.Parent is TEqualsValueClauseSyntax equalsValue && 154equalsValue.Parent is TVariableDeclaratorSyntax variableDeclarator) 178if (current.Parent is TExpressionSyntax parentExpression) 184if (current.Parent is TArgumentSyntax { Parent: TArgumentListSyntax { Parent: TExpressionSyntax argumentParent } }) 240var isGlobalStatement = syntaxFacts.IsGlobalStatement(localDeclarationStatement.Parent);
ReplaceDocCommentTextWithTag\AbstractReplaceDocCommentTextWithTagCodeRefactoringProvider.cs (1)
137for (var node = token.Parent; node != null; node = node.Parent)
ReplacePropertyWithMethods\AbstractReplacePropertyWithMethodsService.cs (7)
121_expression = (TExpressionSyntax)_expression.Parent!; 124Contract.ThrowIfNull(_expression.Parent, $"Parent of {_expression} is null."); 193if (replacer._expression.Parent is TStatementSyntax) 251else if (_syntaxFacts.IsInferredAnonymousObjectMemberDeclarator(_expression.Parent)) //.IsParentKind(SyntaxKind.AnonymousObjectMemberDeclarator)) 255var declarator = _expression.Parent; 291Contract.ThrowIfNull(_expression.Parent, $"Parent of {_expression} is null."); 296_expression.Parent,
SignatureHelp\CommonSignatureHelpUtilities.cs (2)
166if (initializer is not { Parent: not null }) 176var parentOperation = semanticModel.GetOperation(initializer.Parent, cancellationToken) as IObjectOrCollectionInitializerOperation;
SimplifyThisOrMe\AbstractSimplifyThisOrMeDiagnosticAnalyzer.cs (1)
56if (node.Parent is not TMemberAccessExpressionSyntax memberAccessExpression)
Snippets\SnippetProviders\AbstractConsoleSnippetProvider.cs (1)
88var nearestExpression = closestNode.FirstAncestorOrSelf<TExpressionSyntax>(static exp => exp.Parent is TExpressionStatementSyntax or TLambdaExpressionSyntax);
SpellCheck\AbstractSpellCheckSpanService.cs (1)
104AddStringSpans(token, canContainEscapes: !_syntaxFacts.IsVerbatimInterpolatedStringExpression(token.Parent.Parent));
SplitOrMergeIfStatements\AbstractMergeIfStatementsCodeRefactoringProvider.cs (1)
114while (statements is [{ Parent: var parent }, ..] &&
SplitOrMergeIfStatements\Consecutive\AbstractMergeConsecutiveIfStatementsCodeRefactoringProvider.cs (2)
234blockFacts.IsExecutableBlock(ifOrElseIf.Parent)) 236var blockStatements = blockFacts.GetExecutableBlockStatements(ifOrElseIf.Parent);
SplitOrMergeIfStatements\Consecutive\AbstractSplitIntoConsecutiveIfStatementsCodeRefactoringProvider.cs (1)
88if (!blockFacts.IsExecutableBlock(ifOrElseIf.Parent))
SplitOrMergeIfStatements\Nested\AbstractMergeNestedIfStatementsCodeRefactoringProvider.cs (5)
99if (blockFacts.IsStatementContainer(statement.Parent)) 101var statements = blockFacts.GetStatementContainerStatements(statement.Parent); 105if (rootStatements.Count > 0 && ifGenerator.IsIfOrElseIf(rootStatements[0].Parent)) 107ifOrElseIf = rootStatements[0].Parent; 175var statements = blockFacts.GetStatementContainerStatements(innerIfStatement.Parent);
src\roslyn\src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
35var parent = node.Parent;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessaryParentheses\AbstractRemoveUnnecessaryParenthesesDiagnosticAnalyzer.cs (1)
76var parentKind = parenthesizedExpression.Parent?.RawKind;
src\roslyn\src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (2)
317fieldDeclaration = variableDeclarator?.Parent?.Parent as TFieldDeclaration;
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\UseCollectionInitializerHelpers.cs (1)
69containingBlockOrCompilationUnit = containingBlockOrCompilationUnit.Parent!;
src\roslyn\src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
134var negated = syntaxFacts.IsLogicalNotExpression(invocation.Parent);
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer_IfStatement.cs (1)
132if (whenPartMatch.Parent is TMemberAccessExpressionSyntax memberAccess)
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (2)
199if (whenPartMatch.Parent is TMemberAccessExpressionSyntax memberAccess) 458if (syntaxFacts.IsAnyAssignmentStatement(node.Parent) &&
src\roslyn\src\Analyzers\Core\CodeFixes\AddAnonymousTypeMemberName\AbstractAddAnonymousTypeMemberNameCodeFixProvider.cs (3)
63if (node.Parent is not TAnonymousObjectMemberDeclaratorSyntax declarator) 74if (declarator.Parent is not TAnonymousObjectInitializer) 125var anonymousType = current.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\AddExplicitCast\AbstractAddExplicitCastCodeFixProvider.cs (3)
127if (syntaxFacts.IsParenthesizedExpression(currentTarget.Parent)) 129return (currentTarget.Parent, currentTarget.Parent.ReplaceNode(currentTarget, currentReplacement).WithAdditionalAnnotations(Simplifier.Annotation));
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (1)
74for (var node = initialNode; node != null; node = node.Parent)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateMember\AbstractGenerateMemberService.cs (1)
172if (expression.Parent?.RawKind == syntaxFacts.SyntaxKinds.AddressOfExpression &&
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (2)
346var block = assignmentStatement.Parent; 445if (syntaxKinds.AddressOfExpression == SimpleNameOrMemberAccessExpressionOpt.Parent?.RawKind)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (1)
63var typeDeclarationWithCoreMembers = firstGeneratedMember.Parent!;
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodSynchronous\AbstractMakeMethodSynchronousCodeFixProvider.cs (3)
211expressionNode = nameNode.Parent; 221var invocationExpression = expressionNode.Parent; 241var parentExpression = parentMemberAccessExpression.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\NamingStyle\NamingStyleCodeFixProvider.cs (1)
67node = node.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveUnusedParametersAndValues\AbstractRemoveUnusedValuesCodeFixProvider.cs (16)
173!syntaxFacts.IsExpressionStatement(node.Parent)) 182else if (syntaxFacts.IsDeclarationPattern(node.Parent) || 183syntaxFacts.IsRecursivePattern(node.Parent) || 184syntaxFacts.IsListPattern(node.Parent)) 482if (declaredLocal == null && node.Parent is TCatchStatementSyntax) 484declaredLocal = semanticModel.GetDeclaredSymbol(node.Parent, cancellationToken) as ILocalSymbol; 512Contract.ThrowIfFalse(node.GetRequiredParent().Parent is TExpressionStatementSyntax); 519if (node.Parent is TStatementSyntax) 522nodesToRemove.Add(node.Parent); 524else if (node.Parent is TExpressionSyntax && node.Parent.Parent is TExpressionStatementSyntax) 527nodesToRemove.Add(node.Parent.Parent); 695n => n.Parent is TSwitchCaseBlockSyntax || 696blockFacts.IsExecutableBlock(n.Parent) &&
src\roslyn\src\Analyzers\Core\CodeFixes\SimplifyInterpolation\AbstractSimplifyInterpolationCodeFixProvider.cs (1)
65interpolationSyntax.Parent is TInterpolatedStringExpressionSyntax interpolatedString)
src\roslyn\src\Analyzers\Core\CodeFixes\UseAutoProperty\AbstractUseAutoPropertyCodeFixProvider.cs (4)
443if (fieldToRemove.Parent == property.Parent && 444fieldToRemove.Parent is TTypeDeclarationSyntax typeDeclaration) 582node = node.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\UseCompoundAssignment\AbstractUseCompoundAssignmentCodeFixProvider.cs (1)
98if (syntaxFacts.IsSimpleAssignmentStatement(currentAssignment.Parent))
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\AbstractUseConditionalExpressionCodeFixProvider.cs (2)
182while (sourceSyntax is { Parent.RawKind: var kind } && kind == suppressKind) 183sourceSyntax = sourceSyntax.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\UseNullPropagation\AbstractUseNullPropagationCodeFixProvider.cs (4)
183if (syntaxFacts.IsElseClause(ifStatement.Parent)) 197editor.ReplaceNode(ifStatement.Parent, PostProcessElseIf(ifStatement, newWhenTrueStatement)); 246if (syntaxFacts.IsSimpleMemberAccessExpression(match.Parent)) 248var memberAccess = match.Parent;
Testing\AbstractTestMethodFinder.cs (1)
46return testNodes.WhereAsArray(node => node.Parent?.Span.IntersectsWith(textSpan) == true);
UseNamedArguments\AbstractUseNamedArgumentsCodeRefactoringProvider.cs (3)
34if (potentialArguments.FirstOrDefault(n => n.Parent is TArgumentListSyntax) is not TSimpleArgumentSyntax argument) 69if (argument.Parent is not TArgumentListSyntax argumentList) 143var argumentList = (TArgumentListSyntax)firstArgument.Parent!;
ValueTracking\ValueTracker.cs (2)
216if (operation is null && node.Parent is not null) 218operation = semanticModel.GetOperation(node.Parent, cancellationToken);
ValueTracking\ValueTracker.FindReferencesProgress.cs (4)
72if (syntaxFacts.IsMemberAccessExpression(node.Parent)) 74node = node.Parent; 152if (originalNode is null || originalNode.Parent is null) 158var operation = semanticModel.GetOperation(originalNode.Parent, cancellationToken);
Wrapping\BinaryExpression\AbstractBinaryExpressionWrapper.cs (1)
66if (binaryExpr.Parent is TBinaryExpressionSyntax parentBinary &&
Wrapping\ChainedExpression\AbstractChainedExpressionWrapper.cs (1)
86if (IsDecomposableChainPart(node.Parent))
Microsoft.CodeAnalysis.NetAnalyzers (15)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\RemoveEmptyFinalizers.cs (1)
57var isMethodSurroundedWithDirective = blockOperation.Syntax.Parent?.ContainsDirectives ?? false;
Microsoft.NetCore.Analyzers\Performance\DoNotGuardCall.cs (1)
116locations.Add(guardedInvocation.Syntax.Parent!.GetLocation());
Microsoft.NetCore.Analyzers\Performance\PreferHashDataOverComputeHash.cs (2)
298Location hashCreation = variableInitializerOperation.Syntax.Parent!.GetLocation(); 304var disposeLocation = disposeInvocation.Syntax.Parent!.GetLocation();
Microsoft.NetCore.Analyzers\Performance\PreferHashDataOverComputeHash.Fixer.cs (1)
430var parent = nodeToRemove.Parent!;
Microsoft.NetCore.Analyzers\Usage\DoNotPassNonNullableValueToArgumentNullExceptionThrowIfNull.Fixer.cs (2)
42if (root.FindNode(context.Span, getInnermostNodeForTie: true) is not TInvocationExpression { Parent: not null }) 84if (editor.OriginalRoot.FindNode(diagnostic.Location.SourceSpan, getInnermostNodeForTie: true) is not TInvocationExpression { Parent: SyntaxNode statement } invocation)
Microsoft.NetFramework.Analyzers\Helpers\SecurityDiagnosticHelpers.cs (2)
231while (current.Parent != null) 233SyntaxNode parent = current.Parent;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
181while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 183declSyntax = declSyntax.Parent;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
574syntax = syntax.Parent;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\SemanticModelExtensions.cs (1)
24node = node.Parent;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
453node = generator.GetDeclaration(node.Parent);
Microsoft.CodeAnalysis.Razor.Compiler (3)
CSharp\GenericTypeNameRewriter.cs (1)
59if (node is IdentifierNameSyntax identifier && !(identifier.Parent is QualifiedNameSyntax))
CSharp\GlobalQualifiedTypeNameRewriter.cs (2)
59if (node.Parent is QualifiedNameSyntax) 93if (node.Parent != null)
Microsoft.CodeAnalysis.ResxSourceGenerator (63)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
182while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 184declSyntax = declSyntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers (34)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicEnumsShouldHaveZeroValue.Fixer.vb (2)
18If nodeToFix.IsKind(SyntaxKind.EnumStatement) And nodeToFix.Parent IsNot Nothing Then 19Return nodeToFix.Parent
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicIdentifiersShouldNotContainUnderscores.Fixer.vb (1)
32Return node.Parent
Microsoft.CodeQuality.Analyzers\QualityGuidelines\BasicAvoidMultipleEnumerationsAnalyzer.vb (1)
15Dim parent = TryCast(syntax.Parent, ForEachStatementSyntax)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\BasicUseLiteralsWhereAppropriate.Fixer.vb (1)
20syntaxNode = syntaxNode.Parent
Microsoft.NetCore.Analyzers\Performance\BasicDoNotGuardCall.Fixer.vb (2)
37Return TypeOf childStatementSyntax.Parent Is ElseBlockSyntax OrElse TypeOf childStatementSyntax.Parent Is SingleLineElseClauseSyntax
Microsoft.NetCore.Analyzers\Performance\BasicPreferDictionaryTryMethodsOverContainsKeyGuardFixer.vb (5)
115If variableDeclarator.Parent.GetType() <> GetType(LocalDeclarationStatementSyntax) Then 119localDeclarationStatement = DirectCast(variableDeclarator.Parent, LocalDeclarationStatementSyntax) 141anchor = containsKeyAccess.FirstAncestorOrSelf(Of TernaryConditionalExpressionSyntax)?.Parent 249editor.RemoveNode(fix.DictionaryAddInvocation.Parent, SyntaxRemoveOptions.KeepNoTrivia) 258editor.RemoveNode(fix.DictionaryAddInvocation.Parent, SyntaxRemoveOptions.KeepNoTrivia)
Microsoft.NetCore.Analyzers\Performance\BasicPreferHashDataOverComputeHash.Fixer.vb (3)
38Dim currentCreateNodeParent = currentCreateNode.Parent 42Dim usingBlock = TryCast(usingStatement.Parent, UsingBlockSyntax) 78Dim parent = usingBlock.Parent
Microsoft.NetCore.Analyzers\Performance\BasicPreferLengthCountIsEmptyOverAnyFixer.vb (2)
32If target.Parent.IsKind(SyntaxKind.NotExpression) Then 33Return target.Parent
Microsoft.NetCore.Analyzers\Performance\BasicRecommendCaseInsensitiveStringComparisonFixer.vb (1)
66actualArgumentNode = actualArgumentNode.Parent
Microsoft.NetCore.Analyzers\Runtime\BasicDetectPreviewFeatureAnalyzer.vb (2)
136Dim typeBlock = TryCast(typeStatement.Parent, TypeBlockSyntax) 328Dim declaration = TryCast(definition.Parent, VariableDeclaratorSyntax)
Microsoft.NetCore.Analyzers\Runtime\BasicForwardCancellationTokenToInvocations.Fixer.vb (4)
27Dim parentSyntax As MemberAccessExpressionSyntax = TryCast(node.Parent, MemberAccessExpressionSyntax) 30operation = model.GetOperation(node.Parent.Parent, ct) 32operation = model.GetOperation(node.Parent, ct)
Microsoft.NetCore.Analyzers\Runtime\BasicMarkAllNonSerializableFields.Fixer.vb (1)
17fieldNode = fieldNode.Parent
Microsoft.NetCore.Analyzers\Runtime\BasicSpecifyCultureForToLowerAndToUpper.Fixer.vb (6)
20Nullable.Equals(node.Parent?.IsKind(SyntaxKind.SimpleMemberAccessExpression), True) 28Dim memberAccess = DirectCast(node.Parent, MemberAccessExpressionSyntax) 30If memberAccess.Parent Is Nothing OrElse Not memberAccess.Parent.IsKind(SyntaxKind.InvocationExpression) Then 34Dim invocation = DirectCast(memberAccess.Parent, InvocationExpressionSyntax) 56Return If(ShouldFix(node), node.Parent, Nothing)
Microsoft.NetCore.Analyzers\Runtime\BasicUseOrdinalStringComparison.Fixer.vb (1)
46Return identifier.Parent?.FirstAncestorOrSelf(Of InvocationExpressionSyntax)()
Microsoft.NetCore.Analyzers\Usage\BasicPreferGenericOverloads.Fixer.vb (2)
55If TypeOf castExpressionSyntax.Parent Is ParenthesizedExpressionSyntax Then 56Dim parenthesizedExpressionSyntax = CType(castExpressionSyntax.Parent, ParenthesizedExpressionSyntax)
Microsoft.CodeAnalysis.Workspaces (82)
Differencing\AbstractSyntaxComparer.cs (2)
67parent = node.Parent; 70parent = parent.Parent;
Editing\SyntaxGenerator.cs (2)
95node = node.Parent; 113node = node.Parent;
FindSymbols\FindReferences\Finders\AbstractReferenceFinder_GlobalSuppressions.cs (3)
184var attributeArgument = token.Parent?.Parent; 190var attributeNode = attributeArgument!.Parent?.Parent;
FindSymbols\FindReferences\Finders\AbstractTypeParameterSymbolReferenceFinder.cs (1)
51syntaxFacts.IsObjectCreationExpression(token.Parent.Parent);
FindSymbols\FindReferences\Finders\ParameterSymbolReferenceFinder.cs (1)
171for (var current = parameterNode; current != null; current = current.Parent)
Recommendations\AbstractRecommendationServiceRunner.cs (9)
84if (!(syntaxFactsService.IsArgument(lambdaSyntax.Parent) && 85syntaxFactsService.IsInvocationExpression(lambdaSyntax.Parent.Parent.Parent))) 90var invocationExpression = lambdaSyntax.Parent.Parent.Parent; 92var argumentName = syntaxFactsService.GetNameForArgument(lambdaSyntax.Parent); 93var ordinalInInvocation = arguments.IndexOf(lambdaSyntax.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.DotNet.CodeAnalysis (3)
Analyzers\AppContextDefaultsAnalyzer.cs (3)
88if (!(containingIfStatement.Parent.IsKind(SyntaxKind.SwitchSection) || 89containingIfStatement.Parent.Parent.IsKind(SyntaxKind.SwitchSection)))
Microsoft.DotNet.GenFacades (15)
NotSupportedAssemblyGenerator.cs (5)
201if (node.Parent is NamespaceDeclarationSyntax parentNamespace) 207parent = GetFullyQualifiedName((TypeDeclarationSyntax)node.Parent); 215private string GetMethodDefinition(MethodDeclarationSyntax node) => GetFullyQualifiedName((TypeDeclarationSyntax)node.Parent) + "." + node.Identifier.ValueText; 217private string GetPropertyDefinition(PropertyDeclarationSyntax node) => GetFullyQualifiedName((TypeDeclarationSyntax)node.Parent) + "." + node.Identifier.ValueText; 219private string GetEventDefinition(EventDeclarationSyntax node) => GetFullyQualifiedName((TypeDeclarationSyntax)node.Parent) + "." + node.Identifier.ValueText;
TypeParser.cs (10)
79if (item.Parent is NamespaceDeclarationSyntax parent) 85fullyQualifiedName = GetFullyQualifiedName((BaseTypeDeclarationSyntax)item.Parent, item.Identifier.ValueText.Trim()); 96if (node.Parent is NamespaceDeclarationSyntax parent) 102return GetFullyQualifiedName((BaseTypeDeclarationSyntax)node.Parent, string.IsNullOrEmpty(nested) ? typeName : typeName + "." + nested); 155if (token.Parent == null || token.Parent is NamespaceDeclarationSyntax) 158return HasPublicModifier(token.Modifiers) && HasPublicModifier((BaseTypeDeclarationSyntax)(token.Parent)); 163if (token.Parent == null || token.Parent is NamespaceDeclarationSyntax) 166return HasPublicModifier(token.Modifiers) && HasPublicModifier((BaseTypeDeclarationSyntax)(token.Parent));
Microsoft.Extensions.Configuration.Binder.SourceGeneration (1)
ConfigurationBindingGenerator.Suppressor.cs (1)
71if ((syntaxNode as InvocationExpressionSyntax ?? syntaxNode.Parent as InvocationExpressionSyntax) is not InvocationExpressionSyntax invocation)
Microsoft.Extensions.Logging.Generators (6)
LoggerMessageGenerator.Parser.cs (5)
547SyntaxNode? potentialNamespaceParent = classDec.Parent; 555potentialNamespaceParent = potentialNamespaceParent.Parent; 567namespaceParent = namespaceParent.Parent as NamespaceDeclarationSyntax; 589var parentLoggerClass = (classDec.Parent as TypeDeclarationSyntax); 607parentLoggerClass = (parentLoggerClass.Parent as TypeDeclarationSyntax);
LoggerMessageGenerator.Roslyn4.0.cs (1)
37var classDeclaration = context.TargetNode.Parent as ClassDeclarationSyntax;
Microsoft.Extensions.Options.SourceGeneration (2)
Parser.cs (2)
167var parent = syntax.Parent as TypeDeclarationSyntax; 172parent = parent.Parent as TypeDeclarationSyntax;
Microsoft.Gen.BuildMetadata (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.ComplianceReports (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.ContextualOptions (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.Logging (9)
LoggingGenerator.cs (2)
22(syntaxNode, _) => syntaxNode.Parent is TypeDeclarationSyntax, 23(context, _) => (TypeDeclarationSyntax)context.TargetNode.Parent!);
Parsing\Parser.cs (5)
298SyntaxNode? potentialNamespaceParent = typeDec.Parent; 303potentialNamespaceParent = potentialNamespaceParent.Parent; 312namespaceParent = namespaceParent.Parent as NamespaceDeclarationSyntax; 338var parentLoggerClass = typeDec.Parent as TypeDeclarationSyntax; 357parentLoggerClass = parentLoggerClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.MetadataExtractor (7)
src\Generators\Microsoft.Gen.Metrics\Parser.cs (5)
108SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 113potentialNamespaceParent = potentialNamespaceParent.Parent; 122ns = ns.Parent as NamespaceDeclarationSyntax; 147var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 170parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.Metrics (8)
MetricsGenerator.cs (1)
29GeneratorUtilities.Initialize(context, _attributeNames, m => m.Parent as TypeDeclarationSyntax, HandleAnnotatedTypes);
Parser.cs (5)
108SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 113potentialNamespaceParent = potentialNamespaceParent.Parent; 122ns = ns.Parent as NamespaceDeclarationSyntax; 147var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 170parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.MetricsReports (7)
src\Generators\Microsoft.Gen.Metrics\Parser.cs (5)
108SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 113potentialNamespaceParent = potentialNamespaceParent.Parent; 122ns = ns.Parent as NamespaceDeclarationSyntax; 147var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 170parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Interop.ComInterfaceGenerator (6)
Analyzers\ComInterfaceGeneratorDiagnosticsAnalyzer.cs (2)
304if (attrSyntax.Parent?.Parent is InterfaceDeclarationSyntax ifaceSyntax)
Analyzers\VtableIndexStubDiagnosticsAnalyzer.cs (2)
120for (SyntaxNode? parentNode = methodSyntax.Parent; parentNode is TypeDeclarationSyntax typeDecl; parentNode = parentNode.Parent)
parent\Common\ConvertToSourceGeneratedInteropFixer.cs (2)
230for (SyntaxNode? node = syntax.Parent; node is not null; node = node.Parent)
Microsoft.Interop.JavaScript.JSImportGenerator (1)
Analyzers\JSImportExportDiagnosticsAnalyzer.cs (1)
170if (methodSyntax.Parent is TypeDeclarationSyntax typeDecl && !typeDecl.IsInPartialContext(out var nonPartialIdentifier))
Microsoft.Interop.LibraryImportGenerator (12)
Analyzers\ConvertToLibraryImportFixer.cs (9)
324{ Parent: InvocationExpressionSyntax invocationInScope } => invocationInScope, 325{ Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocationOnType } } => invocationOnType, 343else if (invocation.Parent.IsKind(SyntaxKind.ExpressionStatement)) 363else if (invocation.Parent.IsKind(SyntaxKind.EqualsValueClause)) 396else if (invocation.Parent.IsKind(SyntaxKind.SimpleAssignmentExpression) && invocation.Parent.Parent.IsKind(SyntaxKind.ExpressionStatement)) 398editor.ReplaceNode(invocation.Parent,
Analyzers\LibraryImportDiagnosticsAnalyzer.cs (1)
370if (methodSyntax.Parent is TypeDeclarationSyntax typeDecl && !typeDecl.IsInPartialContext(out var nonPartialIdentifier))
parent\Common\ConvertToSourceGeneratedInteropFixer.cs (2)
230for (SyntaxNode? node = syntax.Parent; node is not null; node = node.Parent)
Microsoft.Interop.LibraryImportGenerator.Downlevel (1)
DownlevelLibraryImportDiagnosticsAnalyzer.cs (1)
371if (methodSyntax.Parent is TypeDeclarationSyntax typeDecl && !typeDecl.IsInPartialContext(out var nonPartialIdentifier))
Microsoft.Interop.SourceGeneration (6)
MarshalAsParser.cs (2)
270Parent.Parent: ParameterSyntax parameterSyntax
src\runtime\src\libraries\Common\src\SourceGenerators\ContainingTypeUtilities.cs (1)
22for (TypeDeclarationSyntax? current = innermostType; current is not null; current = current.Parent as TypeDeclarationSyntax)
SyntaxExtensions.cs (3)
20foreach (TypeDeclarationSyntax typeDeclaration in ContainingTypeUtilities.EnumerateContainingTypes(memberDeclaration.Parent as TypeDeclarationSyntax)) 26for (SyntaxNode? parent = memberDeclaration.FirstAncestorOrSelf<BaseNamespaceDeclarationSyntax>(); parent is BaseNamespaceDeclarationSyntax ns; parent = parent.Parent) 43for (SyntaxNode? parentNode = syntax; parentNode is TypeDeclarationSyntax typeDecl; parentNode = parentNode.Parent)
Microsoft.ML.InternalCodeAnalyzer (12)
ContractsCheckAnalyzer.cs (2)
165node = node.Parent; 209if (isExcept && invocation.Parent.IsKind(SyntaxKind.ExpressionStatement))
ContractsCheckNameofFixProvider.cs (9)
50Debug.Assert(nameArg.Parent.Parent.IsKind(SyntaxKind.InvocationExpression)); 51var invokeExp = (InvocationExpressionSyntax)nameArg.Parent.Parent; 56var argList = (ArgumentListSyntax)nameArg.Parent; 78var pk = node.Parent.Kind(); 81var parentAccess = (MemberAccessExpressionSyntax)node.Parent; 89candidate = SyntaxFactory.ParseExpression(node.Parent.ToString()); 109temp = temp.Parent;
SingleVariableDeclarationAnalyzer.cs (1)
44if (vars.Count <= 1 || node.Parent.IsKind(SyntaxKind.ForStatement))
QuarantineTools.Tests (4)
ActiveIssueTests.cs (2)
325for (var current = node.Parent; current != null; current = current.Parent)
QuarantineScriptTests.cs (2)
269for (var current = node.Parent; current != null; current = current.Parent)
Roslyn.Diagnostics.Analyzers (70)
SpecializedEnumerableCreationAnalyzer.cs (1)
147addDiagnostic(name.Parent.CreateDiagnostic(UseEmptyEnumerableRule));
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
182while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 184declSyntax = declSyntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Roslyn.Diagnostics.CSharp.Analyzers (503)
CSharpImportingConstructorShouldBeObsoleteCodeFixProvider.cs (1)
27typeDeclaration = attributeName.GetAncestor<AttributeListSyntax>()?.Parent;
CSharpSpecializedEnumerableCreationAnalyzer.cs (1)
101AnalyzeArrayLength(initializer.Expressions.Count, initializer.Parent, addDiagnostic);
src\50a3a051b0fef0d6\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\a6db168d9ad5d460\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ArgumentSyntaxExtensions.cs (3)
45if (argument.Parent is not BaseArgumentListSyntax argumentList || 46argumentList.Parent is null) 52var symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DefaultExpressionSyntaxExtensions.cs (4)
40if (defaultExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 70equalsValueClause.Parent?.Parent is VariableDeclarationSyntax declaration) 74else if (equalsValueClause?.Parent is ParameterSyntax parameter)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (55)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression is { Parent: NameMemberCrefSyntax { Parent: QualifiedCrefSyntax } }; 48=> expression?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == expression; 55return expression == (expression.Parent as MemberAccessExpressionSyntax)?.Name || 60=> expression?.Parent is MemberBindingExpressionSyntax memberBinding && 64=> expression?.Parent is QualifiedNameSyntax qualifiedName && qualifiedName.Right == expression; 67=> expression?.Parent is AliasQualifiedNameSyntax aliasName && aliasName.Name == expression; 98=> (expression?.Parent) is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 103(expression.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Expression == expression); 106=> (expression?.Parent) is QualifiedNameSyntax qualifiedName && qualifiedName.Left == expression; 112=> expression?.Parent is InvocationExpressionSyntax invocation && 197=> expression?.Parent is ArgumentSyntax { RefOrOutKeyword: SyntaxToken(SyntaxKind.OutKeyword) } argument && 209while (expression?.Parent is ParenthesizedExpressionSyntax or PostfixUnaryExpressionSyntax(SyntaxKind.SuppressNullableWarningExpression)) 210expression = (ExpressionSyntax)expression.Parent; 212if (expression?.Parent is RefExpressionSyntax or 215refParent = expression.Parent; 224=> expression?.Parent is ArgumentSyntax { RefKindKeyword: SyntaxToken(SyntaxKind.InKeyword) }; 248if (expression.Parent != null) 282var parent = expr.Parent; 291if (parent.Parent?.Kind() == SyntaxKind.TupleExpression) 293expr = (TupleExpressionSyntax)parent.Parent; 337if (refParent.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type: { } variableDeclarationType } } }) 355if (expression.Parent.IsKind(SyntaxKind.AddressOfExpression)) 366if (expression.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccess && 384if (expression.Parent is ArgumentSyntax) 399var nameEquals = expression?.Parent as NameEqualsSyntax; 405if (expression?.Parent is SyntaxNode parent) 421=> expression is IdentifierNameSyntax { Parent: NameColonSyntax }; 517return expression is { Parent.RawKind: not (int)SyntaxKind.ConditionalAccessExpression }; 520if (expression.Parent == null) 523switch (expression.Parent.Kind()) 553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 555!parentConditionalAccessExpression.Parent.IsKind(SyntaxKind.ConditionalAccessExpression); 560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 596if (expression.Parent is PrefixUnaryExpressionSyntax) 606while (topExpression.Parent is TypeSyntax typeSyntax) 620if (expression.Parent is PostfixUnaryExpressionSyntax or 639if ((expression.IsParentKind(SyntaxKind.NameEquals) && expression.Parent.IsParentKind(SyntaxKind.AttributeArgument)) || 649=> expression is { Parent: ArgumentSyntax { Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocation } } } && 901=> expression?.Parent is MemberAccessExpressionSyntax; 912var parent = topExpression.Parent; 944if (argument.Parent is TupleExpressionSyntax tupleExpression) 973for (SyntaxNode? current = returnStatement; current != null; current = current.Parent) 988if (equalsValue.Parent is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: true } }) 1058if (initializerExpression.Parent is ArrayCreationExpressionSyntax arrayCreation) 1062if (initializerExpression.Parent is ImplicitArrayCreationExpressionSyntax) 1074if (initializerExpression.Parent is EqualsValueClauseSyntax equalsValue) 1078if (initializerExpression.Parent is StackAllocArrayCreationExpressionSyntax or ImplicitStackAllocArrayCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
27var nodeParent = node.Parent; 39? nodeParent.Parent as ExpressionSyntax 70if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 368if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 548if (node?.Parent is CastExpressionSyntax castExpression) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 608(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 660if (node.Parent is ArgumentSyntax argument) 662if (argument.Parent is ArgumentListSyntax argumentList) 671else if (node.Parent is InitializerExpressionSyntax initializer) 695if (node.Parent is ArgumentSyntax argument) 697if (argument.Parent is ArgumentListSyntax argumentList) 706else if (node.Parent is InitializerExpressionSyntax initializer) 744if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 759if (node.Parent is ParenthesizedPatternSyntax) 763if (node.Parent is IsPatternExpressionSyntax) 767if (node.Parent is SwitchExpressionArmSyntax) 771if (node.Parent is SubpatternSyntax) 775if (node.Parent is CasePatternSwitchLabelSyntax) 781return node.Parent is PatternSyntax patternParent &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList } baseType && 215else if (baseList.Types[0] == type.Parent) 224if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 233type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 234type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 235type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 251if (type.Parent.Kind() 260type.Parent, cancellationToken).DeclaredAccessibility; 273if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 275if (type.Parent.Parent.Parent?.Kind() 282type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 285if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 287var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 380if (current.Parent is ForEachStatementSyntax foreachStatement && 387if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 432if (topExpression?.Parent is ArgumentSyntax argument) 439if (argument.Parent is BaseArgumentListSyntax argumentList) 442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (6)
19return ((MemberAccessExpressionSyntax)name.Parent).Expression; 27return ((QualifiedNameSyntax)name.Parent).Left; 31return ((QualifiedCrefSyntax)name.Parent.Parent).Container; 52if (simpleName?.Parent is InvocationExpressionSyntax invocation && 59if (simpleName?.Parent is ElementAccessExpressionSyntax elementAccess &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\StatementSyntaxExtensions.cs (4)
40if (first.Parent.IsKind(SyntaxKind.GlobalStatement)) 41return second.Parent.IsKind(SyntaxKind.GlobalStatement); 43return first.Parent == second.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (23)
45=> CodeAnalysis.CSharpExtensions.IsKind(node?.Parent, kind); 52result = (TNode)node.Parent!; 186if ((current?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == current) || 187(current?.Parent is MemberBindingExpressionSyntax memberBinding && memberBinding.Name == current)) 189current = current.Parent; 203current.Parent is not ConditionalAccessExpressionSyntax) 205current = current.Parent; 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 288=> node?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment && 292=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Left == node; 295=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Right == node; 299return node?.Parent != null && 300node.Parent.IsCompoundAssignExpression() && 301((AssignmentExpressionSyntax)node.Parent).Left == node; 337for (var current = node; current != null; current = current.Parent) 360return !current.Parent.IsKind(SyntaxKind.CompilationUnit); 663=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 679current = current.Parent; 781for (var current = node; current != null; current = current.Parent) 829for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
110if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 113return token.Parent.Parent.GetFirstToken() != token; 126=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 135return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 204&& statementOrElse.Parent != null 205&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 282token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 382token.Parent?.Parent is QueryExpressionSyntax queryExpression && 390var parent = initializer.Parent; 414return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 426var parent = initializer.Parent; 446var parent = anonymousObjectInitializer.Parent; 482return token.Parent.Parent is LabeledStatementSyntax; 527return currentToken.Kind() == SyntaxKind.OpenParenToken && currentToken is { Parent: ParenthesizedVariableDesignationSyntax, Parent.Parent: DeclarationExpressionSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
36if (block.Parent is null or BlockSyntax) 44block.Parent.GetFirstToken(includeZeroWidth: true),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
167RoslynDebug.AssertNotNull(node.Parent); 170firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (10)
63if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 103RoslynDebug.AssertNotNull(node.Parent); 104var switchStatement = (SwitchStatementSyntax)node.Parent; 183if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 228if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 262if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression) 378for (var current = node; current != null; current = current.Parent) 380if (current.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == current)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (7)
49var parentKind = node.Parent?.Kind(); 85&& previousToken.Parent!.Parent == currentToken.Parent.Parent) 165var currentTokenParentParent = currentToken.Parent.Parent; 280|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 369var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 378if (initializer?.Parent != null) 380AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
205var attributeOwner = previousToken.Parent?.Parent; 231RoslynDebug.AssertNotNull(currentUsing.Parent); 233if (AreUsingsProperlyGrouped(GetUsings(currentUsing.Parent)))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (6)
351case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }: 410SimpleNameSyntax { Parent: InvocationExpressionSyntax invocation } => invocation.ArgumentList, 412SimpleNameSyntax { Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberAccess } when memberAccess.Name == node => invocation.ArgumentList, 414SimpleNameSyntax { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberBinding } when memberBinding.Name == node => invocation.ArgumentList,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (29)
173=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 204=> node?.Parent is UsingDirectiveSyntax usingDirective && 254return node.Parent is BaseMethodDeclarationSyntax or 528if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 637node.Parent.IsParentKind(SyntaxKind.Subpattern); 649if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 651var withInitializer = identifier.Parent.GetRequiredParent(); 655else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 657var objectInitializer = identifier.Parent.GetRequiredParent(); 658if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 660initializedInstance = objectInitializer.Parent; 663else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 675=> expression is IdentifierNameSyntax { Parent: NameEqualsSyntax { Parent: AnonymousObjectMemberDeclaratorSyntax } nameEquals } identifier && 682Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 685creationExpression = node.Parent; 731node = node.Parent; 772var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 776parent = parent.Parent; 785parent = parent.Parent; 955var parent = node.Parent; 1091=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1094=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1155node.Parent is AttributeListSyntax attributeList && 1184return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1309=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1315=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\CSharpInferredMemberNameSimplifier.cs (3)
14if (node.NameColon == null || !node.Parent.IsKind(SyntaxKind.TupleExpression)) 24if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node)) 45if (RemovalCausesAmbiguity(((AnonymousObjectCreationExpressionSyntax)node.Parent!).Initializers, node))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (32)
126if (leftOrRightChild.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression or SyntaxKind.NotEqualsExpression) binary) 160if (castExpression.WalkUpParentheses().Parent is PrefixUnaryExpressionSyntax(SyntaxKind.BitwiseNotExpression) parent && 161parent.WalkUpParentheses().Parent is CastExpressionSyntax parentCast) 193if (isDefaultLiteralCast && castNode.WalkUpParentheses().Parent is PatternSyntax or CaseSwitchLabelSyntax) 356if (castNode.WalkUpParentheses().Parent is InterpolationSyntax) 467if (castNode.WalkUpParentheses().Parent is MemberAccessExpressionSyntax memberAccessExpression) 500if (castNode.WalkUpParentheses().Parent is InvocationExpressionSyntax invocationExpression) 519if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 756if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 878static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 903static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1077if (expression.WalkUpParentheses().Parent 1195if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1265if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1272else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1278else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1280equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1304for (SyntaxNode? current = expression; current != null; current = current.Parent) 1319for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1321currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1375for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1377currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1404for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1406currentOld = currentOld.Parent, currentNew = currentNew.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
180var containerOfList = parent.Parent; 196var parentOfParent = parent.Parent; 330RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 331var labelNode = previousToken.Parent.Parent; 374RoslynDebug.AssertNotNull(node.Parent); 376node = node.Parent; 383node = node.Parent; 393node = node.Parent; 435return token.Parent.Parent as MemberDeclarationSyntax;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
297Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 298Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode); 441var oldSwitchStatement = (SwitchStatementSyntax)originalCaseSwitchLabel.Parent.Parent; 442var newSwitchStatement = (SwitchStatementSyntax)newCaseSwitchLabel.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
83var isSupportedParentKind = variableDeclaration.Parent is (kind: 99switch (declaration.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
65if (typeName.Parent is DeclarationExpressionSyntax declExpression && 78if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 91if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 106else if (typeName.Parent is DeclarationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
104if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 107if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 139else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 201if (declarationExpression.Parent is not ArgumentSyntax 203Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 277if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpDeclarationComparer.cs (5)
345for (var node = parent; node != null; node = node.Parent) 388var xAccessibility = GetAccessibilityPrecedence(xModifiers, x.Parent ?? y.Parent); 389var yAccessibility = GetAccessibilityPrecedence(yModifiers, y.Parent ?? x.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (7)
215targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 378token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 394token.Parent.Parent is StatementSyntax) 491FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause, 548return attributeList?.Parent switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (20)
126if (token.Parent.Parent is StatementSyntax) 135if (token.Parent.Parent.Kind() is not SyntaxKind.TryStatement and not SyntaxKind.DoStatement) 138else if (token.Parent.Parent?.Kind() 180var container = token.Parent.Parent; 261var container = token.Parent.Parent; 262if (container is IncompleteMemberSyntax && container.Parent is CompilationUnitSyntax) 451targetToken.Parent.Parent.IsKind(SyntaxKind.Argument) && 452targetToken.Parent.Parent.Parent.IsKind(SyntaxKind.ArgumentList)) 454var owner = targetToken.Parent.Parent.Parent.Parent; 469if (targetToken.Parent?.Parent?.Kind() 590targetToken.Parent.Parent is AccessorDeclarationSyntax) 605targetToken.Parent.Parent is AccessorDeclarationSyntax) 617if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 619else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 650targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 651IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (76)
100parent = attributeList.Parent; 180token.Parent.Parent is BaseTypeDeclarationSyntax) 197token.Parent.Parent is BaseTypeDeclarationSyntax) 209token.Parent.Parent is MemberDeclarationSyntax) 229var container = token.Parent.Parent?.Parent; 313member.Parent is BaseTypeDeclarationSyntax; 493token.Parent.Parent is MemberDeclarationSyntax) 520var container = token.Parent?.Parent?.Parent; 597var container = token.Parent?.Parent; 786token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 841token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 957{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1016name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1018conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1106token.Parent.Parent is ParameterSyntax parameter3 && 1107parameter3.Parent is ParameterListSyntax parameterList3 && 1122parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1126if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1136=> parameterList.Parent switch 1275parent = token.Parent.Parent; 1277else if (token.IsKind(SyntaxKind.IdentifierToken) && token is { Text: "scoped", Parent: IdentifierNameSyntax scopedIdentifierName } && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1279parent = scopedIdentifierName.Parent.Parent; 1358leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1360var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1442leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1528while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1533if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1564if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1592possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1660if (outer.Parent is ForEachStatementSyntax @foreach) 1681if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1683node = node.Parent; 1687if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1689node = node.Parent.Parent; 1701leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1809parent.Parent?.Parent is (kind: 1817if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1873if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2086equalsValue.Parent.IsParentKind(SyntaxKind.VariableDeclaration)) 2349type.Parent?.Parent is LocalDeclarationStatementSyntax declStatement) 2502token.Parent?.Parent is ObjectCreationExpressionSyntax objectCreation) 2739=> token.Parent?.Parent is InvocationExpressionSyntax invocation && 2756while (parentMemberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 2758parentMemberAccess = parentMemberAccess.Parent; 2761if (parentMemberAccess.Parent.IsKind(SyntaxKind.Argument) && 2762parentMemberAccess.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2764token = ((ArgumentListSyntax)parentMemberAccess.Parent.Parent!).OpenParenToken; 2772while (parentQualifiedName.Parent.IsKind(SyntaxKind.QualifiedName)) 2774parentQualifiedName = parentQualifiedName.Parent; 2777if (parentQualifiedName.Parent.IsKind(SyntaxKind.Argument) && 2778parentQualifiedName.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2780token = ((ArgumentListSyntax)parentQualifiedName.Parent.Parent!).OpenParenToken; 2789token.Parent.Parent is InvocationExpressionSyntax invocationExpression && 2858nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2869token.Parent.Parent is (kind: SyntaxKind.ObjectInitializerExpression or SyntaxKind.CollectionInitializerExpression)) 2878if (token.Parent.Parent is ArgumentSyntax { RefOrOutKeyword.RawKind: (int)SyntaxKind.OutKeyword }) 2914if (name.Parent != null) 2916switch (name.Parent.Kind()) 2919return ((QualifiedNameSyntax)name.Parent).Right == name; 2921return ((AliasQualifiedNameSyntax)name.Parent).Name == name; 2923return ((MemberAccessExpressionSyntax)name.Parent).Name == name; 2957block.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.CatchClause) 3001targetToken.Parent is BaseListSyntax { Parent: TypeDeclarationSyntax }; 3034token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression && 3041token.Parent?.Parent is DeclarationPatternSyntax declarationExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (1)
20if (withElement?.Parent is not CollectionExpressionSyntax collectionExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
353var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.cs (3)
132!argument.Parent.IsKind(SyntaxKind.ThisConstructorInitializer) && 193RoslynDebug.AssertNotNull(node.Parent); 196var baseToken = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (9)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 229if (embeddedStatementOwner.Parent is LabeledStatementSyntax) 232embeddedStatementOwner = embeddedStatementOwner.Parent; 254token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 406if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 429RoslynDebug.AssertNotNull(queryBody.Parent); 430return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
46if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 281if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 287if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 293if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 304if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 311if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 322if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 327if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 328argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 329argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 330argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 381if (argument.Parent != null) 383if (argument.Parent.Parent is AttributeSyntax attribute) 521switch (argumentList.Parent) 551if (attributeArgumentList.Parent is AttributeSyntax attribute) 747var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 900if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1218if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1221if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1225SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1243if (expressionElement.Parent is CollectionExpressionSyntax collectionExpression) 1434if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1462else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1472else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1482else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1506var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1575if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1713if (memberDeclarator is { NameEquals: not null, Parent: AnonymousObjectCreationExpressionSyntax anonymousObject }) 1738return nameColon.Parent switch 1754return expressionColon.Parent switch 1806memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1807memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1929if (nameColon.Parent is SubpatternSyntax subpattern) 1939if (expressionColon.Parent is SubpatternSyntax subpattern) 1956if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2114=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2198var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2264variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2332var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\SemanticModelReuse\CSharpSemanticModelReuseLanguageService.cs (6)
31Contract.ThrowIfFalse(accessor.Parent is AccessorListSyntax); 32Contract.ThrowIfFalse(accessor.Parent.Parent is BasePropertyDeclarationSyntax); 33return (BasePropertyDeclarationSyntax)accessor.Parent.Parent; 41for (SyntaxNode? previous = null, current = node; current != null; previous = current, current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
System.Text.Json.SourceGeneration (1)
src\runtime\src\libraries\Common\src\SourceGenerators\ContainingTypeUtilities.cs (1)
22for (TypeDeclarationSyntax? current = innermostType; current is not null; current = current.Parent as TypeDeclarationSyntax)
System.Text.RegularExpressions.Generator (3)
RegexGenerator.Parser.cs (3)
50TypeDeclarationSyntax? typeDec = memberSyntax.Parent as TypeDeclarationSyntax; 229var parent = typeDec.Parent as TypeDeclarationSyntax; 239parent = parent.Parent as TypeDeclarationSyntax;