4548 references to Parent
Analyzer.Utilities.UnitTests (3)
FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysisTests.cs (3)
73Assert.NotNull(syntaxNode?.Parent); 74ISymbol? symbol = model.GetDeclaredSymbol(syntaxNode.Parent) ?? model.GetSymbolInfo(syntaxNode.Parent).Symbol;
GenerateDocumentationAndConfigFiles (66)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
197var node = usingDirective != null ? usingDirective.Parent! : contextNode;
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;
Metrics (64)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Metrics.Legacy (64)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.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.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.CodeAnalysis (25)
DiagnosticAnalyzer\AnalyzerDriver.cs (1)
1279node = node.Parent)
DiagnosticAnalyzer\SuppressMessageAttributeState.cs (1)
168node = 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 (9)
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; 802return this.Parent? 820var parent = node.Parent; 982var 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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
197var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.AnalyzerUtilities (63)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.BannedApiAnalyzers (69)
RestrictedInternalsVisibleToAnalyzer.cs (1)
72name.Parent is TNameSyntax)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
197var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.CodeStyle (66)
src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
35var parent = node.Parent;
src\Analyzers\Core\Analyzers\RemoveUnnecessaryParentheses\AbstractRemoveUnnecessaryParenthesesDiagnosticAnalyzer.cs (1)
73var parentKind = parenthesizedExpression.Parent?.RawKind;
src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (2)
317fieldDeclaration = variableDeclarator?.Parent?.Parent as TFieldDeclaration;
src\Analyzers\Core\Analyzers\UseCollectionInitializer\UseCollectionInitializerHelpers.cs (1)
69containingBlockOrCompilationUnit = containingBlockOrCompilationUnit.Parent!;
src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
134var negated = syntaxFacts.IsLogicalNotExpression(invocation.Parent);
src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer_IfStatement.cs (1)
132if (whenPartMatch.Parent is TMemberAccessExpressionSyntax memberAccess)
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.CodeStyle.Fixes (47)
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\Analyzers\Core\CodeFixes\AddExplicitCast\AbstractAddExplicitCastCodeFixProvider.cs (3)
129if (syntaxFacts.IsParenthesizedExpression(currentTarget.Parent)) 131return (currentTarget.Parent, currentTarget.Parent.ReplaceNode(currentTarget, currentReplacement).WithAdditionalAnnotations(Simplifier.Annotation));
src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (1)
74for (var node = initialNode; node != null; node = node.Parent)
src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (2)
340var block = assignmentStatement.Parent; 439if (syntaxKinds.AddressOfExpression == SimpleNameOrMemberAccessExpressionOpt.Parent?.RawKind)
src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (1)
63var typeDeclarationWithCoreMembers = firstGeneratedMember.Parent!;
src\Analyzers\Core\CodeFixes\MakeMethodSynchronous\AbstractMakeMethodSynchronousCodeFixProvider.cs (3)
213expressionNode = nameNode.Parent; 223var invocationExpression = expressionNode.Parent; 243var parentExpression = parentMemberAccessExpression.Parent;
src\Analyzers\Core\CodeFixes\NamingStyle\NamingStyleCodeFixProvider.cs (1)
67node = node.Parent;
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\Analyzers\Core\CodeFixes\SimplifyInterpolation\AbstractSimplifyInterpolationCodeFixProvider.cs (1)
66interpolationSyntax.Parent is TInterpolatedStringExpressionSyntax interpolatedString)
src\Analyzers\Core\CodeFixes\UseAutoProperty\AbstractUseAutoPropertyCodeFixProvider.cs (4)
411if (fieldToRemove.Parent == property.Parent && 412fieldToRemove.Parent is TTypeDeclarationSyntax typeDeclaration) 512node = node.Parent;
src\Analyzers\Core\CodeFixes\UseCompoundAssignment\AbstractUseCompoundAssignmentCodeFixProvider.cs (1)
101if (syntaxFacts.IsSimpleAssignmentStatement(currentAssignment.Parent))
src\Analyzers\Core\CodeFixes\UseConditionalExpression\AbstractUseConditionalExpressionCodeFixProvider.cs (2)
172while (sourceSyntax is { Parent.RawKind: var kind } && kind == suppressKind) 173sourceSyntax = sourceSyntax.Parent;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
197var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.CSharp (144)
Binder\Binder.IdentifierUsedAsValueFinder.cs (2)
123Debug.Assert(targetNode.Parent is not null); 124targetNode = targetNode.Parent;
Binder\Binder_Conversions.cs (3)
2719if (node.Parent != null && node.Parent.Kind() == SyntaxKind.InvocationExpression) 2721errorNode = node.Parent;
Binder\Binder_Expressions.cs (6)
4639SyntaxNode equalsValueClause = node.Parent; 4646SyntaxNode variableDeclarator = equalsValueClause.Parent; 4653SyntaxNode variableDeclaration = variableDeclarator.Parent; 4660variableDeclaration.Parent.IsKind(SyntaxKind.LocalDeclarationStatement) || 4661variableDeclaration.Parent.IsKind(SyntaxKind.ForStatement); 9476if (expr.Syntax.Parent is ConditionalAccessExpressionSyntax conditional &&
Binder\Binder_QueryErrors.cs (1)
33for (SyntaxNode node = queryClause; ; node = node.Parent)
Binder\Binder_Statements.cs (2)
3414if (syntax.Parent is QueryClauseSyntax || syntax.Parent is SelectOrGroupClauseSyntax)
Binder\Binder_Symbols.cs (2)
2360node = node.Parent; 2660var code = (where.Parent is QueryClauseSyntax) ? ErrorCode.ERR_TypeVarNotFoundRangeVariable : ErrorCode.ERR_TypeVarNotFound;
Binder\Binder_TupleOperators.cs (1)
318Location location = ((BoundTupleExpression)(useRight ? right : left)).Arguments[i].Syntax.Parent.Location;
Binder\BinderFactory.BinderFactoryVisitor.cs (3)
87return VisitCore(parent.Parent); 1090if (node.IsKind(SyntaxKind.UsingDirective) && node.Parent == containingNode) 1095node = node.Parent;
Binder\BinderFactory.cs (2)
116if ((!InScript || node.Kind() != SyntaxKind.CompilationUnit) && node.Parent != null) 118node = node.Parent;
Compilation\CSharpSemanticModel.cs (1)
3987parentSyntax == 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) 2468return (node) => node.Kind() != SyntaxKind.GlobalStatement || node.Parent != unit; 2473return (node) => node.Parent != unit || node.Kind() == SyntaxKind.GlobalStatement; 2495if (node.Parent == typeDeclaration) 2499else if (node.Parent is BaseListSyntax baseList) 2503else if (node.Parent is PrimaryConstructorBaseTypeSyntax baseType && baseType == typeDeclaration.PrimaryConstructorBaseTypeIfClass) 2531if (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)
1770var curSyntax = lambdaSyntax.Parent; 1785curSyntax = 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)
45SyntaxNode? section = d.Syntax.Parent;
Operations\CSharpOperationFactory.cs (3)
2124Debug.Assert(node.Parent != null); 2125varStatement = node.Parent; 2127varDeclaration = node.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;
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\Compilers\CSharp\CSharpAnalyzerDriver\CSharpDeclarationComputer.cs (1)
225if (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)
171nodeToBind.Kind() == SyntaxKind.ArgumentList && (nodeToBind.Parent is ConstructorInitializerSyntax || nodeToBind.Parent is PrimaryConstructorBaseTypeSyntax) || 745nodeToBind.Kind() == SyntaxKind.ArgumentList && (nodeToBind.Parent is ConstructorInitializerSyntax || nodeToBind.Parent is PrimaryConstructorBaseTypeSyntax) || 776switch (_nodeToBind.Parent) 785throw ExceptionUtilities.UnexpectedValue(_nodeToBind.Parent);
Symbols\Tuples\TupleTypeSymbol.cs (1)
299diagnostics.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)
150if (node.Parent.IsKind(SyntaxKind.CastExpression)) 152node = node.Parent; 155while (node.Parent.IsKind(SyntaxKind.ConditionalExpression)) 157node = node.Parent; 160SyntaxNode? parentNode = node.Parent; 172SyntaxNode? variableDeclarator = parentNode.Parent; 175variableDeclarator.Parent.IsKind(SyntaxKind.VariableDeclaration); 180return parentNode.Parent.IsKind(SyntaxKind.ExpressionStatement); 301SyntaxNode? parentNode = syntax.Parent; 306parentNode = 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 (21)
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 } && 1336else if (node.Parent != null) 1338if (node.Parent.IsKind(SyntaxKind.CompilationUnit)) 1343int parentDepth = GetDeclarationDepth(node.Parent); 1345if (node.Parent.Kind() is SyntaxKind.GlobalStatement or SyntaxKind.FileScopedNamespaceDeclaration) 1350if (node.IsKind(SyntaxKind.IfStatement) && node.Parent.IsKind(SyntaxKind.ElseClause)) 1355if (node.Parent is BlockSyntax) 1360if (node is { Parent: InitializerExpressionSyntax or AnonymousObjectMemberDeclaratorSyntax } || 1363if (!IsSingleLineInitializerContext(node.Parent)) 1425var currentParent = node.Parent; 1442currentParent = currentParent.Parent;
Microsoft.CodeAnalysis.CSharp.CodeStyle (438)
src\Analyzers\CSharp\Analyzers\AddAccessibilityModifiers\CSharpAddAccessibilityModifiers.cs (1)
58if (member.Parent is InterfaceDeclarationSyntax)
src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (4)
73=> binaryLike.Parent is ConstantPatternSyntax 74? binaryLike.Parent.Parent as ExpressionSyntax 75: binaryLike.Parent as ExpressionSyntax;
src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredPatternParenthesesDiagnosticAnalyzer.cs (1)
38=> binaryLike.Parent as PatternSyntax;
src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
61methodDeclaration.Parent is not TypeDeclarationSyntax containingTypeDeclaration ||
src\Analyzers\CSharp\Analyzers\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionDiagnosticAnalyzer.Analyzer.cs (2)
65if (declaration.Parent == node.Parent && declarator.Initializer is null)
src\Analyzers\CSharp\Analyzers\ConvertTypeofToNameof\CSharpConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
34return node is TypeOfExpressionSyntax { Parent: MemberAccessExpressionSyntax } typeofExpression &&
src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (8)
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 SwitchExpressionArmSyntax switchArm && current == switchArm.Expression) 319? current.Parent
src\Analyzers\CSharp\Analyzers\NamingStyle\CSharpNamingStyleDiagnosticAnalyzer.cs (2)
33Parent: ParameterListSyntax 35Parent: RecordDeclarationSyntax
src\Analyzers\CSharp\Analyzers\NewLines\ArrowExpressionClausePlacement\ArrowExpressionClausePlacementDiagnosticAnalyzer.cs (1)
68if (arrowExpressionClause.Parent is AccessorDeclarationSyntax)
src\Analyzers\CSharp\Analyzers\NewLines\EmbeddedStatementPlacement\EmbeddedStatementPlacementDiagnosticAnalyzer.cs (2)
87var parent = statement.Parent; 110var blockParent = parent.Parent;
src\Analyzers\CSharp\Analyzers\QualifyMemberAccess\CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (2)
44if (node.Parent is AssignmentExpressionSyntax { Parent: InitializerExpressionSyntax(SyntaxKind.ObjectInitializerExpression), Left: var left } &&
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (3)
55if (discard.Parent is DeclarationPatternSyntax declarationPattern) 59if (declarationPattern.Parent is not IsPatternExpressionSyntax) 81else if (discard.Parent is RecursivePatternSyntax recursivePattern)
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (2)
262node1 = node1.Parent; 263node2 = node2.Parent;
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\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (2)
55switch (parenthesizedExpression.Parent) 80case ConstantPatternSyntax constantPattern when constantPattern.Parent is IsPatternExpressionSyntax isPatternExpression:
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (2)
51if (parenthesizedPattern.Parent is not PatternSyntax) 60if (parenthesizedPattern.Parent is not BinaryPatternSyntax parentPattern)
src\Analyzers\CSharp\Analyzers\RemoveUnreachableCode\RemoveUnreachableCodeHelpers.cs (2)
16switch (firstUnreachableStatement.Parent) 27if (globalStatement.Parent is not CompilationUnitSyntax compilationUnit)
src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (2)
41=> variableDeclarator.Parent is VariableDeclarationSyntax 43Parent: FieldDeclarationSyntax { Declaration.Variables.Count: 0 } or
src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (2)
69var statementAncestor = unusedSymbolWriteOperation.Syntax.FirstAncestorOrSelf<StatementSyntax>()?.Parent; 103if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement &&
src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationHelpers.cs (1)
23ConditionalExpressionSyntax { Parent: ParenthesizedExpressionSyntax parent } => parent,
src\Analyzers\CSharp\Analyzers\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorDiagnosticAnalyzer.cs (2)
85if (accessorDeclaration is { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax containingPropertyDeclaration } containingAccessorList } &&
src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
25Parent: PropertyPatternClauseSyntax,
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\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\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (1)
41: memberAccess.Parent is InvocationExpressionSyntax invocation && IsCollectionEmptyAccess(semanticModel, invocation, cancellationToken)
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\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (17)
104if (topMostExpression.Parent is CastExpressionSyntax castExpression && castExpression.Type is IdentifierNameSyntax) 439if (locallyScopedExpression.Parent is ExpressionStatementSyntax) 444if (locallyScopedExpression.Parent is ReturnStatementSyntax or ArrowExpressionClauseSyntax) 447if (locallyScopedExpression.Parent is ArgumentSyntax argument) 457if (locallyScopedExpression.Parent is MemberAccessExpressionSyntax memberAccess && 460if (memberAccess.Parent is InvocationExpressionSyntax invocationExpression) 482if (locallyScopedExpression.Parent is ElementAccessExpressionSyntax elementAccess) 496if (locallyScopedExpression.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax declarator }) 505if (locallyScopedExpression.Parent is AssignmentExpressionSyntax assignment && 585if (argument.Parent is not BaseArgumentListSyntax { Parent: ExpressionSyntax parentInvocation } argumentList) 659Contract.ThrowIfFalse(originalInitializer.Parent 783if (expression.WalkUpParentheses().Parent is not EqualsValueClauseSyntax 785Parent: VariableDeclaratorSyntax 788Parent.Parent: LocalDeclarationStatementSyntax localDeclarationStatement
src\Analyzers\CSharp\Analyzers\UseConditionalExpression\CSharpUseConditionalExpressionForReturnDiagnosticAnalyzer.cs (1)
39if (block.Syntax.Parent is UnsafeStatementSyntax or CheckedStatementSyntax)
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 259if (identifierName.Parent is not MemberAccessExpressionSyntax memberAccess)
src\Analyzers\CSharp\Analyzers\UseImplicitObjectCreation\CSharpUseImplicitObjectCreationDiagnosticAnalyzer.cs (16)
85if (objectCreation.Parent is EqualsValueClauseSyntax 87Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: false } variableDeclaration } 100else if (objectCreation.Parent.IsKind(SyntaxKind.ArrowExpressionClause)) 102typeNode = objectCreation.Parent.Parent switch 109AccessorDeclarationSyntax(SyntaxKind.GetAccessorDeclaration) { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax baseProperty } } => baseProperty.Type, 113else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ObjectCreationExpressionSyntax { Type: var collectionType } }) 122else if (objectCreation.Parent is InitializerExpressionSyntax(kind: SyntaxKind.ArrayInitializerExpression) 124Parent: EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax arrayVariableDeclaration } } 129else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ArrayCreationExpressionSyntax { Type: var arrayCreationType } })
src\Analyzers\CSharp\Analyzers\UseInferredMemberName\CSharpUseInferredMemberNameDiagnosticAnalyzer.cs (2)
34if (nameColon.Parent is not ArgumentSyntax argument) 63if (nameEquals.Parent is not AnonymousObjectMemberDeclaratorSyntax anonCtor)
src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (12)
93if (localDeclaration.Parent is not BlockSyntax block) 216Parent: EqualsValueClauseSyntax 218Parent: VariableDeclaratorSyntax 220Parent: VariableDeclarationSyntax 222Parent: LocalDeclarationStatementSyntax declaration, 267if (nodeToCheck.Parent is BinaryExpressionSyntax) 274if (nodeToCheck.Parent is InvocationExpressionSyntax invocationExpression) 278else if (nodeToCheck.Parent is MemberAccessExpressionSyntax memberAccessExpression) 280if (memberAccessExpression.Parent is InvocationExpressionSyntax explicitInvocationExpression && 353if (anonymousFunction?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment && 354assignment.Parent is ExpressionStatementSyntax expressionStatement && 355expressionStatement.Parent is BlockSyntax block)
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\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
125return node.WalkUpParentheses().Parent switch
src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (1)
328if (statement.Parent is BlockSyntax block)
src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (4)
104if (declarator is not { Parent.Parent: LocalDeclarationStatementSyntax localStatement }) 112var enclosingBlock = localStatement.Parent; 241if (identifierName.Parent is AssignmentExpressionSyntax assignmentExpression &&
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\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\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (3)
125else if (nodeToRemove is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax field } }) 315if (primaryConstructorDeclaration.Parent is not TypeDeclarationSyntax)
src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (2)
116if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 })
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (54)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression.IsParentKind(SyntaxKind.NameMemberCref) && expression.Parent.IsParentKind(SyntaxKind.QualifiedCref); 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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
28var nodeParent = node.Parent; 40? nodeParent.Parent as ExpressionSyntax 71if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 346if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 526if (node?.Parent is CastExpressionSyntax castExpression) 584if (node.Parent is BinaryExpressionSyntax binaryExpression && 586(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 638if (node.Parent is ArgumentSyntax argument) 640if (argument.Parent is ArgumentListSyntax argumentList) 649else if (node.Parent is InitializerExpressionSyntax initializer) 673if (node.Parent is ArgumentSyntax argument) 675if (argument.Parent is ArgumentListSyntax argumentList) 684else if (node.Parent is InitializerExpressionSyntax initializer) 722if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 737if (node.Parent is ParenthesizedPatternSyntax) 741if (node.Parent is IsPatternExpressionSyntax) 745if (node.Parent is SwitchExpressionArmSyntax) 749if (node.Parent is SubpatternSyntax) 753if (node.Parent is CasePatternSwitchLabelSyntax) 759return node.Parent is PatternSyntax patternParent &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax baseType && 208baseType.Parent is BaseListSyntax baseList && 216else if (baseList.Types[0] == type.Parent) 225if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 234type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 235type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 236type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 252if (type.Parent.Kind() 261type.Parent, cancellationToken).DeclaredAccessibility; 274if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 276if (type.Parent.Parent.Parent?.Kind() 283type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 286if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 288var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 381if (current.Parent is ForEachStatementSyntax foreachStatement && 388if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 433if (topExpression?.Parent is ArgumentSyntax argument) 440if (argument.Parent is BaseArgumentListSyntax argumentList) 443if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
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\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\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); 676=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 692current = current.Parent; 794for (var current = node; current != null; current = current.Parent) 843for (var current = node; current != null; current = current.Parent)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
109if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 112return token.Parent.Parent.GetFirstToken() != token; 125=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 134return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 203&& statementOrElse.Parent != null 204&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 279token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 383token.Parent?.Parent is QueryExpressionSyntax queryExpression && 391var parent = initializer.Parent; 415return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 427var parent = initializer.Parent; 447var parent = anonymousObjectInitializer.Parent; 483return token.Parent.Parent is LabeledStatementSyntax; 530currentToken.Parent.Parent is DeclarationExpressionSyntax;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
35if (block.Parent is null or BlockSyntax) 43block.Parent.GetFirstToken(includeZeroWidth: true),
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
179RoslynDebug.AssertNotNull(node.Parent); 182firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (9)
67if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 108RoslynDebug.AssertNotNull(node.Parent); 109var switchStatement = (SwitchStatementSyntax)node.Parent; 188if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 233if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 257if (node.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == node) 267if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression)
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; 277|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 366var currentTokenParentParent = currentToken.Parent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 386if (initializer?.Parent != null) 388AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
210var attributeOwner = previousToken.Parent?.Parent; 237RoslynDebug.AssertNotNull(currentUsing.Parent); 239var usings = GetUsings(currentUsing.Parent);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (1)
341case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (27)
169=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 200=> node?.Parent is UsingDirectiveSyntax usingDirective && 250return node.Parent is BaseMethodDeclarationSyntax or 521if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 630node.Parent.IsParentKind(SyntaxKind.Subpattern); 642if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 644var withInitializer = identifier.Parent.GetRequiredParent(); 648else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 650var objectInitializer = identifier.Parent.GetRequiredParent(); 651if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 653initializedInstance = objectInitializer.Parent; 656else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 671Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 674creationExpression = node.Parent; 720node = node.Parent; 761var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 765parent = parent.Parent; 774parent = parent.Parent; 938var parent = node.Parent; 1111=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1114=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1175node.Parent is AttributeListSyntax attributeList && 1204return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1288=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1331=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1337=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (33)
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) 365if (rewrittenConversion.IsExplicit && castNode.WalkUpParentheses().Parent is not InterpolationSyntax) 452if (castNode.WalkUpParentheses().Parent is MemberAccessExpressionSyntax memberAccessExpression) 485if (castNode.WalkUpParentheses().Parent is InvocationExpressionSyntax invocationExpression) 504if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 724if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 846static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 871static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1045if (expression.WalkUpParentheses().Parent 1143if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1213if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1220else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1226else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1228equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1252for (SyntaxNode? current = expression; current != null; current = current.Parent) 1267for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1269currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1323for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1325currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1353for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1355currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1629if (castNode.WalkUpParentheses().Parent is InterpolationSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
187var containerOfList = parent.Parent; 203var parentOfParent = parent.Parent; 337RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 338var labelNode = previousToken.Parent.Parent; 381RoslynDebug.AssertNotNull(node.Parent); 383node = node.Parent; 390node = node.Parent; 400node = node.Parent; 442return token.Parent.Parent as MemberDeclarationSyntax;
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
105var isSupportedParentKind = variableDeclaration.Parent is (kind: 121switch (declaration.Parent)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
71if (typeName.Parent is DeclarationExpressionSyntax declExpression && 84if (typeName.Parent is VariableDeclarationSyntax variableDeclaration && 85typeName.Parent.Parent is (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement)) 98if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 103else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 113else if (typeName.Parent is DeclarationExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
112if (typeName.Parent is VariableDeclarationSyntax variableDeclaration && 113typeName.Parent.Parent is (kind: 119if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 142else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 151else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 213if (declarationExpression.Parent is not ArgumentSyntax 215Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 289if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (312)
src\Analyzers\CSharp\CodeFixes\AddExplicitCast\ArgumentFixer.cs (1)
31var newInvocation = newArgumentList.Parent!;
src\Analyzers\CSharp\CodeFixes\AddExplicitCast\AttributeArgumentFixer.cs (1)
31var newAttribute = (AttributeSyntax)newArgumentList.Parent!;
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\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\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\Analyzers\CSharp\CodeFixes\AssignOutParameters\AssignOutParametersAtStartCodeFixProvider.cs (2)
40statement.Parent is BlockSyntax block && 42block.Parent == container)
src\Analyzers\CSharp\CodeFixes\ConvertNamespace\ConvertNamespaceTransform.cs (1)
138if (stringLiteral.GetRequiredParent() is not InterpolatedStringTextSyntax { Parent: InterpolatedStringExpressionSyntax { StringStartToken: (kind: SyntaxKind.InterpolatedMultiLineRawStringStartToken) } interpolatedString })
src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.cs (2)
97if (declaratorToRemoveNode.Parent is VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax declStatement, Variables.Count: 1 })
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\Analyzers\CSharp\CodeFixes\FixIncorrectConstraint\CSharpFixIncorrectConstraintCodeFixProvider.cs (1)
41if (constraint.Parent is not TypeParameterConstraintClauseSyntax)
src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (2)
91if (fullName.Parent is ObjectCreationExpressionSyntax objectCreationExpression) 123if (fullName.Parent is AttributeSyntax attribute)
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\Analyzers\CSharp\CodeFixes\GenerateEnumMember\CSharpGenerateEnumMemberService.cs (1)
34simpleNameOrMemberAccessExpression = identifierName.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == identifierName
src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (1)
30node.Parent is AssignmentExpressionSyntax or EqualsValueClauseSyntax &&
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\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\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (5)
56declarationsToRemove.Add((LocalDeclarationStatementSyntax)diagnostic.AdditionalLocations[0].FindNode(cancellationToken).Parent.Parent); 109var declaration = (VariableDeclarationSyntax)declarator.Parent; 118var localDeclarationStatement = (LocalDeclarationStatementSyntax)declaration.Parent; 176editor.RemoveNode(localDeclarationStatement.Parent is GlobalStatementSyntax globalStatement
src\Analyzers\CSharp\CodeFixes\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessCodeFixProvider.cs (1)
99if (ifStatement.Parent.IsKind(SyntaxKind.ElseClause) &&
src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (4)
88if (node.Parent?.Parent is PropertyDeclarationSyntax oldAccessor) 93if (node.Parent?.Parent is IndexerDeclarationSyntax oldIndexer)
src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\MakeLocalFunctionStaticCodeFixHelper.cs (1)
72if (identifierNode.Parent is InvocationExpressionSyntax invocation)
src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (4)
49if (node is not (PropertyDeclarationSyntax or VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax })) 124if (memberDeclarator is VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax fieldDeclaration })
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\Analyzers\CSharp\CodeFixes\MakeStatementAsynchronous\CSharpMakeStatementAsynchronousCodeFixProvider.cs (2)
98if (node.Parent is (kind: 103return node.Parent;
src\Analyzers\CSharp\CodeFixes\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyCodeFixProvider.cs (2)
53else if (declaration is AccessorDeclarationSyntax { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax property } accessorList } accessor)
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\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationCodeFixProvider.cs (2)
43switch (discard.Parent) 46if (declarationPattern.Parent is IsPatternExpressionSyntax isPattern)
src\Analyzers\CSharp\CodeFixes\RemoveUnreachableCode\CSharpRemoveUnreachableCodeCodeFixProvider.cs (1)
82if (statement.Parent?.Kind()
src\Analyzers\CSharp\CodeFixes\RemoveUnusedLocalFunction\CSharpRemoveUnusedLocalFunctionCodeFixProvider.cs (1)
57editor.RemoveNode(localFunction.Parent is GlobalStatementSyntax globalStatement ? globalStatement : localFunction);
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\Analyzers\CSharp\CodeFixes\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorCodeFixProvider.cs (2)
52if (accessor.Parent?.Parent is PropertyDeclarationSyntax containingProperty &&
src\Analyzers\CSharp\CodeFixes\UseAutoProperty\UseAutoPropertyRewriter.cs (2)
45if (node.Parent is AssignmentExpressionSyntax 47Parent: InitializerExpressionSyntax { RawKind: (int)SyntaxKind.ObjectInitializerExpression }
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (3)
543Contract.ThrowIfNull(expression.Parent); 587for (var current = node; current != null; current = current.Parent) 810Contract.ThrowIfNull(expression.Parent);
src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider_CollectionInitializer.cs (1)
98Contract.ThrowIfNull(expression.Parent);
src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundAssignmentCodeFixProvider.cs (1)
52if (currentAssignment.Parent is ForStatementSyntax forStatement &&
src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
47if (ifStatement.Parent is ElseClauseSyntax &&
src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForReturnCodeFixProvider.cs (1)
34if (ifStatement.Parent is ElseClauseSyntax &&
src\Analyzers\CSharp\CodeFixes\UseExpressionBody\UseExpressionBodyCodeFixProvider.cs (1)
90if (declaration.Parent is AccessorListSyntax accessorList)
src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (4)
59var declarationContext = node.Parent; 63declarationContext = declarationContext.Parent; 93RoslynDebug.AssertNotNull(typeSyntax.Parent); 95var tupleTypeSymbol = GetConvertedType(semanticModel, typeSyntax.Parent, cancellationToken);
src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (1)
228while (expr?.Parent is CheckedExpressionSyntax parent)
src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
47var elseClauseSyntax = (ElseClauseSyntax)ifStatement.Parent!;
src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (4)
75if (statement.Parent is BlockSyntax or SwitchSectionSyntax) 77statementParentScopes.Add(statement.Parent); 110if (declarator.Parent is VariableDeclarationSyntax declaration && 111declaration.Parent is LocalDeclarationStatementSyntax localDeclaration &&
src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (2)
285if (nameSyntax.Parent is QualifiedNameSyntax qualifiedNameSyntax) 294else if (nameSyntax.Parent is MemberAccessExpressionSyntax memberAccessExpression)
src\Analyzers\CSharp\CodeFixes\UseSimpleUsingStatement\UseSimpleUsingStatementCodeFixProvider.cs (2)
49var blockLikes = topmostUsingStatements.Select(u => u.Parent is GlobalStatementSyntax ? u.Parent.GetRequiredParent() : u.GetRequiredParent()).ToSet();
src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (4)
90if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } variableDeclaration) 141if (expression.Parent is MemberAccessExpressionSyntax memberAccess && 147if (expression.Parent is not AssignmentExpressionSyntax assignment ||
src\Analyzers\CSharp\CodeFixes\UseThrowExpression\UseThrowExpressionCodeFixProvider.cs (1)
63if (throwStatementExpression.Parent is ThrowStatementSyntax throwStatement &&
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (6)
214targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 377token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 393token.Parent.Parent is StatementSyntax) 490FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause,
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; 470if (targetToken.Parent?.Parent?.Kind() 591targetToken.Parent.Parent is AccessorDeclarationSyntax) 606targetToken.Parent.Parent is AccessorDeclarationSyntax) 618if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 620else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 651targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 652IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
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; 779token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 834token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 950{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1009name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1011conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1099token.Parent.Parent is ParameterSyntax parameter3 && 1100parameter3.Parent is ParameterListSyntax parameterList3 && 1115parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1119if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1129=> parameterList.Parent switch 1268parent = token.Parent.Parent; 1270else if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent is IdentifierNameSyntax scopedIdentifierName && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1272parent = scopedIdentifierName.Parent.Parent; 1351leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1353var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1435leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1521while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1526if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1557if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1585possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1653if (outer.Parent is ForEachStatementSyntax @foreach) 1674if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1676node = node.Parent; 1680if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1682node = node.Parent.Parent; 1694leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1802parent.Parent?.Parent is (kind: 1810if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1866if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2079equalsValue.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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
312var currentTokenParentParent = currentToken.Parent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (8)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 226embeddedStatementOwner = embeddedStatementOwner.Parent; 248token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 400if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 423RoslynDebug.AssertNotNull(queryBody.Parent); 424return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
48if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 277if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 283if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 289if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 300if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 307if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 318if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 323if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 324argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 325argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 326argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 377if (argument.Parent != null) 379if (argument.Parent.Parent is AttributeSyntax attribute) 517switch (argumentList.Parent) 547if (attributeArgumentList.Parent is AttributeSyntax attribute) 743var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 896if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1214if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1217if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1221SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1356if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1384else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1394else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1404else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1428var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1497if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1635if (memberDeclarator.NameEquals != null && memberDeclarator.Parent is AnonymousObjectCreationExpressionSyntax) 1641var types = InferTypes((AnonymousObjectCreationExpressionSyntax)memberDeclarator.Parent); 1660return nameColon.Parent switch 1676return expressionColon.Parent switch 1728memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1729memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1851if (nameColon.Parent is SubpatternSyntax subpattern) 1861if (expressionColon.Parent is SubpatternSyntax subpattern) 1878if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2036=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2072if (arm.Parent is SwitchExpressionSyntax switchExpression) 2120var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2186variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2254var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
Microsoft.CodeAnalysis.CSharp.EditorFeatures (18)
AutomaticCompletion\AutomaticLineEnderCommandHandler.cs (1)
302=> n is ArrowExpressionClauseSyntax ? n.Parent : n;
AutomaticCompletion\AutomaticLineEnderCommandHandler_Helpers.cs (8)
246if (ifStatementNode.Else == null && ifStatementNode.Parent is BlockSyntax) 314if (elseClauseNode.Parent is IfStatementSyntax { Parent: BlockSyntax }) 321elseClauseNode.Parent!, 565var parent = accessorDeclarationNode.Parent; 566var parentOfParent = parent?.Parent; 801&& accessorDeclarationNode.Parent != null 802&& accessorDeclarationNode.Parent.IsParentKind(SyntaxKind.PropertyDeclaration)
CompleteStatement\CompleteStatementCommandHandler.cs (7)
124Parent: EqualsValueClauseSyntax 126Parent: VariableDeclaratorSyntax 128Parent: VariableDeclarationSyntax 130Parent: FieldDeclarationSyntax or LocalDeclarationStatementSyntax 268currentNode = currentNode.Parent; 585for (var node = currentNode.Parent; node is not null; node = node.Parent)
RawStringLiteral\RawStringLiteralCommandHandler_Return.cs (1)
148Parent.Parent: InterpolatedStringExpressionSyntax
StringCopyPaste\StringCopyPasteHelpers.cs (1)
246for (var current = node; current != null; current = current.Parent)
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (7)
Formatting\CodeCleanupTests.TestFixers.cs (6)
37Assumes.NotNull(node?.Parent); 38var newRoot = root.RemoveNode(node.Parent, SyntaxRemoveOptions.KeepNoTrivia); 106Assumes.NotNull(node?.Parent); 107var newRoot = root.RemoveNode(node.Parent, SyntaxRemoveOptions.KeepNoTrivia); 156Assumes.NotNull(node?.Parent); 157var newRoot = root.RemoveNode(node.Parent, SyntaxRemoveOptions.KeepNoTrivia);
TypeInferrer\TypeInferrerTests.cs (1)
83currentNode = currentNode.Parent;
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (1)
Emit\EditAndContinue\EditAndContinueTestBase.cs (1)
141node = node.Parent;
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (5)
Attributes\AttributeTests.cs (1)
5720var m = (ExpressionSyntax)cm.SyntaxTrees[0].GetCompilationUnitRoot().FindToken(index).Parent.Parent;
Diagnostics\DiagnosticAnalyzerTests.cs (1)
809switch (CSharpExtensions.Kind(context.Node.Parent))
Semantics\OutVarTests.cs (1)
18814var constructorDeclaration = (ConstructorDeclarationSyntax)context.Node.Parent;
Semantics\PatternMatchingTests_ListPatterns.cs (2)
3651typeInfo = model.GetTypeInfo(designation.Parent); 4421typeInfo = model.GetTypeInfo(designation.Parent);
Microsoft.CodeAnalysis.CSharp.Features (806)
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)); 622if (node.Parent.IsKind(SyntaxKind.CollectionInitializerExpression))
BraceCompletion\CurlyBraceCompletionService.cs (2)
150var currentTokenParentParent = currentToken.Parent?.Parent; 206var parentKind = node?.Parent?.Kind();
ChangeSignature\ChangeSignatureFormattingRule.cs (2)
40if (node.Parent != null) 42var baseToken = node.Parent.GetFirstToken();
ChangeSignature\CSharpChangeSignatureService.cs (1)
199for (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 (1)
108if (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)
138var argument = token.Parent.Parent as ArgumentSyntax // var is child of ArgumentSyntax, eg. Goo(out var $$ 139?? token.Parent.Parent?.Parent as ArgumentSyntax; // var is child of DeclarationExpression 321v => v.Parent is FieldDeclarationSyntax f ? f.Modifiers : null, 360modifierGetter: v => v.Parent is LocalDeclarationStatementSyntax localDeclaration 399modifierGetter: v => v.Parent is UsingStatementSyntax or ForStatementSyntax 450token.GetAncestor<ParameterSyntax>()?.Parent?.Parent is (kind: SyntaxKind.RecordDeclaration or SyntaxKind.RecordStructDeclaration)) 481parent is TypeArgumentListSyntax { Parent: GenericNameSyntax genericName })
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.cs (2)
279if (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)
82var parameterLists = GetParameterLists(semanticModel, position, argumentList.Parent!, cancellationToken); 234var baseList = baseType.Parent; 235if (baseList?.Parent is not BaseTypeDeclarationSyntax typeDeclaration)
Completion\CompletionProviders\ObjectAndWithInitializerCompletionProvider.cs (3)
74if (token.Parent.Parent is not ExpressionSyntax expression) 119if (token.Parent == null || token.Parent.Parent == null) 142var parent = token.Parent?.Parent;
Completion\CompletionProviders\PropertySubPatternCompletionProvider.cs (7)
58var propertyPatternType = semanticModel.GetTypeInfo((PatternSyntax)propertyPatternClause.Parent!, cancellationToken).ConvertedType; 181return token.Parent is PropertyPatternClauseSyntax { Parent: PatternSyntax } propertyPatternClause 199while (memberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 201memberAccess = (MemberAccessExpressionSyntax)memberAccess.Parent; 204if (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)
149token.Parent.Parent.IsParentKind(SyntaxKind.XmlElement)) 162if (token.Parent.Parent is XmlElementSyntax xmlElement) 168token.Parent.Parent!.Parent is XmlElementSyntax nestedXmlElement) 173if (token.Parent.Parent is DocumentationCommentTriviaSyntax || 174(token.Parent.Parent.IsKind(SyntaxKind.XmlEmptyElement) && token.Parent.Parent.Parent is DocumentationCommentTriviaSyntax)) 236(elementName, attributes) = GetElementNameAndAttributes(token.Parent.Parent!); 250(elementName, attributes) = GetElementNameAndAttributes(attributeSyntax.Parent!); 295token.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)
102identifier.Parent is TypeConstraintSyntax typeConstraint && typeConstraint.Type == identifier && 103typeConstraint.Parent is TypeParameterConstraintClauseSyntax constraintClause) 204|| 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)
35token.Parent is ConstructorInitializerSyntax { Parent: ConstructorDeclarationSyntax constructor } &&
Completion\KeywordRecommenders\WhenKeywordRecommender.cs (1)
29if (pattern?.Parent is SwitchExpressionArmSyntax)
Completion\KeywordRecommenders\WhereKeywordRecommender.cs (2)
76else if (tokenParent.Parent is LocalFunctionStatementSyntax { TypeParameterList.Parameters.Count: > 0 }) 84if (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)
292if (forEachInfo.ForEachStatement?.Parent is BlockSyntax block && 293block.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)
277for (var current = node; current != null; current = current.Parent)
Copilot\CSharpImplementNotImplementedExceptionDiagnosticAnalyzer.cs (2)
106operation.Syntax.Parent is not ArrowExpressionClauseSyntax { Parent: PropertyDeclarationSyntax })
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)
Debugging\CSharpProximityExpressionsService_ExpressionTermCollector.cs (1)
189memberAccessExpression.Parent?.Kind() is not SyntaxKind.SimpleMemberAccessExpression and not SyntaxKind.PointerMemberAccessExpression)
Diagnostics\Analyzers\CSharpUnboundIdentifiersDiagnosticAnalyzer.cs (1)
29=> node.Parent is InvocationExpressionSyntax invocation && invocation.IsNameOfInvocation();
DocumentationComments\CSharpDocumentationCommentSnippetService.cs (2)
178for (SyntaxNode? current = exceptionType; current != null; current = current?.Parent) 180if (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 838var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent!; 859var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent!; 943if (expression == null || expression.Parent == null) 948var 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)) 223simpleName.Parent == token.Parent) 233fieldDeclaration.Parent is CompilationUnitSyntax && 246if (simpleName.Parent is QualifiedNameSyntax parent) 278if (simpleName.Parent is not null and not QualifiedNameSyntax) 291if (nameOrMemberAccessExpression.Parent is not null and QualifiedNameSyntax) 310if ((nameOrMemberAccessExpression.IsKind(SyntaxKind.SimpleMemberAccessExpression) || (nameOrMemberAccessExpression.Parent != null && nameOrMemberAccessExpression.IsParentKind(SyntaxKind.SimpleMemberAccessExpression))) 322outerMostMemberAccessExpression = (ExpressionSyntax)nameOrMemberAccessExpression.Parent; 349if (nameOrMemberAccessExpression.Parent is ObjectCreationExpressionSyntax objectCreationExpressionOpt) 378if (nameOrMemberAccessExpression.Parent is VariableDeclarationSyntax 389if (nameOrMemberAccessExpression.Parent is VariableDeclarationSyntax variableDeclaration) 397if (nameOrMemberAccessExpression.Parent is CastExpressionSyntax { Expression: not null } castExpression) 642if (expression.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList }) 644if (baseList.Parent.Kind() is SyntaxKind.InterfaceDeclaration or SyntaxKind.StructDeclaration or SyntaxKind.RecordStructDeclaration) 669node.Parent != null && 670node.Parent is TypeDeclarationSyntax) 672if (node.Parent is TypeDeclarationSyntax typeDecl) 682node.Parent != null && 683node.Parent is TypeDeclarationSyntax) 693node = node.Parent; 764if (propertyName.Parent is AssignmentExpressionSyntax parentAssignment) 770if (propertyName.Parent is IsPatternExpressionSyntax isPatternExpression)
GoToDefinition\CSharpGoToDefinitionSymbolService.cs (3)
102node = node.Parent; 118node = node.Parent; 133node = node.Parent;
Highlighting\KeywordHighlighters\IfStatementHighlighter.cs (1)
34if (ifStatement.Parent.Kind() != SyntaxKind.ElseClause)
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)
32return variableDecl.Parent?.Parent as LocalDeclarationStatementSyntax;
IntroduceUsingStatement\CSharpIntroduceUsingStatementCodeRefactoringProvider.cs (1)
99if (declarationStatement.Parent is SwitchSectionSyntax ||
IntroduceVariable\CSharpIntroduceVariableService.cs (1)
62for (SyntaxNode? node = expression; node != null; node = node.Parent)
IntroduceVariable\CSharpIntroduceVariableService.Rewriter.cs (1)
65node.Parent is TupleExpressionSyntax)
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;
InvertIf\CSharpInvertIfCodeRefactoringProvider.cs (1)
37=> ifNode?.Parent is (kind: SyntaxKind.Block or SyntaxKind.SwitchSection);
MoveToNamespace\CSharpMoveToNamespaceService.cs (1)
24ParameterListSyntax parameterList => parameterList.Parent as BaseTypeDeclarationSyntax,
QuickInfo\CSharpDiagnosticAnalyzerQuickInfoProvider.cs (3)
59{ Parent: PragmaWarningDirectiveTriviaSyntax } node => node, 102Parent: AttributeArgumentListSyntax 105Parent: AttributeSyntax
QuickInfo\CSharpSemanticQuickInfoProvider.cs (4)
61token.Parent?.Parent.IsKind(SyntaxKind.ElementAccessExpression) == true) 63found = token.Parent.Parent; 109if (node is IdentifierNameSyntax { IsVar: true, Parent: VariableDeclarationSyntax { Variables: [var declarator] } }) 187Parent: VariableDeclarationSyntax { Type.IsVar: true },
QuickInfo\CSharpSyntacticQuickInfoProvider.cs (2)
85spanStart = parent.Parent!.SpanStart; 95&& node.Parent?.Kind() is SyntaxKind.Block or SyntaxKind.SwitchSection or SyntaxKind.GlobalStatement;
RemoveUnusedVariable\CSharpRemoveUnusedVariableCodeFixProvider.cs (5)
40node = node.Parent; 43var parent = node.Parent; 65RemoveNode(editor, node.IsParentKind(SyntaxKind.GlobalStatement) ? node.Parent : node, blockFacts); 77if (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)
298=> identifierName.Parent as NameMemberCrefSyntax;
SignatureHelp\AttributeSignatureHelpProvider.cs (1)
62token.Parent.Parent is AttributeSyntax;
SignatureHelp\ConstructorInitializerSignatureHelpProvider.cs (1)
91var 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\GenericNameSignatureHelpProvider.cs (3)
66token.Parent.Parent is GenericNameSyntax; 163Contract.ThrowIfFalse(lessThanToken.Parent is TypeArgumentListSyntax && lessThanToken.Parent.Parent is GenericNameSyntax); 164return 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;
Snippets\CSharpForEachLoopSnippetProvider.cs (2)
46if (token is { RawKind: (int)SyntaxKind.AwaitKeyword, Parent: ExpressionSyntax { Parent: ExpressionStatementSyntax } } || 47token 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\Analyzers\CSharp\Analyzers\AddAccessibilityModifiers\CSharpAddAccessibilityModifiers.cs (1)
58if (member.Parent is InterfaceDeclarationSyntax)
src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (4)
73=> binaryLike.Parent is ConstantPatternSyntax 74? binaryLike.Parent.Parent as ExpressionSyntax 75: binaryLike.Parent as ExpressionSyntax;
src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredPatternParenthesesDiagnosticAnalyzer.cs (1)
38=> binaryLike.Parent as PatternSyntax;
src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
61methodDeclaration.Parent is not TypeDeclarationSyntax containingTypeDeclaration ||
src\Analyzers\CSharp\Analyzers\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionDiagnosticAnalyzer.Analyzer.cs (2)
65if (declaration.Parent == node.Parent && declarator.Initializer is null)
src\Analyzers\CSharp\Analyzers\ConvertTypeofToNameof\CSharpConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
34return node is TypeOfExpressionSyntax { Parent: MemberAccessExpressionSyntax } typeofExpression &&
src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (8)
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 SwitchExpressionArmSyntax switchArm && current == switchArm.Expression) 319? current.Parent
src\Analyzers\CSharp\Analyzers\NamingStyle\CSharpNamingStyleDiagnosticAnalyzer.cs (2)
33Parent: ParameterListSyntax 35Parent: RecordDeclarationSyntax
src\Analyzers\CSharp\Analyzers\NewLines\ArrowExpressionClausePlacement\ArrowExpressionClausePlacementDiagnosticAnalyzer.cs (1)
68if (arrowExpressionClause.Parent is AccessorDeclarationSyntax)
src\Analyzers\CSharp\Analyzers\NewLines\EmbeddedStatementPlacement\EmbeddedStatementPlacementDiagnosticAnalyzer.cs (2)
87var parent = statement.Parent; 110var blockParent = parent.Parent;
src\Analyzers\CSharp\Analyzers\QualifyMemberAccess\CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (2)
44if (node.Parent is AssignmentExpressionSyntax { Parent: InitializerExpressionSyntax(SyntaxKind.ObjectInitializerExpression), Left: var left } &&
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (3)
55if (discard.Parent is DeclarationPatternSyntax declarationPattern) 59if (declarationPattern.Parent is not IsPatternExpressionSyntax) 81else if (discard.Parent is RecursivePatternSyntax recursivePattern)
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (2)
262node1 = node1.Parent; 263node2 = node2.Parent;
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\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (2)
55switch (parenthesizedExpression.Parent) 80case ConstantPatternSyntax constantPattern when constantPattern.Parent is IsPatternExpressionSyntax isPatternExpression:
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (2)
51if (parenthesizedPattern.Parent is not PatternSyntax) 60if (parenthesizedPattern.Parent is not BinaryPatternSyntax parentPattern)
src\Analyzers\CSharp\Analyzers\RemoveUnreachableCode\RemoveUnreachableCodeHelpers.cs (2)
16switch (firstUnreachableStatement.Parent) 27if (globalStatement.Parent is not CompilationUnitSyntax compilationUnit)
src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (2)
41=> variableDeclarator.Parent is VariableDeclarationSyntax 43Parent: FieldDeclarationSyntax { Declaration.Variables.Count: 0 } or
src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (2)
69var statementAncestor = unusedSymbolWriteOperation.Syntax.FirstAncestorOrSelf<StatementSyntax>()?.Parent; 103if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement &&
src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationHelpers.cs (1)
23ConditionalExpressionSyntax { Parent: ParenthesizedExpressionSyntax parent } => parent,
src\Analyzers\CSharp\Analyzers\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorDiagnosticAnalyzer.cs (2)
85if (accessorDeclaration is { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax containingPropertyDeclaration } containingAccessorList } &&
src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
25Parent: PropertyPatternClauseSyntax,
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\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\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (1)
41: memberAccess.Parent is InvocationExpressionSyntax invocation && IsCollectionEmptyAccess(semanticModel, invocation, cancellationToken)
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\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (17)
104if (topMostExpression.Parent is CastExpressionSyntax castExpression && castExpression.Type is IdentifierNameSyntax) 439if (locallyScopedExpression.Parent is ExpressionStatementSyntax) 444if (locallyScopedExpression.Parent is ReturnStatementSyntax or ArrowExpressionClauseSyntax) 447if (locallyScopedExpression.Parent is ArgumentSyntax argument) 457if (locallyScopedExpression.Parent is MemberAccessExpressionSyntax memberAccess && 460if (memberAccess.Parent is InvocationExpressionSyntax invocationExpression) 482if (locallyScopedExpression.Parent is ElementAccessExpressionSyntax elementAccess) 496if (locallyScopedExpression.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax declarator }) 505if (locallyScopedExpression.Parent is AssignmentExpressionSyntax assignment && 585if (argument.Parent is not BaseArgumentListSyntax { Parent: ExpressionSyntax parentInvocation } argumentList) 659Contract.ThrowIfFalse(originalInitializer.Parent 783if (expression.WalkUpParentheses().Parent is not EqualsValueClauseSyntax 785Parent: VariableDeclaratorSyntax 788Parent.Parent: LocalDeclarationStatementSyntax localDeclarationStatement
src\Analyzers\CSharp\Analyzers\UseConditionalExpression\CSharpUseConditionalExpressionForReturnDiagnosticAnalyzer.cs (1)
39if (block.Syntax.Parent is UnsafeStatementSyntax or CheckedStatementSyntax)
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 259if (identifierName.Parent is not MemberAccessExpressionSyntax memberAccess)
src\Analyzers\CSharp\Analyzers\UseImplicitObjectCreation\CSharpUseImplicitObjectCreationDiagnosticAnalyzer.cs (16)
85if (objectCreation.Parent is EqualsValueClauseSyntax 87Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: false } variableDeclaration } 100else if (objectCreation.Parent.IsKind(SyntaxKind.ArrowExpressionClause)) 102typeNode = objectCreation.Parent.Parent switch 109AccessorDeclarationSyntax(SyntaxKind.GetAccessorDeclaration) { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax baseProperty } } => baseProperty.Type, 113else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ObjectCreationExpressionSyntax { Type: var collectionType } }) 122else if (objectCreation.Parent is InitializerExpressionSyntax(kind: SyntaxKind.ArrayInitializerExpression) 124Parent: EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax arrayVariableDeclaration } } 129else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ArrayCreationExpressionSyntax { Type: var arrayCreationType } })
src\Analyzers\CSharp\Analyzers\UseInferredMemberName\CSharpUseInferredMemberNameDiagnosticAnalyzer.cs (2)
34if (nameColon.Parent is not ArgumentSyntax argument) 63if (nameEquals.Parent is not AnonymousObjectMemberDeclaratorSyntax anonCtor)
src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (12)
93if (localDeclaration.Parent is not BlockSyntax block) 216Parent: EqualsValueClauseSyntax 218Parent: VariableDeclaratorSyntax 220Parent: VariableDeclarationSyntax 222Parent: LocalDeclarationStatementSyntax declaration, 267if (nodeToCheck.Parent is BinaryExpressionSyntax) 274if (nodeToCheck.Parent is InvocationExpressionSyntax invocationExpression) 278else if (nodeToCheck.Parent is MemberAccessExpressionSyntax memberAccessExpression) 280if (memberAccessExpression.Parent is InvocationExpressionSyntax explicitInvocationExpression && 353if (anonymousFunction?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment && 354assignment.Parent is ExpressionStatementSyntax expressionStatement && 355expressionStatement.Parent is BlockSyntax block)
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\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
125return node.WalkUpParentheses().Parent switch
src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (1)
328if (statement.Parent is BlockSyntax block)
src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (4)
104if (declarator is not { Parent.Parent: LocalDeclarationStatementSyntax localStatement }) 112var enclosingBlock = localStatement.Parent; 241if (identifierName.Parent is AssignmentExpressionSyntax assignmentExpression &&
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\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\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (3)
125else if (nodeToRemove is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax field } }) 315if (primaryConstructorDeclaration.Parent is not TypeDeclarationSyntax)
src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (2)
116if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 })
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\Analyzers\CSharp\CodeFixes\AddExplicitCast\ArgumentFixer.cs (1)
31var newInvocation = newArgumentList.Parent!;
src\Analyzers\CSharp\CodeFixes\AddExplicitCast\AttributeArgumentFixer.cs (1)
31var newAttribute = (AttributeSyntax)newArgumentList.Parent!;
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\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\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\Analyzers\CSharp\CodeFixes\AssignOutParameters\AssignOutParametersAtStartCodeFixProvider.cs (2)
40statement.Parent is BlockSyntax block && 42block.Parent == container)
src\Analyzers\CSharp\CodeFixes\ConvertNamespace\ConvertNamespaceTransform.cs (1)
138if (stringLiteral.GetRequiredParent() is not InterpolatedStringTextSyntax { Parent: InterpolatedStringExpressionSyntax { StringStartToken: (kind: SyntaxKind.InterpolatedMultiLineRawStringStartToken) } interpolatedString })
src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.cs (2)
97if (declaratorToRemoveNode.Parent is VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax declStatement, Variables.Count: 1 })
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\Analyzers\CSharp\CodeFixes\FixIncorrectConstraint\CSharpFixIncorrectConstraintCodeFixProvider.cs (1)
41if (constraint.Parent is not TypeParameterConstraintClauseSyntax)
src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (2)
91if (fullName.Parent is ObjectCreationExpressionSyntax objectCreationExpression) 123if (fullName.Parent is AttributeSyntax attribute)
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\Analyzers\CSharp\CodeFixes\GenerateEnumMember\CSharpGenerateEnumMemberService.cs (1)
34simpleNameOrMemberAccessExpression = identifierName.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == identifierName
src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (1)
30node.Parent is AssignmentExpressionSyntax or EqualsValueClauseSyntax &&
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\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\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (5)
56declarationsToRemove.Add((LocalDeclarationStatementSyntax)diagnostic.AdditionalLocations[0].FindNode(cancellationToken).Parent.Parent); 109var declaration = (VariableDeclarationSyntax)declarator.Parent; 118var localDeclarationStatement = (LocalDeclarationStatementSyntax)declaration.Parent; 176editor.RemoveNode(localDeclarationStatement.Parent is GlobalStatementSyntax globalStatement
src\Analyzers\CSharp\CodeFixes\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessCodeFixProvider.cs (1)
99if (ifStatement.Parent.IsKind(SyntaxKind.ElseClause) &&
src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (4)
88if (node.Parent?.Parent is PropertyDeclarationSyntax oldAccessor) 93if (node.Parent?.Parent is IndexerDeclarationSyntax oldIndexer)
src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\MakeLocalFunctionStaticCodeFixHelper.cs (1)
72if (identifierNode.Parent is InvocationExpressionSyntax invocation)
src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (4)
49if (node is not (PropertyDeclarationSyntax or VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax })) 124if (memberDeclarator is VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax fieldDeclaration })
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\Analyzers\CSharp\CodeFixes\MakeStatementAsynchronous\CSharpMakeStatementAsynchronousCodeFixProvider.cs (2)
98if (node.Parent is (kind: 103return node.Parent;
src\Analyzers\CSharp\CodeFixes\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyCodeFixProvider.cs (2)
53else if (declaration is AccessorDeclarationSyntax { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax property } accessorList } accessor)
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\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationCodeFixProvider.cs (2)
43switch (discard.Parent) 46if (declarationPattern.Parent is IsPatternExpressionSyntax isPattern)
src\Analyzers\CSharp\CodeFixes\RemoveUnreachableCode\CSharpRemoveUnreachableCodeCodeFixProvider.cs (1)
82if (statement.Parent?.Kind()
src\Analyzers\CSharp\CodeFixes\RemoveUnusedLocalFunction\CSharpRemoveUnusedLocalFunctionCodeFixProvider.cs (1)
57editor.RemoveNode(localFunction.Parent is GlobalStatementSyntax globalStatement ? globalStatement : localFunction);
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\Analyzers\CSharp\CodeFixes\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorCodeFixProvider.cs (2)
52if (accessor.Parent?.Parent is PropertyDeclarationSyntax containingProperty &&
src\Analyzers\CSharp\CodeFixes\UseAutoProperty\UseAutoPropertyRewriter.cs (2)
45if (node.Parent is AssignmentExpressionSyntax 47Parent: InitializerExpressionSyntax { RawKind: (int)SyntaxKind.ObjectInitializerExpression }
src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (3)
543Contract.ThrowIfNull(expression.Parent); 587for (var current = node; current != null; current = current.Parent) 810Contract.ThrowIfNull(expression.Parent);
src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider_CollectionInitializer.cs (1)
98Contract.ThrowIfNull(expression.Parent);
src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundAssignmentCodeFixProvider.cs (1)
52if (currentAssignment.Parent is ForStatementSyntax forStatement &&
src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
47if (ifStatement.Parent is ElseClauseSyntax &&
src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForReturnCodeFixProvider.cs (1)
34if (ifStatement.Parent is ElseClauseSyntax &&
src\Analyzers\CSharp\CodeFixes\UseExpressionBody\UseExpressionBodyCodeFixProvider.cs (1)
90if (declaration.Parent is AccessorListSyntax accessorList)
src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (4)
59var declarationContext = node.Parent; 63declarationContext = declarationContext.Parent; 93RoslynDebug.AssertNotNull(typeSyntax.Parent); 95var tupleTypeSymbol = GetConvertedType(semanticModel, typeSyntax.Parent, cancellationToken);
src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (1)
228while (expr?.Parent is CheckedExpressionSyntax parent)
src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
47var elseClauseSyntax = (ElseClauseSyntax)ifStatement.Parent!;
src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (4)
75if (statement.Parent is BlockSyntax or SwitchSectionSyntax) 77statementParentScopes.Add(statement.Parent); 110if (declarator.Parent is VariableDeclarationSyntax declaration && 111declaration.Parent is LocalDeclarationStatementSyntax localDeclaration &&
src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (2)
285if (nameSyntax.Parent is QualifiedNameSyntax qualifiedNameSyntax) 294else if (nameSyntax.Parent is MemberAccessExpressionSyntax memberAccessExpression)
src\Analyzers\CSharp\CodeFixes\UseSimpleUsingStatement\UseSimpleUsingStatementCodeFixProvider.cs (2)
49var blockLikes = topmostUsingStatements.Select(u => u.Parent is GlobalStatementSyntax ? u.Parent.GetRequiredParent() : u.GetRequiredParent()).ToSet();
src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (4)
90if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } variableDeclaration) 141if (expression.Parent is MemberAccessExpressionSyntax memberAccess && 147if (expression.Parent is not AssignmentExpressionSyntax assignment ||
src\Analyzers\CSharp\CodeFixes\UseThrowExpression\UseThrowExpressionCodeFixProvider.cs (1)
63if (throwStatementExpression.Parent is ThrowStatementSyntax throwStatement &&
src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpDeclarationComputer.cs (1)
225if (node.Parent is BasePropertyDeclarationSyntax parentProperty)
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\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 (2)
40if (parent is IfStatementSyntax { Parent: not ElseClauseSyntax } ifStatement) 180if (node.Parent.IsKind(SyntaxKind.IfStatement))
Structure\Providers\CollectionExpressionStructureProvider.cs (2)
22if (node.Parent?.Parent is CollectionExpressionSyntax)
Structure\Providers\InitializerExpressionStructureProvider.cs (2)
24if (node.Parent is InitializerExpressionSyntax) 65hintSpan: 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.Features.UnitTests (2)
EditAndContinue\ActiveStatementTests.cs (1)
14328if (node.Parent is MethodDeclarationSyntax methodDecl && methodDecl.Identifier.Text == "G")
EditAndContinue\CSharpEditAndContinueAnalyzerTests.cs (1)
54node = node.Parent;
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (11)
Semantics\BindingTests.cs (10)
3037var node1 = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "Use").Single().Parent; 3051var node = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "AuthenticateAsync").Single().Parent; 3117var node1 = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "Use").Single().Parent; 3131var node = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "AuthenticateAsync").Single().Parent; 3190var node1 = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "Use").Single().Parent; 3205var node = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "AuthenticateAsync").Single().Parent; 3275var node1 = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "Use").Single().Parent; 3290var node = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "AuthenticateAsync").Single().Parent; 3380var node1 = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "MathMin").Single().Parent; 3732var node1 = tree.GetRoot().DescendantNodes().Where(n => n.IsKind(SyntaxKind.IdentifierName) && ((IdentifierNameSyntax)n).Identifier.ValueText == "E").Single().Parent;
Semantics\FieldInitializerBindingTests.cs (1)
279Assert.Same(initValueSyntax.Parent, boundInit.Syntax);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (1)
DeclarationTests.cs (1)
919for (var node = token.Parent; node != null; node = node.Parent)
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (8)
Diagnostics\LocationsTests.cs (1)
458var expressionDiags = syntaxTree.GetDiagnostics(token.Parent.Parent);
ParentChecker.cs (2)
32var parentTrivia = trivia.GetStructure().Parent; 45var parentTrivia = trivia.GetStructure().Parent;
Syntax\StructuredTriviaTests.cs (4)
85var foundDocComment = result.Parent.Parent.Parent.Parent; 86Assert.Null(foundDocComment.Parent);
Syntax\SyntaxNodeTests.cs (1)
1358Assert.Null(trivia.GetStructure().Parent);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (10)
CompilationTestUtils.cs (6)
370=> (expression.Parent is VariableDeclarationSyntax decl && decl.Type == expression) || 371(expression.Parent is ForEachStatementSyntax forEach && forEach.Type == expression) || 372(expression.Parent is DeclarationExpressionSyntax declExpr && declExpr.Type == expression) || 373(expression.Parent is RefTypeSyntax refType && isValidDeclaration(refType)); 535node = node.Parent; 558case { Parent: var parent }:
CSharpTestBase.cs (4)
2265node = node.Parent; 2273if (node.Parent != null && node.Parent.ToString() == bindText) 2275node = node.Parent;
Microsoft.CodeAnalysis.CSharp.WinRT.UnitTests (1)
CodeGen\WinRTCollectionTests.cs (1)
7428var jsonObj = ((MemberAccessExpressionSyntax)add.Parent).Expression;
Microsoft.CodeAnalysis.CSharp.Workspaces (608)
Classification\ClassificationHelpers.cs (19)
184return interpolatedStringText.Parent is InterpolatedStringExpressionSyntax interpolatedString 211if (methodDeclaration.Parent is ExtensionBlockDeclarationSyntax) 218return GetClassificationTypeForConstructorOrDestructorParent(constructorDeclaration.Parent!); 222return GetClassificationTypeForConstructorOrDestructorParent(destructorDeclaration.Parent!); 242var varDecl = variableDeclarator.Parent as VariableDeclarationSyntax; 243return varDecl?.Parent switch 302var parent = identifierSyntax.Parent; 305parent = parent.Parent; 325parentNode = parentNode!.Parent!.Parent; 477if (token.Parent is IdentifierNameSyntax && token.Parent?.Parent is ExpressionStatementSyntax) 486token.Parent.Parent is VariableDeclarationSyntax && 487!(token.Parent.Parent.Parent is FieldDeclarationSyntax) && 488!(token.Parent.Parent.Parent is EventFieldDeclarationSyntax); 493&& token.Parent.Parent is TypeConstraintSyntax 494&& 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)
185var classificationType = node.Parent switch 276return attribute.Name.LocalName.Text == DocumentationCommentXmlNames.LangwordAttributeName && IsSeeElement(attribute.Parent);
CodeGeneration\CSharpSyntaxGenerator.cs (38)
1980if (vd.Variables.Count == 1 && vd.Parent == null) 1993var vd = declaration.Parent as VariableDeclarationSyntax; 2025if (declaration.Parent is not AttributeListSyntax parentList || parentList.Attributes.Count > 1) 2047=> node?.Parent.IsKind(SyntaxKind.FieldDeclaration) ?? false; 2050=> node?.Parent.IsKind(SyntaxKind.EventFieldDeclaration) ?? false; 2053=> node?.Parent.IsKind(SyntaxKind.LocalDeclarationStatement) ?? false; 2142if (declaration.Parent != null) 2144return this.GetType(declaration.Parent); 2184if (vd.Parent != null && vd.Variables.Count == 1) 2186return AsIsolatedDeclaration(vd.Parent); 2193if (v.Parent != null && v.Parent.Parent != null) 2195return ClearTrivia(WithVariable(v.Parent.Parent, v)); 2202if (attr.Parent != null) 2204var attrList = (AttributeListSyntax)attr.Parent; 2253Contract.ThrowIfNull(vd.Parent); 2254return vd.Parent; 2263if (declaration.Parent != null) 2265return GetFullDeclaration(declaration.Parent); 2284var container = GetDeclaration(existingNode.Parent); 2933return AreSimilarExceptForSubDeclarations(decl1.Parent, decl2.Parent); 2981return SyntaxFactory.AreEquivalent(vd1.Type, vd2.Type) && AreSimilarExceptForSubDeclarations(vd1.Parent, vd2.Parent); 3021if (declaration.Parent.IsKind(SyntaxKind.GlobalStatement)) 3024declaration = declaration.Parent; 3060if (declaration.Parent.IsKind(SyntaxKind.GlobalStatement)) 3063declaration = declaration.Parent; 3131if (node.Parent.IsKind(SyntaxKind.GlobalStatement)) 3134node = node.Parent; 3156if (attr.Parent is AttributeListSyntax attrList && attrList.Attributes.Count == 1) 3165if (declaration.Parent != null && ((AttributeArgumentListSyntax)declaration.Parent).Arguments.Count == 1) 3168return RemoveNodeInternal(root, declaration.Parent, options); 3184if (declaration.Parent is BaseListSyntax baseList && baseList.Types.Count == 1) 3193var parent = declaration.Parent;
FindSymbols\CSharpDeclaredSymbolInfoFactoryService.cs (2)
96for (var current = node; current != null; current = current.Parent) 489=> typeDecl.Parent is BaseTypeDeclarationSyntax;
ReassignedVariable\CSharpReassignedVariableService.cs (1)
47current = 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) 449Parent: PropertyDeclarationSyntax or 450VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } } 559if (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)) 869var currentUsing = (UsingDirectiveSyntax)token.Parent!.Parent!.Parent!; 899foreach (var typeParameter in ((TypeParameterListSyntax)currentTypeParameter.Parent!).Parameters) 1137if (enclosingNameMemberCrefOrnull != null && token.Parent is TypeSyntax && token.Parent.Parent is TypeSyntax) 1145if (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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (54)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression.IsParentKind(SyntaxKind.NameMemberCref) && expression.Parent.IsParentKind(SyntaxKind.QualifiedCref); 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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
28var nodeParent = node.Parent; 40? nodeParent.Parent as ExpressionSyntax 71if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 346if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 526if (node?.Parent is CastExpressionSyntax castExpression) 584if (node.Parent is BinaryExpressionSyntax binaryExpression && 586(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 638if (node.Parent is ArgumentSyntax argument) 640if (argument.Parent is ArgumentListSyntax argumentList) 649else if (node.Parent is InitializerExpressionSyntax initializer) 673if (node.Parent is ArgumentSyntax argument) 675if (argument.Parent is ArgumentListSyntax argumentList) 684else if (node.Parent is InitializerExpressionSyntax initializer) 722if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 737if (node.Parent is ParenthesizedPatternSyntax) 741if (node.Parent is IsPatternExpressionSyntax) 745if (node.Parent is SwitchExpressionArmSyntax) 749if (node.Parent is SubpatternSyntax) 753if (node.Parent is CasePatternSwitchLabelSyntax) 759return node.Parent is PatternSyntax patternParent &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax baseType && 208baseType.Parent is BaseListSyntax baseList && 216else if (baseList.Types[0] == type.Parent) 225if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 234type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 235type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 236type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 252if (type.Parent.Kind() 261type.Parent, cancellationToken).DeclaredAccessibility; 274if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 276if (type.Parent.Parent.Parent?.Kind() 283type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 286if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 288var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 381if (current.Parent is ForEachStatementSyntax foreachStatement && 388if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 433if (topExpression?.Parent is ArgumentSyntax argument) 440if (argument.Parent is BaseArgumentListSyntax argumentList) 443if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
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\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\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); 676=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 692current = current.Parent; 794for (var current = node; current != null; current = current.Parent) 843for (var current = node; current != null; current = current.Parent)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
109if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 112return token.Parent.Parent.GetFirstToken() != token; 125=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 134return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 203&& statementOrElse.Parent != null 204&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 279token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 383token.Parent?.Parent is QueryExpressionSyntax queryExpression && 391var parent = initializer.Parent; 415return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 427var parent = initializer.Parent; 447var parent = anonymousObjectInitializer.Parent; 483return token.Parent.Parent is LabeledStatementSyntax; 530currentToken.Parent.Parent is DeclarationExpressionSyntax;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
35if (block.Parent is null or BlockSyntax) 43block.Parent.GetFirstToken(includeZeroWidth: true),
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
179RoslynDebug.AssertNotNull(node.Parent); 182firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (9)
67if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 108RoslynDebug.AssertNotNull(node.Parent); 109var switchStatement = (SwitchStatementSyntax)node.Parent; 188if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 233if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 257if (node.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == node) 267if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression)
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; 277|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 366var currentTokenParentParent = currentToken.Parent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 386if (initializer?.Parent != null) 388AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
210var attributeOwner = previousToken.Parent?.Parent; 237RoslynDebug.AssertNotNull(currentUsing.Parent); 239var usings = GetUsings(currentUsing.Parent);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (3)
341case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }: 447var expression = simpleName.Parent switch 454if (expression.Parent is not InvocationExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (27)
169=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 200=> node?.Parent is UsingDirectiveSyntax usingDirective && 250return node.Parent is BaseMethodDeclarationSyntax or 521if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 630node.Parent.IsParentKind(SyntaxKind.Subpattern); 642if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 644var withInitializer = identifier.Parent.GetRequiredParent(); 648else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 650var objectInitializer = identifier.Parent.GetRequiredParent(); 651if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 653initializedInstance = objectInitializer.Parent; 656else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 671Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 674creationExpression = node.Parent; 720node = node.Parent; 761var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 765parent = parent.Parent; 774parent = parent.Parent; 938var parent = node.Parent; 1111=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1114=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1175node.Parent is AttributeListSyntax attributeList && 1204return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1288=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1331=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1337=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (33)
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) 365if (rewrittenConversion.IsExplicit && castNode.WalkUpParentheses().Parent is not InterpolationSyntax) 452if (castNode.WalkUpParentheses().Parent is MemberAccessExpressionSyntax memberAccessExpression) 485if (castNode.WalkUpParentheses().Parent is InvocationExpressionSyntax invocationExpression) 504if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 724if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 846static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 871static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1045if (expression.WalkUpParentheses().Parent 1143if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1213if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1220else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1226else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1228equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1252for (SyntaxNode? current = expression; current != null; current = current.Parent) 1267for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1269currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1323for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1325currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1353for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1355currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1629if (castNode.WalkUpParentheses().Parent is InterpolationSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
187var containerOfList = parent.Parent; 203var parentOfParent = parent.Parent; 337RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 338var labelNode = previousToken.Parent.Parent; 381RoslynDebug.AssertNotNull(node.Parent); 383node = node.Parent; 390node = node.Parent; 400node = node.Parent; 442return token.Parent.Parent as MemberDeclarationSyntax;
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
105var isSupportedParentKind = variableDeclaration.Parent is (kind: 121switch (declaration.Parent)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
71if (typeName.Parent is DeclarationExpressionSyntax declExpression && 84if (typeName.Parent is VariableDeclarationSyntax variableDeclaration && 85typeName.Parent.Parent is (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement)) 98if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 103else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 113else if (typeName.Parent is DeclarationExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
112if (typeName.Parent is VariableDeclarationSyntax variableDeclaration && 113typeName.Parent.Parent is (kind: 119if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 142else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 151else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 213if (declarationExpression.Parent is not ArgumentSyntax 215Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 289if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (6)
214targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 377token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 393token.Parent.Parent is StatementSyntax) 490FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause,
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; 470if (targetToken.Parent?.Parent?.Kind() 591targetToken.Parent.Parent is AccessorDeclarationSyntax) 606targetToken.Parent.Parent is AccessorDeclarationSyntax) 618if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 620else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 651targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 652IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
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; 779token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 834token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 950{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1009name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1011conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1099token.Parent.Parent is ParameterSyntax parameter3 && 1100parameter3.Parent is ParameterListSyntax parameterList3 && 1115parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1119if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1129=> parameterList.Parent switch 1268parent = token.Parent.Parent; 1270else if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent is IdentifierNameSyntax scopedIdentifierName && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1272parent = scopedIdentifierName.Parent.Parent; 1351leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1353var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1435leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1521while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1526if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1557if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1585possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1653if (outer.Parent is ForEachStatementSyntax @foreach) 1674if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1676node = node.Parent; 1680if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1682node = node.Parent.Parent; 1694leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1802parent.Parent?.Parent is (kind: 1810if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1866if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2079equalsValue.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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
312var currentTokenParentParent = currentToken.Parent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (8)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 226embeddedStatementOwner = embeddedStatementOwner.Parent; 248token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 400if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 423RoslynDebug.AssertNotNull(queryBody.Parent); 424return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
48if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 277if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 283if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 289if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 300if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 307if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 318if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 323if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 324argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 325argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 326argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 377if (argument.Parent != null) 379if (argument.Parent.Parent is AttributeSyntax attribute) 517switch (argumentList.Parent) 547if (attributeArgumentList.Parent is AttributeSyntax attribute) 743var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 896if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1214if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1217if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1221SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1356if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1384else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1394else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1404else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1428var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1497if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1635if (memberDeclarator.NameEquals != null && memberDeclarator.Parent is AnonymousObjectCreationExpressionSyntax) 1641var types = InferTypes((AnonymousObjectCreationExpressionSyntax)memberDeclarator.Parent); 1660return nameColon.Parent switch 1676return expressionColon.Parent switch 1728memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1729memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1851if (nameColon.Parent is SubpatternSyntax subpattern) 1861if (expressionColon.Parent is SubpatternSyntax subpattern) 1878if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2036=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2072if (arm.Parent is SwitchExpressionSyntax switchExpression) 2120var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2186variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2254var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
Microsoft.CodeAnalysis.EditorFeatures (3)
DocumentationComments\AbstractXmlTagCompletionCommandHandler.cs (3)
128parentStartTag.Parent is not TXmlElementSyntax parentElement) 157if (token.Parent is TXmlElementEndTagSyntax { Parent: TXmlElementSyntax parentElement }) 196if (parentElement.Parent is TXmlElementSyntax grandParentElement)
Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities (4)
Structure\AbstractSyntaxNodeStructureProviderTests.cs (4)
30while (node.Parent is TSyntaxNode) 32if ((position == node.SpanStart && position == node.Parent.SpanStart) || 33(position == node.Span.End && position == node.Parent.Span.End)) 35node = (TSyntaxNode)node.Parent;
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (1)
Utilities\SymbolEquivalenceComparerTests.cs (1)
2002invocation ??= method_root.Parent.DescendantNodes().OfType<TInvocation>().First();
Microsoft.CodeAnalysis.Features (229)
AddImport\SymbolReferenceFinder.cs (1)
304: syntaxFacts.GetTargetOfMemberBinding(nameNode.Parent);
AddImport\SymbolReferenceFinder_PackageAssemblySearch.cs (2)
80while (_syntaxFacts.IsQualifiedName(current.Parent)) 81current = current.Parent;
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.RemoveSuppressionCodeAction_Attribute.cs (1)
56? attributeNode.Parent
CodeLens\CodeLensReferencesService.cs (1)
190node = 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)
258var 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; 196if (syntaxFacts.IsElementAccessExpression(argumentList.Parent)) 198var expr = syntaxFacts.GetExpressionOfElementAccessExpression(argumentList.Parent); 210if (syntaxFacts.IsInvocationExpression(argumentList.Parent)) 212var invokedExpression = syntaxFacts.GetExpressionOfInvocationExpression(argumentList.Parent); 424if (syntaxFacts.AreEquivalent(current.Parent, indexExpression)) 430else if (syntaxFacts.AreEquivalent(current.Parent?.Parent, elementAtExpression)) 441var shouldWarn = syntaxFacts.IsArgument(current.Parent); 444syntaxFacts.IsMemberAccessExpression(current.Parent) && 445syntaxFacts.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)
156var invocation = selectedArgument?.Parent?.Parent as TInvocationExpressionSyntax; 165var invocation = argumentList?.Parent as TInvocationExpressionSyntax;
Debugging\AbstractDataTipInfoGetter.cs (2)
33if (expression.Parent is TMemberExpressionSyntax { Parent: TInvocationExpressionSyntax invocation } memberAccess &&
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (13)
265var current = node.Parent; 279current = current.Parent; 358var current = node.Parent; 382current = current.Parent; 1876if (newAncestor.Parent == null) 1903oldNode = oldNode.Parent; 1929return HasEdit(editMap, node.Parent, edit.Kind); 2195current = current.Parent; 5244if (node.Parent == null && 5873var oldTargetParameter = oldLambda.Parent != null 5874? (oldModel.RequiredModel.GetOperation(oldLambda.Parent, cancellationToken) as IArgumentOperation)?.Parameter 6708node = node.Parent; 6988current = current.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);
Highlighting\Keywords\AbstractKeywordHighlighter.cs (1)
50for (var parent = token.Parent; parent != null; parent = parent.Parent)
InlineMethod\AbstractInlineMethodRefactoringProvider.cs (9)
165if (_syntaxFacts.IsThrowStatement(inlineExpression.Parent) || _syntaxFacts.IsThrowExpression(inlineExpression)) 204&& !_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 439if (_syntaxFacts.IsThrowStatement(rawInlineExpression.Parent) 440&& _syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 448&& _syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 463if (_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent) 503if (_syntaxFacts.IsThrowStatement(rawInlineExpression.Parent)) 523if (!_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent) 573for (SyntaxNode? node = calleeMethodInvocationNode; node != null; node = node.Parent)
InlineMethod\AbstractInlineMethodRefactoringProvider.MethodParametersInfo.cs (1)
487&& _syntaxFacts.IsExpressionStatement(calleInvocationNode.Parent)
IntroduceParameter\IntroduceParameterDocumentRewriter.cs (2)
102var declarator = _expression?.Parent?.Parent;
IntroduceVariable\AbstractIntroduceVariableService.State.cs (5)
210while (syntaxFacts.IsParenthesizedExpression(current.Parent)) 211current = (TExpressionSyntax)current.Parent; 213if (!syntaxFacts.IsEqualsValueClause(current.Parent)) 216var equalsValue = current.Parent; 217if (!syntaxFacts.IsVariableDeclarator(equalsValue.Parent))
InvertIf\AbstractInvertIfCodeRefactoringProvider.cs (1)
358ifNode.Parent == subsequentStatementRanges[0].Parent;
InvertIf\AbstractInvertIfCodeRefactoringProvider.StatementRange.cs (3)
22Debug.Assert(firstStatement.Parent != null); 23Debug.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)
298syntaxFacts.IsMemberAccessExpression(refNode.Parent) && 299syntaxFacts.IsInvocationExpression(refNode.Parent.Parent)) 302var extensionMethodInvocation = refNode.Parent.Parent;
NameTupleElement\AbstractNameTupleElementCodeRefactoringProvider.cs (1)
50var argument = potentialArguments.FirstOrDefault(n => n?.Parent is TTupleExpressionSyntax);
QuickInfo\CommonSemanticQuickInfoProvider.cs (2)
283for (var current = last.Parent; current != null; last = current, current = current.Parent)
RemoveUnusedVariable\AbstractRemoveUnusedVariableCodeFixProvider.cs (2)
176if (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)
150if (initializer is not { Parent: not null }) 160var parentOperation = semanticModel.GetOperation(initializer.Parent, cancellationToken) as IObjectOrCollectionInitializerOperation;
SimplifyThisOrMe\AbstractSimplifyThisOrMeDiagnosticAnalyzer.cs (1)
57if (node.Parent is not TMemberAccessExpressionSyntax memberAccessExpression)
Snippets\SnippetProviders\AbstractConsoleSnippetProvider.cs (1)
95var 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\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
35var parent = node.Parent;
src\Analyzers\Core\Analyzers\RemoveUnnecessaryParentheses\AbstractRemoveUnnecessaryParenthesesDiagnosticAnalyzer.cs (1)
73var parentKind = parenthesizedExpression.Parent?.RawKind;
src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (2)
317fieldDeclaration = variableDeclarator?.Parent?.Parent as TFieldDeclaration;
src\Analyzers\Core\Analyzers\UseCollectionInitializer\UseCollectionInitializerHelpers.cs (1)
69containingBlockOrCompilationUnit = containingBlockOrCompilationUnit.Parent!;
src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
134var negated = syntaxFacts.IsLogicalNotExpression(invocation.Parent);
src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer_IfStatement.cs (1)
132if (whenPartMatch.Parent is TMemberAccessExpressionSyntax memberAccess)
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\Analyzers\Core\CodeFixes\AddExplicitCast\AbstractAddExplicitCastCodeFixProvider.cs (3)
129if (syntaxFacts.IsParenthesizedExpression(currentTarget.Parent)) 131return (currentTarget.Parent, currentTarget.Parent.ReplaceNode(currentTarget, currentReplacement).WithAdditionalAnnotations(Simplifier.Annotation));
src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (1)
74for (var node = initialNode; node != null; node = node.Parent)
src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (2)
340var block = assignmentStatement.Parent; 439if (syntaxKinds.AddressOfExpression == SimpleNameOrMemberAccessExpressionOpt.Parent?.RawKind)
src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (1)
63var typeDeclarationWithCoreMembers = firstGeneratedMember.Parent!;
src\Analyzers\Core\CodeFixes\MakeMethodSynchronous\AbstractMakeMethodSynchronousCodeFixProvider.cs (3)
213expressionNode = nameNode.Parent; 223var invocationExpression = expressionNode.Parent; 243var parentExpression = parentMemberAccessExpression.Parent;
src\Analyzers\Core\CodeFixes\NamingStyle\NamingStyleCodeFixProvider.cs (1)
67node = node.Parent;
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\Analyzers\Core\CodeFixes\SimplifyInterpolation\AbstractSimplifyInterpolationCodeFixProvider.cs (1)
66interpolationSyntax.Parent is TInterpolatedStringExpressionSyntax interpolatedString)
src\Analyzers\Core\CodeFixes\UseAutoProperty\AbstractUseAutoPropertyCodeFixProvider.cs (4)
411if (fieldToRemove.Parent == property.Parent && 412fieldToRemove.Parent is TTypeDeclarationSyntax typeDeclaration) 512node = node.Parent;
src\Analyzers\Core\CodeFixes\UseCompoundAssignment\AbstractUseCompoundAssignmentCodeFixProvider.cs (1)
101if (syntaxFacts.IsSimpleAssignmentStatement(currentAssignment.Parent))
src\Analyzers\Core\CodeFixes\UseConditionalExpression\AbstractUseConditionalExpressionCodeFixProvider.cs (2)
172while (sourceSyntax is { Parent.RawKind: var kind } && kind == suppressKind) 173sourceSyntax = sourceSyntax.Parent;
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)
47return 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.Features.Test.Utilities (1)
EditAndContinue\EditAndContinueTestVerifier.cs (1)
423result = result.Parent!;
Microsoft.CodeAnalysis.LanguageServer.Protocol (1)
Handler\CodeLens\CodeLensHandler.cs (1)
136var testContainerNodes = testMethodMembers.Select(member => member.Node.Parent);
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (68)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
197var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.PublicApiAnalyzers (63)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.PublicApiAnalyzers.CodeFixes (1)
src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
Microsoft.CodeAnalysis.ResxSourceGenerator (63)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.Test.Utilities (10)
CommonTestBase.cs (2)
705Debug.Assert(node.Parent is not null); 706node = node.Parent;
Compilation\ControlFlowGraphVerifier.cs (1)
1000assignment.Syntax.Parent is VisualBasic.Syntax.ForStatementSyntax forStmt &&
Syntax\NodeHelpers.cs (7)
98while (retVal.Parent != null) 100retVal = retVal.Parent; 109var retVal = node.Parent == null ? node : node.Parent; 110while (retVal.Parent != null) 112retVal = retVal.Parent; 125retVal = retVal.Parent;
Microsoft.CodeAnalysis.VisualBasic (186)
Analysis\FlowAnalysis\DataFlowPass.vb (1)
1607Dim variableIsUsedDirectlyAndIsAlwaysAssigned = DeclaredVariableIsAlwaysAssignedBeforeInitializer(node.Syntax.Parent, node.InitializerOpt, placeholder)
Binding\Binder_Conversions.vb (5)
465TypeOf argument.Syntax.Parent Is BinaryExpressionSyntax OrElse 466TypeOf argument.Syntax.Parent Is UnaryExpressionSyntax OrElse 467TypeOf argument.Syntax.Parent Is TupleExpressionSyntax OrElse 468(TypeOf argument.Syntax.Parent Is AssignmentStatementSyntax AndAlso argument.Syntax.Parent.Kind <> SyntaxKind.SimpleAssignmentStatement),
Binding\Binder_Expressions.vb (7)
3652If node.Parent Is Nothing OrElse 3653node.Parent.Kind <> SyntaxKind.NamedFieldInitializer Then 3695Dim parent = syntax.Parent 3704Return syntax.Parent IsNot Nothing AndAlso 3705syntax.Parent.Kind = SyntaxKind.NameOfExpression AndAlso 3706DirectCast(syntax.Parent, NameOfExpressionSyntax).Argument Is syntax 4033Dim parent = TryCast(argumentExpression.Parent, SimpleArgumentSyntax)
Binding\Binder_Initializers.vb (3)
291If equalsValueOrAsNewSyntax.Parent IsNot Nothing Then 293fieldSymbols.Length = DirectCast(equalsValueOrAsNewSyntax.Parent, VariableDeclaratorSyntax).Names.Count) 296For Each name In DirectCast(equalsValueOrAsNewSyntax.Parent, VariableDeclaratorSyntax).Names
Binding\Binder_Invocation.vb (4)
1321If result.Parent IsNot Nothing AndAlso result.Parent.IsKind(SyntaxKind.AddressOfExpression) Then 1488node.Parent IsNot Nothing AndAlso 1489node.Parent.Kind = SyntaxKind.NamedFieldInitializer AndAlso
Binding\Binder_Query.vb (3)
586Dim fromClauseSyntax = DirectCast(source.Syntax.Parent, FromClauseSyntax) 621boundCallOrBadExpression = BindQueryOperatorCall(source.Syntax.Parent, source, 629Return New BoundQueryClause(source.Syntax.Parent,
Binding\Binder_Statements.vb (1)
4472syntaxNodeForErrors = declarationSyntax.Parent
Binding\Binder_Utils.vb (4)
1279If TypeOf containingSyntax.Parent Is MethodBlockBaseSyntax OrElse TypeOf containingSyntax.Parent Is PropertyBlockSyntax Then 1280containingSyntax = containingSyntax.Parent 1282Return TryCast(containingSyntax.Parent, TypeBlockSyntax)
Binding\Binder_WithBlock.vb (1)
342node = node.Parent
Binding\BinderFactory.BinderFactoryVisitor.vb (3)
85If _factory.InScript AndAlso node.Parent.Kind = SyntaxKind.CompilationUnit Then 87Return GetBinderForNodeAndUsage(DirectCast(node.Parent, VisualBasicSyntaxNode), NodeUsage.TopLevelExecutableStatement, DirectCast(node.Parent, VisualBasicSyntaxNode), _position)
Binding\BinderFactory.vb (1)
116node = node.Parent
Binding\MemberSemanticModel.vb (16)
1334Debug.Assert(current.Parent.Kind = SyntaxKind.WithStatement) 1335Debug.Assert(current.Parent.Parent.Kind = SyntaxKind.WithBlock) 1337current = current.Parent.Parent 1345current = current.Parent 1359current = current.Parent 1705node.Parent IsNot Nothing AndAlso node.Parent.Kind = SyntaxKind.ObjectMemberInitializer AndAlso 1706node.Parent.Parent IsNot Nothing AndAlso node.Parent.Parent.Kind = SyntaxKind.AnonymousObjectCreationExpression Then 1910Dim parent As SyntaxNode = syntax.Parent 1915parent = parent.Parent 1993node = node.Parent
Compilation\SemanticModel.vb (21)
558node = node.Parent 998parentSyntax Is boundNodes.LowestBoundNode.Syntax.Parent AndAlso 1429parentSyntax Is lowestBoundNode.Syntax.Parent AndAlso 3531If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is NamespaceBlockSyntax Then 3532Return declaringSyntax.Parent 3537If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is TypeBlockSyntax Then 3538Return declaringSyntax.Parent 3541If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is EnumBlockSyntax Then 3542Return declaringSyntax.Parent 3547If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is MethodBlockBaseSyntax Then 3548Return declaringSyntax.Parent 3553If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is EventBlockSyntax Then 3554Return declaringSyntax.Parent 3559If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is PropertyBlockSyntax Then 3560Return declaringSyntax.Parent
Lowering\Instrumentation\DebugInfoInjector.vb (6)
109Dim aggregateClause = DirectCast(original.Syntax.Parent.Parent, AggregateClauseSyntax) 135Debug.Assert(original.Syntax.Parent.IsKind(SyntaxKind.ExpressionRangeVariable)) 229syntax = DirectCast(original.Syntax.Parent, MultiLineIfBlockSyntax).EndIfStatement 239Return New BoundSequencePoint(DirectCast(original.AlternativeOpt.Syntax.Parent, MultiLineIfBlockSyntax).EndIfStatement, 403syntaxForSequencePoint = localDeclaration.Syntax.Parent
Lowering\Instrumentation\DebugInfoInjector_SequencePoints.vb (9)
13Debug.Assert(containingCatchWithFilter.ExceptionFilterOpt.Syntax.Parent.IsKind(SyntaxKind.CatchFilterClause)) 15Return AddConditionSequencePoint(condition, containingCatchWithFilter.ExceptionFilterOpt.Syntax.Parent, currentMethodOrLambda, local, shareLocal:=False) 119If syntax.Parent.IsKind(SyntaxKind.PropertyStatement) Then 122Dim propertyStatement = DirectCast(syntax.Parent, PropertyStatementSyntax) 131Dim declarator = DirectCast(syntax.Parent, VariableDeclaratorSyntax) 137Return New BoundSequencePoint(syntax.Parent, rewrittenStatement) 149Return New BoundSequencePoint(syntax.Parent, rewrittenStatement) 154Debug.Assert(syntax.Parent.Kind = SyntaxKind.VariableDeclarator) 162Dim declarator = DirectCast(syntax.Parent, VariableDeclaratorSyntax)
Lowering\Instrumentation\Instrumenter.vb (3)
218Debug.Assert(original.AlternativeOpt.Syntax.Parent.Kind = SyntaxKind.MultiLineIfBlock) 265Debug.Assert(original.ExceptionFilterOpt.Syntax.Parent.IsKind(SyntaxKind.CatchFilterClause)) 379Debug.Assert(original.Syntax.Parent.Kind = SyntaxKind.VariableDeclarator)
Lowering\LambdaRewriter\LambdaRewriter.vb (2)
1279Dim curSyntax = lambdaSyntax.Parent 1297curSyntax = curSyntax.Parent
Lowering\LocalRewriter\LocalRewriter.vb (1)
302((node.Syntax.Kind = SyntaxKind.SimpleAsClause AndAlso node.Syntax.Parent.Kind = SyntaxKind.CollectionRangeVariable) OrElse
Lowering\LocalRewriter\LocalRewriter_SelectCase.vb (1)
233Dim selectStatementSyntax = DirectCast(selectExprStmtSyntax.Parent, SelectBlockSyntax).SelectStatement
Lowering\LocalRewriter\LocalRewriter_SyncLock.vb (2)
182If syntaxNode.Parent.Kind = SyntaxKind.SyncLockStatement Then 183tempLockTaken = New SynthesizedLocal(Me._currentMethodOrLambda, enterMethod.Parameters(1).Type, SynthesizedLocalKind.LockTaken, DirectCast(syntaxNode.Parent, SyncLockStatementSyntax))
Lowering\LocalRewriter\LocalRewriter_UnstructuredExceptionHandling.vb (23)
480If statement.Syntax.Parent IsNot Nothing AndAlso statement.Syntax.Parent.Kind = SyntaxKind.EraseStatement Then 496statement.Syntax.Parent Is Nothing OrElse 497statement.Syntax.Parent.Kind <> SyntaxKind.VariableDeclarator OrElse 498statement.Syntax.Parent.Parent Is Nothing OrElse 499statement.Syntax.Parent.Parent.Kind <> SyntaxKind.LocalDeclarationStatement Then 505Not (TypeOf statement.Syntax.Parent Is ReDimStatementSyntax) Then 525statement.Syntax.Parent IsNot Nothing AndAlso 526statement.Syntax.Parent.Kind = SyntaxKind.MultiLineIfBlock AndAlso 527_unstructuredExceptionHandlingResumableStatements.ContainsKey(statement.Syntax.Parent)) 531statement.Syntax.Parent IsNot Nothing AndAlso 532statement.Syntax.Parent.Kind = SyntaxKind.SelectBlock AndAlso 533_unstructuredExceptionHandlingResumableStatements.ContainsKey(statement.Syntax.Parent)) 537statement.Syntax.Parent IsNot Nothing AndAlso 538statement.Syntax.Parent.Kind = SyntaxKind.VariableDeclarator AndAlso 539statement.Syntax.Parent.Parent IsNot Nothing AndAlso 540statement.Syntax.Parent.Parent.Kind = SyntaxKind.LocalDeclarationStatement) 544TypeOf statement.Syntax.Parent Is ReDimStatementSyntax) OrElse 546TypeOf statement.Syntax.Parent Is EraseStatementSyntax))
Operations\VisualBasicOperationFactory.vb (2)
1331Return TryCast(syntax.Parent, MethodBlockBaseSyntax)?.EndBlockStatement Is syntax OrElse 1332TryCast(syntax.Parent, MultiLineLambdaExpressionSyntax)?.EndSubOrFunctionStatement Is syntax
Operations\VisualBasicOperationFactory_Methods.vb (1)
348Dim syntax As SyntaxNode = If(value.Syntax?.Parent, expression.Syntax)
Semantics\OverloadResolution.vb (2)
3774Dim parent As SyntaxNode = syntax.Parent 3783parent = parent.Parent
SourceGeneration\VisualBasicSyntaxHelper.vb (11)
37TypeOf target.Parent Is VariableDeclaratorSyntax AndAlso 38TypeOf target.Parent.Parent Is FieldDeclarationSyntax Then 39Return target.Parent.Parent 47Debug.Assert(TypeOf attribute.Parent Is AttributeListSyntax) 48Debug.Assert(attribute.Parent.Parent IsNot Nothing) 49Dim owningNode = attribute.Parent.Parent 54Return owningNode.Parent
Symbols\Source\LocalSymbol.vb (5)
548Dim propertyBlock = DirectCast(node.Parent, PropertyBlockSyntax) 551Dim eventBlock = DirectCast(node.Parent, EventBlockSyntax) 558node = _identifierToken.Parent.Parent 564node = node.Parent 571node = node.Parent
Symbols\Source\SourceEventSymbol.vb (1)
458Dim eventBlock = Me._syntaxRef.GetSyntax(cancellationToken).Parent
Symbols\Source\SourceMethodSymbol.vb (1)
753Return TryCast(decl.Parent, MethodBlockBaseSyntax)
Symbols\Symbol_Attributes.vb (2)
365Dim parent = syntaxList.Node.Parent 367If parent.IsKind(SyntaxKind.AttributesStatement) AndAlso parent.Parent.IsKind(SyntaxKind.CompilationUnit) Then
Symbols\Tuples\TupleTypeSymbol.vb (1)
1129diagnostics.Add(ERRID.WRN_TupleLiteralNameMismatch, literal.Arguments(i).Syntax.Parent.Location, sourceName, destination)
Syntax\LambdaUtilities.vb (21)
52Dim lambda = lambdaBody.Parent 116Dim parent = node?.Parent 148Dim clause = parent.Parent 177Dim parentClause = clause.Parent 179clause = clause.Parent 192Dim parentClause = parent.Parent 207Dim joinClause = DirectCast(parent.Parent, JoinClauseSyntax) 335Dim firstCondition = DirectCast(node.Parent, JoinClauseSyntax).JoinConditions.First 383Dim clause = lambda.Parent 404Dim clause = lambda.Parent 424Dim joinClause = DirectCast(lambda.Parent, JoinClauseSyntax) 539Dim clause = expressionRangeVariable.Parent 561Dim clause = collectionRangeVariable.Parent 582Return clause.Parent.IsKind(SyntaxKind.QueryExpression) AndAlso 583clause Is DirectCast(clause.Parent, QueryExpressionSyntax).Clauses.First 605Return joinCondition Is DirectCast(joinCondition.Parent, JoinClauseSyntax).JoinConditions.First 705If node.Parent?.Parent IsNot Nothing AndAlso 706node.Parent.Parent.Parent Is Nothing Then
Syntax\NamespaceDeclarationSyntaxReference.vb (1)
28node = node.Parent
Syntax\SyntaxBindingUtilities.vb (3)
19node.IsKind(SyntaxKind.ModifiedIdentifier) AndAlso node.Parent.IsKind(SyntaxKind.VariableDeclarator) AndAlso node.Parent.Parent.IsKind(SyntaxKind.UsingStatement) OrElse
Syntax\SyntaxFactory.vb (1)
1050node = node.Parent
Syntax\SyntaxFacts.vb (10)
127Dim parent = node.Parent 135Dim parent = node.Parent 152Dim parent = node.Parent 165Dim parent = node.Parent 641nextNode = nextNode.Parent 672Dim parent1 = TryCast(node.Parent, NameColonEqualsSyntax) 869token.Parent.Parent.Kind = SyntaxKind.NamedFieldInitializer 974Dim n = TryCast(token.Parent.Parent, XmlNodeSyntax) 1160Dim parent = node.Parent 1170parent = node.Parent
Syntax\SyntaxNodeRemover.vb (2)
241Me.AddDirectives(node.Parent, GetRemovedSpan(span, fullSpan)) 265Me.AddDirectives(node.Parent, GetRemovedSpan(span, fullSpan))
Syntax\SyntaxNormalizer.vb (2)
213Not (tokenParent IsNot Nothing AndAlso tokenParent.Parent IsNot Nothing AndAlso tokenParent.Parent.Kind = SyntaxKind.CrefReference) AndAlso
Syntax\VisualBasicSyntaxNode.vb (2)
64current = rootCandidate.Parent 116Return DirectCast(MyBase.Parent, VisualBasicSyntaxNode)
Syntax\VisualBasicSyntaxTree.vb (1)
395node = node.Parent
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\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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
197var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.Workspaces.UnitTests (1)
SymbolKeyTests.cs (1)
1557node = node.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.Logging.Generators (7)
LoggerMessageGenerator.Parser.cs (5)
502SyntaxNode? potentialNamespaceParent = classDec.Parent; 510potentialNamespaceParent = potentialNamespaceParent.Parent; 522namespaceParent = namespaceParent.Parent as NamespaceDeclarationSyntax; 544var parentLoggerClass = (classDec.Parent as TypeDeclarationSyntax); 562parentLoggerClass = (parentLoggerClass.Parent as TypeDeclarationSyntax);
LoggerMessageGenerator.Roslyn4.0.cs (1)
31(context, _) => context.TargetNode.Parent as ClassDeclarationSyntax)
src\libraries\Common\src\Roslyn\CSharpSyntaxHelper.cs (1)
41var container = attributeList.Parent;
Microsoft.Extensions.Options.SourceGeneration (2)
Parser.cs (2)
126var parent = syntax.Parent as TypeDeclarationSyntax; 131parent = parent.Parent as TypeDeclarationSyntax;
Microsoft.Gen.ComplianceReports (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
113var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.ContextualOptions (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
113var 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)
289SyntaxNode? potentialNamespaceParent = typeDec.Parent; 294potentialNamespaceParent = potentialNamespaceParent.Parent; 303namespaceParent = namespaceParent.Parent as NamespaceDeclarationSyntax; 329var parentLoggerClass = typeDec.Parent as TypeDeclarationSyntax; 348parentLoggerClass = parentLoggerClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
113var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.MetadataExtractor (7)
src\Generators\Microsoft.Gen.Metrics\Parser.cs (5)
107SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 112potentialNamespaceParent = potentialNamespaceParent.Parent; 121ns = ns.Parent as NamespaceDeclarationSyntax; 146var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 169parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
113var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.Metrics (8)
MetricsGenerator.cs (1)
28GeneratorUtilities.Initialize(context, _attributeNames, m => m.Parent as TypeDeclarationSyntax, HandleAnnotatedTypes);
Parser.cs (5)
107SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 112potentialNamespaceParent = potentialNamespaceParent.Parent; 121ns = ns.Parent as NamespaceDeclarationSyntax; 146var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 169parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
113var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.MetricsReports (7)
src\Generators\Microsoft.Gen.Metrics\Parser.cs (5)
107SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 112potentialNamespaceParent = potentialNamespaceParent.Parent; 121ns = ns.Parent as NamespaceDeclarationSyntax; 146var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 169parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
113var node = attributeSyntax.Parent?.Parent;
Microsoft.Interop.ComInterfaceGenerator (4)
src\libraries\System.Runtime.InteropServices\gen\Common\ConvertToSourceGeneratedInteropFixer.cs (2)
234for (SyntaxNode? node = syntax.Parent; node is not null; node = node.Parent)
VtableIndexStubGenerator.cs (2)
404for (SyntaxNode? parentNode = methodSyntax.Parent; parentNode is TypeDeclarationSyntax typeDecl; parentNode = parentNode.Parent)
Microsoft.Interop.JavaScript.JSImportGenerator (4)
JSExportGenerator.cs (2)
466for (SyntaxNode? parentNode = methodSyntax.Parent; parentNode is TypeDeclarationSyntax typeDecl; parentNode = parentNode.Parent)
JSImportGenerator.cs (2)
375for (SyntaxNode? parentNode = methodSyntax.Parent; parentNode is TypeDeclarationSyntax typeDecl; parentNode = parentNode.Parent)
Microsoft.Interop.LibraryImportGenerator (12)
Analyzers\ConvertToLibraryImportFixer.cs (9)
303{ Parent: InvocationExpressionSyntax invocationInScope } => invocationInScope, 304{ Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocationOnType } } => invocationOnType, 322else if (invocation.Parent.IsKind(SyntaxKind.ExpressionStatement)) 342else if (invocation.Parent.IsKind(SyntaxKind.EqualsValueClause)) 375else if (invocation.Parent.IsKind(SyntaxKind.SimpleAssignmentExpression) && invocation.Parent.Parent.IsKind(SyntaxKind.ExpressionStatement)) 377editor.ReplaceNode(invocation.Parent,
LibraryImportGenerator.cs (1)
554if (methodSyntax.Parent is TypeDeclarationSyntax typeDecl && !typeDecl.IsInPartialContext(out var nonPartialIdentifier))
src\libraries\System.Runtime.InteropServices\gen\Common\ConvertToSourceGeneratedInteropFixer.cs (2)
234for (SyntaxNode? node = syntax.Parent; node is not null; node = node.Parent)
Microsoft.Interop.LibraryImportGenerator.Downlevel (1)
DownlevelLibraryImportGenerator.cs (1)
424if (methodSyntax.Parent is TypeDeclarationSyntax typeDecl && !typeDecl.IsInPartialContext(out var nonPartialIdentifier))
Microsoft.Interop.SourceGeneration (4)
ContainingSyntaxContext.cs (3)
53for (SyntaxNode? parent = memberDeclaration.Parent; parent is TypeDeclarationSyntax typeDeclaration; parent = parent.Parent) 69for (SyntaxNode? parent = memberDeclaration.FirstAncestorOrSelf<BaseNamespaceDeclarationSyntax>(); parent is BaseNamespaceDeclarationSyntax ns; parent = parent.Parent)
SyntaxExtensions.cs (1)
122for (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))
Microsoft.VisualStudio.LanguageServices (1)
Venus\ContainedDocument.cs (1)
863current = current.Parent;
Microsoft.VisualStudio.LanguageServices.CSharp (37)
CodeModel\CSharpCodeModelService.cs (24)
142node.Parent != null) 261return MatchesScope(node.Parent!, scope); 338return GetAttributeNodes(parent.Parent!); 1161if (member.Parent is (kind: SyntaxKind.InterfaceDeclaration or SyntaxKind.EnumDeclaration)) 1177if (!(member.Parent is BaseTypeDeclarationSyntax) && 1671RoslynDebug.Assert(attributeNode.Parent is AttributeListSyntax); 1673return (AttributeListSyntax)attributeNode.Parent; 1679RoslynDebug.Assert(attributeNode.Parent is AttributeListSyntax); 1681var attributeList = (AttributeListSyntax)attributeNode.Parent; 1758Contract.ThrowIfNull(node.Parent); 1759return node.Parent; 1845: usingDirective.Parent; 1930var parameterList = (ParameterListSyntax)parameter.Parent!; 2016if (member.Parent is InterfaceDeclarationSyntax) 2035if (member.Parent is InterfaceDeclarationSyntax) 2254if (member.Parent is InterfaceDeclarationSyntax) 2275if (member.Parent is InterfaceDeclarationSyntax) 2286if (member.Parent is ClassDeclarationSyntax) 2288var parentFlags = ((ClassDeclarationSyntax)member.Parent).GetModifierFlags(); 2770var enumDeclaration = (EnumDeclarationSyntax)node.Parent!; 3081var attributeDeclaration = (AttributeListSyntax)attribute.Parent!; 3159var variableDeclaration = (VariableDeclarationSyntax)member.Parent!; 3451return InsertAttributeListIntoContainer(index, list, container.Parent!); 3580if (methodDeclaration?.Parent is not ClassDeclarationSyntax classDecl ||
CodeModel\CSharpCodeModelService.NodeLocator.cs (1)
1170return new VirtualTreePoint(fileScopedNamespace.SyntaxTree, text, fileScopedNamespace.Parent.Span.End);
LanguageService\CSharpDebuggerIntelliSenseContext.cs (1)
83token.Parent.Parent is MemberDeclarationSyntax)
LanguageService\CSharpHelpContextService.cs (10)
248if (token.Parent.Parent.IsKind(SyntaxKind.Parameter)) 253else if (token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 258else if (token.Parent.Parent.IsKind(SyntaxKind.EnumMemberDeclaration)) 263else if (token.Parent.Parent.IsKind(SyntaxKind.VariableDeclarator)) 271if (token.Parent.Parent.IsKind(SyntaxKind.AnonymousObjectMemberDeclarator)) 276else if (token.Parent.Parent.IsKind(SyntaxKind.UsingDirective)) 281else if (token.Parent.Parent.IsKind(SyntaxKind.AttributeArgument)) 412if (token.Parent is IdentifierNameSyntax { Parent: TypeConstraintSyntax { Parent: TypeParameterConstraintClauseSyntax } }) 525token.Parent?.Parent is VariableDeclarationSyntax declaration && token.Parent == declaration.Type)
Utilities\BlankLineInGeneratedMethodFormattingRule.cs (1)
28currentToken.Parent.Parent.Kind() == SyntaxKind.MethodDeclaration)
Microsoft.VisualStudio.LanguageServices.Implementation (5)
CodeModel\AbstractCodeModelService.cs (2)
422Contract.ThrowIfNull(node.Parent); 423GetOptionNameAndOrdinal(node.Parent, node, out var name, out var ordinal);
CodeModel\FileCodeModel.cs (1)
598parent = parent.Parent;
CodeModel\FileCodeModel_Events.cs (1)
201codeModelEvent.ParentNode.Parent != null)
RoslynVisualStudioWorkspace.cs (1)
177syntaxNode = syntaxNode.Parent;
QuarantineTools.Tests (2)
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\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
197var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Roslyn.Diagnostics.CSharp.Analyzers (492)
CSharpImportingConstructorShouldBeObsoleteCodeFixProvider.cs (1)
27typeDeclaration = attributeName.GetAncestor<AttributeListSyntax>()?.Parent;
CSharpSpecializedEnumerableCreationAnalyzer.cs (1)
101AnalyzeArrayLength(initializer.Expressions.Count, initializer.Parent, addDiagnostic);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (54)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression.IsParentKind(SyntaxKind.NameMemberCref) && expression.Parent.IsParentKind(SyntaxKind.QualifiedCref); 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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
28var nodeParent = node.Parent; 40? nodeParent.Parent as ExpressionSyntax 71if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 346if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 526if (node?.Parent is CastExpressionSyntax castExpression) 584if (node.Parent is BinaryExpressionSyntax binaryExpression && 586(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 638if (node.Parent is ArgumentSyntax argument) 640if (argument.Parent is ArgumentListSyntax argumentList) 649else if (node.Parent is InitializerExpressionSyntax initializer) 673if (node.Parent is ArgumentSyntax argument) 675if (argument.Parent is ArgumentListSyntax argumentList) 684else if (node.Parent is InitializerExpressionSyntax initializer) 722if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 737if (node.Parent is ParenthesizedPatternSyntax) 741if (node.Parent is IsPatternExpressionSyntax) 745if (node.Parent is SwitchExpressionArmSyntax) 749if (node.Parent is SubpatternSyntax) 753if (node.Parent is CasePatternSwitchLabelSyntax) 759return node.Parent is PatternSyntax patternParent &&
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax baseType && 208baseType.Parent is BaseListSyntax baseList && 216else if (baseList.Types[0] == type.Parent) 225if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 234type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 235type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 236type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 252if (type.Parent.Kind() 261type.Parent, cancellationToken).DeclaredAccessibility; 274if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 276if (type.Parent.Parent.Parent?.Kind() 283type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 286if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 288var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 381if (current.Parent is ForEachStatementSyntax foreachStatement && 388if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 433if (topExpression?.Parent is ArgumentSyntax argument) 440if (argument.Parent is BaseArgumentListSyntax argumentList) 443if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
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\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\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); 676=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 692current = current.Parent; 794for (var current = node; current != null; current = current.Parent) 843for (var current = node; current != null; current = current.Parent)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
109if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 112return token.Parent.Parent.GetFirstToken() != token; 125=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 134return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 203&& statementOrElse.Parent != null 204&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 279token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 383token.Parent?.Parent is QueryExpressionSyntax queryExpression && 391var parent = initializer.Parent; 415return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 427var parent = initializer.Parent; 447var parent = anonymousObjectInitializer.Parent; 483return token.Parent.Parent is LabeledStatementSyntax; 530currentToken.Parent.Parent is DeclarationExpressionSyntax;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
35if (block.Parent is null or BlockSyntax) 43block.Parent.GetFirstToken(includeZeroWidth: true),
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
179RoslynDebug.AssertNotNull(node.Parent); 182firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (9)
67if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 108RoslynDebug.AssertNotNull(node.Parent); 109var switchStatement = (SwitchStatementSyntax)node.Parent; 188if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 233if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 257if (node.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == node) 267if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression)
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; 277|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 366var currentTokenParentParent = currentToken.Parent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 386if (initializer?.Parent != null) 388AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
210var attributeOwner = previousToken.Parent?.Parent; 237RoslynDebug.AssertNotNull(currentUsing.Parent); 239var usings = GetUsings(currentUsing.Parent);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (1)
341case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (27)
169=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 200=> node?.Parent is UsingDirectiveSyntax usingDirective && 250return node.Parent is BaseMethodDeclarationSyntax or 521if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 630node.Parent.IsParentKind(SyntaxKind.Subpattern); 642if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 644var withInitializer = identifier.Parent.GetRequiredParent(); 648else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 650var objectInitializer = identifier.Parent.GetRequiredParent(); 651if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 653initializedInstance = objectInitializer.Parent; 656else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 671Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 674creationExpression = node.Parent; 720node = node.Parent; 761var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 765parent = parent.Parent; 774parent = parent.Parent; 938var parent = node.Parent; 1111=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1114=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1175node.Parent is AttributeListSyntax attributeList && 1204return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1288=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1331=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1337=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (33)
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) 365if (rewrittenConversion.IsExplicit && castNode.WalkUpParentheses().Parent is not InterpolationSyntax) 452if (castNode.WalkUpParentheses().Parent is MemberAccessExpressionSyntax memberAccessExpression) 485if (castNode.WalkUpParentheses().Parent is InvocationExpressionSyntax invocationExpression) 504if (castNode.WalkUpParentheses().Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) isExpression && 724if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 846static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 871static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1045if (expression.WalkUpParentheses().Parent 1143if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1213if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1220else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1226else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1228equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1252for (SyntaxNode? current = expression; current != null; current = current.Parent) 1267for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1269currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1323for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1325currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1353for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1355currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1629if (castNode.WalkUpParentheses().Parent is InterpolationSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
187var containerOfList = parent.Parent; 203var parentOfParent = parent.Parent; 337RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 338var labelNode = previousToken.Parent.Parent; 381RoslynDebug.AssertNotNull(node.Parent); 383node = node.Parent; 390node = node.Parent; 400node = node.Parent; 442return token.Parent.Parent as MemberDeclarationSyntax;
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\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
105var isSupportedParentKind = variableDeclaration.Parent is (kind: 121switch (declaration.Parent)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
71if (typeName.Parent is DeclarationExpressionSyntax declExpression && 84if (typeName.Parent is VariableDeclarationSyntax variableDeclaration && 85typeName.Parent.Parent is (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement)) 98if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 103else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 113else if (typeName.Parent is DeclarationExpressionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
112if (typeName.Parent is VariableDeclarationSyntax variableDeclaration && 113typeName.Parent.Parent is (kind: 119if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 142else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 151else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 213if (declarationExpression.Parent is not ArgumentSyntax 215Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 289if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (6)
214targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 377token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 393token.Parent.Parent is StatementSyntax) 490FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause,
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; 470if (targetToken.Parent?.Parent?.Kind() 591targetToken.Parent.Parent is AccessorDeclarationSyntax) 606targetToken.Parent.Parent is AccessorDeclarationSyntax) 618if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 620else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 651targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 652IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
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; 779token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 834token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 950{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1009name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1011conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1099token.Parent.Parent is ParameterSyntax parameter3 && 1100parameter3.Parent is ParameterListSyntax parameterList3 && 1115parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1119if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1129=> parameterList.Parent switch 1268parent = token.Parent.Parent; 1270else if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent is IdentifierNameSyntax scopedIdentifierName && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1272parent = scopedIdentifierName.Parent.Parent; 1351leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1353var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1435leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1521while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1526if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1557if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1585possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1653if (outer.Parent is ForEachStatementSyntax @foreach) 1674if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1676node = node.Parent; 1680if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1682node = node.Parent.Parent; 1694leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1802parent.Parent?.Parent is (kind: 1810if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1866if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2079equalsValue.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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
312var currentTokenParentParent = currentToken.Parent.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (8)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 226embeddedStatementOwner = embeddedStatementOwner.Parent; 248token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 400if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 423RoslynDebug.AssertNotNull(queryBody.Parent); 424return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
48if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 277if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 283if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 289if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 300if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 307if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 318if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 323if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 324argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 325argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 326argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 377if (argument.Parent != null) 379if (argument.Parent.Parent is AttributeSyntax attribute) 517switch (argumentList.Parent) 547if (attributeArgumentList.Parent is AttributeSyntax attribute) 743var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 896if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1214if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1217if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1221SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1356if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1384else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1394else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1404else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1428var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1497if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1635if (memberDeclarator.NameEquals != null && memberDeclarator.Parent is AnonymousObjectCreationExpressionSyntax) 1641var types = InferTypes((AnonymousObjectCreationExpressionSyntax)memberDeclarator.Parent); 1660return nameColon.Parent switch 1676return expressionColon.Parent switch 1728memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1729memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1851if (nameColon.Parent is SubpatternSyntax subpattern) 1861if (expressionColon.Parent is SubpatternSyntax subpattern) 1878if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2036=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2072if (arm.Parent is SwitchExpressionSyntax switchExpression) 2120var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2186variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2254var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
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\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
System.Private.CoreLib.Generators (3)
EventSourceGenerator.Parser.cs (3)
22NamespaceDeclarationSyntax? ns = classDef.Parent as NamespaceDeclarationSyntax; 25if (classDef.Parent is not CompilationUnitSyntax) 86ns = ns.Parent as NamespaceDeclarationSyntax;
System.Text.Json.SourceGeneration (1)
JsonSourceGenerator.Parser.cs (1)
173for (TypeDeclarationSyntax? currentType = contextClassSyntax; currentType != null; currentType = currentType.Parent as TypeDeclarationSyntax)
System.Text.RegularExpressions.Generator (3)
RegexGenerator.Parser.cs (3)
50TypeDeclarationSyntax? typeDec = memberSyntax.Parent as TypeDeclarationSyntax; 228var parent = typeDec.Parent as TypeDeclarationSyntax; 238parent = parent.Parent as TypeDeclarationSyntax;
Test.Utilities (61)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Text.Analyzers (69)
src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
183while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 185declSyntax = declSyntax.Parent;
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
455syntax = syntax.Parent;
src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
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\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) 794var parent = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
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\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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
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\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\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
197var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;