5689 references to Parent
Aspire.Hosting.Integration.Analyzers (6)
AspireExportAnalyzer.cs (6)
384while (current.Parent is ParenthesizedExpressionSyntax or CastExpressionSyntax) 386current = current.Parent; 389return current.Parent is InvocationExpressionSyntax invocation && 395if (localFunction.Parent is null) 402foreach (var invocation in localFunction.Parent.DescendantNodes().OfType<InvocationExpressionSyntax>()) 432} when invocation.Parent is ConditionalAccessExpressionSyntax
EventSourceGenerator (3)
EventSourceGenerator.Parser.cs (3)
24NamespaceDeclarationSyntax? ns = classDef.Parent as NamespaceDeclarationSyntax; 27if (classDef.Parent is not CompilationUnitSyntax) 154ns = ns.Parent as NamespaceDeclarationSyntax;
GenerateDocumentationAndConfigFiles (66)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
ILLink.CodeFixProvider (18)
BaseAttributeCodeFixProvider.cs (3)
95SyntaxNode? parentNode = node.Parent; 114parentNode = parentNode.Parent; 122parentNode = parentNode.Parent;
RequiresUnsafeCodeFixProvider.cs (15)
86var parentBlock = containingStatement.Parent as BlockSyntax; 97var switchSection = containingStatement.Parent as SwitchSectionSyntax; 122return statement.Parent is IfStatementSyntax 123|| statement.Parent is ElseClauseSyntax 124|| statement.Parent is WhileStatementSyntax 125|| statement.Parent is ForStatementSyntax 126|| statement.Parent is ForEachStatementSyntax 127|| statement.Parent is DoStatementSyntax 128|| statement.Parent is UsingStatementSyntax 129|| statement.Parent is LockStatementSyntax 130|| statement.Parent is FixedStatementSyntax; 425var parent = arrowExpr.Parent; 547if (arrowExpr.Parent is MethodDeclarationSyntax method) 559else if (arrowExpr.Parent is LocalFunctionStatementSyntax localFunc) 564else if (arrowExpr.Parent is PropertyDeclarationSyntax prop)
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.CodeAnalysis (24)
DiagnosticAnalyzer\AnalyzerDriver.cs (1)
1279node = node.Parent)
DiagnosticAnalyzer\SuppressMessageAttributeState.cs (1)
191node = node.Parent)
Syntax\SeparatedSyntaxList.cs (1)
155return new SyntaxToken(node.Parent, green, node.GetChildPosition(index), _list.index + index);
Syntax\SyntaxList.cs (1)
27protected override SyntaxTree SyntaxTreeCore => this.Parent!.SyntaxTree;
Syntax\SyntaxNavigator.cs (6)
435while (node.Parent != null) 440foreach (var child in node.Parent.ChildNodesAndTokens()) 469node = node.Parent; 485while (node.Parent != null) 490foreach (var child in node.Parent.ChildNodesAndTokens().Reverse()) 519node = node.Parent;
Syntax\SyntaxNode.cs (8)
222Interlocked.CompareExchange(ref element, green.CreateRed(this.Parent, this.GetChildPosition(slot)), null); 244Interlocked.CompareExchange(ref element, green.CreateRed(this.Parent, this.GetChildPosition(1)), null); 267var newNode = greenChild.CreateRed(this.Parent, GetChildPosition(index)); 388for (SyntaxNode? node = this; node != null; node = node.Parent) 542if (node.Parent != null) 544node = node.Parent; 821var parent = node.Parent; 985var parent = node.Parent;
Syntax\SyntaxNodeExtensions_Tracking.cs (4)
149while (node.Parent != null) 151node = node.Parent; 175if (node.Parent != null) 177node = node.Parent;
Syntax\SyntaxNodeOrToken.cs (1)
127public SyntaxNode? Parent => _token != null ? _nodeOrParent : _nodeOrParent?.Parent;
Syntax\SyntaxNodeOrTokenList.cs (1)
119internal SyntaxNode? Parent => _node?.Parent;
Microsoft.CodeAnalysis.Analyzers (74)
MetaAnalyzers\DiagnosticAnalyzerFieldsAnalyzer.cs (2)
174var current = typeSyntax.Parent; 182current = current.Parent;
MetaAnalyzers\DiagnosticDescriptorCreationAnalyzer.cs (1)
926fieldDeclaration = fieldDeclaration.Parent!;
MetaAnalyzers\Fixers\ConfigureGeneratedCodeAnalysisFix.cs (1)
63var methodDeclaration = generator.TryGetContainingDeclaration(parameterDeclaration.Parent, DeclarationKind.Method);
MetaAnalyzers\Fixers\EnableConcurrentExecutionFix.cs (1)
55var methodDeclaration = generator.TryGetContainingDeclaration(parameterDeclaration.Parent, DeclarationKind.Method);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
182while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 184declSyntax = declSyntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.AnalyzerUtilities (63)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
182while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 184declSyntax = declSyntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.CodeStyle (67)
src\roslyn\src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
35var parent = node.Parent;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessaryParentheses\AbstractRemoveUnnecessaryParenthesesDiagnosticAnalyzer.cs (1)
76var parentKind = parenthesizedExpression.Parent?.RawKind;
src\roslyn\src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (2)
317fieldDeclaration = variableDeclarator?.Parent?.Parent as TFieldDeclaration;
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\UseCollectionInitializerHelpers.cs (1)
69containingBlockOrCompilationUnit = containingBlockOrCompilationUnit.Parent!;
src\roslyn\src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
134var negated = syntaxFacts.IsLogicalNotExpression(invocation.Parent);
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (1)
443if (syntaxFacts.IsAnyAssignmentStatement(node.Parent) &&
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer_IfStatement.cs (1)
132if (whenPartMatch.Parent is TMemberAccessExpressionSyntax memberAccess)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.CodeStyle.Fixes (48)
src\roslyn\src\Analyzers\Core\CodeFixes\AddAnonymousTypeMemberName\AbstractAddAnonymousTypeMemberNameCodeFixProvider.cs (3)
63if (node.Parent is not TAnonymousObjectMemberDeclaratorSyntax declarator) 74if (declarator.Parent is not TAnonymousObjectInitializer) 125var anonymousType = current.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\AddExplicitCast\AbstractAddExplicitCastCodeFixProvider.cs (3)
127if (syntaxFacts.IsParenthesizedExpression(currentTarget.Parent)) 129return (currentTarget.Parent, currentTarget.Parent.ReplaceNode(currentTarget, currentReplacement).WithAdditionalAnnotations(Simplifier.Annotation));
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (1)
74for (var node = initialNode; node != null; node = node.Parent)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateMember\AbstractGenerateMemberService.cs (1)
172if (expression.Parent?.RawKind == syntaxFacts.SyntaxKinds.AddressOfExpression &&
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (2)
347var block = assignmentStatement.Parent; 446if (syntaxKinds.AddressOfExpression == SimpleNameOrMemberAccessExpressionOpt.Parent?.RawKind)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (1)
63var typeDeclarationWithCoreMembers = firstGeneratedMember.Parent!;
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodSynchronous\AbstractMakeMethodSynchronousCodeFixProvider.cs (3)
211expressionNode = nameNode.Parent; 221var invocationExpression = expressionNode.Parent; 241var parentExpression = parentMemberAccessExpression.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\NamingStyle\NamingStyleCodeFixProvider.cs (1)
67node = node.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveUnusedParametersAndValues\AbstractRemoveUnusedValuesCodeFixProvider.cs (16)
173!syntaxFacts.IsExpressionStatement(node.Parent)) 182else if (syntaxFacts.IsDeclarationPattern(node.Parent) || 183syntaxFacts.IsRecursivePattern(node.Parent) || 184syntaxFacts.IsListPattern(node.Parent)) 482if (declaredLocal == null && node.Parent is TCatchStatementSyntax) 484declaredLocal = semanticModel.GetDeclaredSymbol(node.Parent, cancellationToken) as ILocalSymbol; 512Contract.ThrowIfFalse(node.GetRequiredParent().Parent is TExpressionStatementSyntax); 519if (node.Parent is TStatementSyntax) 522nodesToRemove.Add(node.Parent); 524else if (node.Parent is TExpressionSyntax && node.Parent.Parent is TExpressionStatementSyntax) 527nodesToRemove.Add(node.Parent.Parent); 695n => n.Parent is TSwitchCaseBlockSyntax || 696blockFacts.IsExecutableBlock(n.Parent) &&
src\roslyn\src\Analyzers\Core\CodeFixes\SimplifyInterpolation\AbstractSimplifyInterpolationCodeFixProvider.cs (1)
65interpolationSyntax.Parent is TInterpolatedStringExpressionSyntax interpolatedString)
src\roslyn\src\Analyzers\Core\CodeFixes\UseAutoProperty\AbstractUseAutoPropertyCodeFixProvider.cs (4)
443if (fieldToRemove.Parent == property.Parent && 444fieldToRemove.Parent is TTypeDeclarationSyntax typeDeclaration) 582node = node.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\UseCompoundAssignment\AbstractUseCompoundAssignmentCodeFixProvider.cs (1)
98if (syntaxFacts.IsSimpleAssignmentStatement(currentAssignment.Parent))
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\AbstractUseConditionalExpressionCodeFixProvider.cs (2)
182while (sourceSyntax is { Parent.RawKind: var kind } && kind == suppressKind) 183sourceSyntax = sourceSyntax.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\UseNullPropagation\AbstractUseNullPropagationCodeFixProvider.cs (4)
183if (syntaxFacts.IsElseClause(ifStatement.Parent)) 197editor.ReplaceNode(ifStatement.Parent, PostProcessElseIf(ifStatement, newWhenTrueStatement)); 246if (syntaxFacts.IsSimpleMemberAccessExpression(match.Parent)) 248var memberAccess = match.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.CodeAnalysis.CSharp (153)
Binder\Binder.cs (1)
83while (node.Parent is { } parent)
Binder\Binder.IdentifierUsedAsValueFinder.cs (2)
123Debug.Assert(targetNode.Parent is not null); 124targetNode = targetNode.Parent;
Binder\Binder.ValueChecks.cs (1)
1285return syntax.Parent is ParenthesizedExpressionSyntax parenthesized &&
Binder\Binder_Conversions.cs (3)
3435if (node.Parent != null && node.Parent.Kind() == SyntaxKind.InvocationExpression) 3437errorNode = node.Parent;
Binder\Binder_Expressions.cs (6)
4717SyntaxNode equalsValueClause = node.Parent; 4724SyntaxNode variableDeclarator = equalsValueClause.Parent; 4731SyntaxNode variableDeclaration = variableDeclarator.Parent; 4738variableDeclaration.Parent.IsKind(SyntaxKind.LocalDeclarationStatement) || 4739variableDeclaration.Parent.IsKind(SyntaxKind.ForStatement); 9785if (expr.Syntax.Parent is ConditionalAccessExpressionSyntax conditional &&
Binder\Binder_QueryErrors.cs (1)
33for (SyntaxNode node = queryClause; ; node = node.Parent)
Binder\Binder_Statements.cs (2)
3442if (syntax.Parent is QueryClauseSyntax || syntax.Parent is SelectOrGroupClauseSyntax)
Binder\Binder_Symbols.cs (2)
2397node = node.Parent; 2697var code = (where.Parent is QueryClauseSyntax) ? ErrorCode.ERR_TypeVarNotFoundRangeVariable : ErrorCode.ERR_TypeVarNotFound;
Binder\Binder_TupleOperators.cs (1)
325Location location = ((BoundTupleExpression)(useRight ? right : left)).Arguments[i].Syntax.Parent.Location;
Binder\BinderFactory.BinderFactoryVisitor.cs (3)
87return VisitCore(parent.Parent); 1095if (node.IsKind(SyntaxKind.UsingDirective) && node.Parent == containingNode) 1100node = node.Parent;
Binder\BinderFactory.cs (2)
116if ((!InScript || node.Kind() != SyntaxKind.CompilationUnit) && node.Parent != null) 118node = node.Parent;
Binder\DecisionDagBuilder_CheckOrReachability.cs (5)
226if (syntax.Parent is ParenthesizedPatternSyntax parens) 232if (syntax.Parent is BinaryPatternSyntax binary) 245if (syntax.Parent is SubpatternSyntax subpatternSyntax 255if (syntax.Parent is ListPatternSyntax listPattern) 261if (syntax.Parent is SlicePatternSyntax slicePattern)
Compilation\CSharpSemanticModel.cs (1)
4000parentSyntax == boundNode.Syntax.Parent &&
Compilation\SpeculativeSemanticModelWithMemberModel.cs (2)
154attributeOrParameter.Parent is null || 160MemberSemanticModel containing = GetEnclosingMemberModel(attributeOrParameter.Parent);
Compilation\SyntaxTreeSemanticModel.cs (8)
374var variableDecl = type.ModifyingScopedOrRefTypeOrSelf().Parent as VariableDeclarationSyntax; 991for (SyntaxNode curr = node; curr != null; curr = curr.Parent) 2481return (node) => node.Kind() != SyntaxKind.GlobalStatement || node.Parent != unit; 2486return (node) => node.Parent != unit || node.Kind() == SyntaxKind.GlobalStatement; 2508if (node.Parent == typeDeclaration) 2512else if (node.Parent is BaseListSyntax baseList) 2516else if (node.Parent is PrimaryConstructorBaseTypeSyntax baseType && baseType == typeDeclaration.PrimaryConstructorBaseTypeIfClass) 2544if (node.Parent == typeDeclaration)
FlowAnalysis\UnassignedAddressTakenVariablesWalker.cs (2)
54if (node.Parent.Kind() == SyntaxKind.AddressOfExpression) 56_result.Add((PrefixUnaryExpressionSyntax)node.Parent);
Lowering\AsyncRewriter\AsyncExceptionHandlerRewriter.cs (1)
609var tryStatementSyntax = (TryStatementSyntax)node.Syntax.Parent;
Lowering\ClosureConversion\ClosureConversion.cs (2)
1781var curSyntax = lambdaSyntax.Parent; 1796curSyntax = curSyntax.Parent;
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (3)
417Debug.Assert(returnStatement.ExpressionOpt.Syntax.Parent != null); 419SyntaxKind parentKind = returnStatement.ExpressionOpt.Syntax.Parent.Kind(); 571SyntaxNode? parent = body.Parent;
Lowering\Instrumentation\DebugInfoInjector.cs (5)
141Debug.Assert(syntax is { Parent: { Parent: { } } }); 142var grandparent = syntax.Parent.Parent; 199SyntaxNode? parent = original.Syntax.Parent;
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (6)
83SyntaxNode? node = boundFixed.Syntax.Parent; 135Debug.Assert(node.Parent is TryStatementSyntax); 136if (((TryStatementSyntax)node.Parent).Finally != null) 143node = node.Parent; 145node = node.Parent; 153node = node.Parent;
Lowering\LocalRewriter\LocalRewriter_PatternSwitchStatement.cs (1)
51SyntaxNode? section = d.Syntax.Parent;
Operations\CSharpOperationFactory.cs (3)
2190Debug.Assert(node.Parent != null); 2191varStatement = node.Parent; 2193varDeclaration = 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\roslyn\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)
203nodeToBind.Kind() == SyntaxKind.ArgumentList && (nodeToBind.Parent is ConstructorInitializerSyntax || nodeToBind.Parent is PrimaryConstructorBaseTypeSyntax) || 818nodeToBind.Kind() == SyntaxKind.ArgumentList && (nodeToBind.Parent is ConstructorInitializerSyntax || nodeToBind.Parent is PrimaryConstructorBaseTypeSyntax) || 846switch (_nodeToBind.Parent) 855throw ExceptionUtilities.UnexpectedValue(_nodeToBind.Parent);
Symbols\Source\SourceMemberContainerSymbol.cs (1)
6105var parentSyntax = member.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 (22)
218if (IsAccessorListWithoutAccessorsWithBlockBody(currentToken.Parent?.Parent)) 267if (currentToken.Parent is AttributeListSyntax && currentToken.Parent.Parent is not ParameterSyntax) 317return (nextToken.Parent is AttributeListSyntax && !(nextToken.Parent.Parent is ParameterSyntax)) ? 1 : 0; 386currentTokenParent?.Parent is AnonymousFunctionExpressionSyntax || 399if (currentTokenParent?.Parent is PropertyDeclarationSyntax property && IsSingleLineProperty(property) && 450IsAccessorListWithoutAccessorsWithBlockBody(currentToken.Parent.Parent)) 638IsAccessorListWithoutAccessorsWithBlockBody(next.Parent.Parent)) 675token.Parent.Parent?.Parent is not UsingDirectiveSyntax) 702if (token.Parent.Parent?.Kind() is not SyntaxKind.TypeArgumentList and not SyntaxKind.UsingDirective) 900if (next is { RawKind: (int)SyntaxKind.OpenParenToken, Parent.Parent: ParenthesizedLambdaExpressionSyntax lambda } && 906if (token.Parent.Parent?.Kind() == SyntaxKind.SuppressNullableWarningExpression) 1341else if (node.Parent != null) 1343if (node.Parent.IsKind(SyntaxKind.CompilationUnit)) 1348int parentDepth = GetDeclarationDepth(node.Parent); 1350if (node.Parent.Kind() is SyntaxKind.GlobalStatement or SyntaxKind.FileScopedNamespaceDeclaration) 1355if (node.IsKind(SyntaxKind.IfStatement) && node.Parent.IsKind(SyntaxKind.ElseClause)) 1360if (node.Parent is BlockSyntax) 1365if (node is { Parent: InitializerExpressionSyntax or AnonymousObjectMemberDeclaratorSyntax } || 1368if (!IsSingleLineInitializerContext(node.Parent)) 1430var currentParent = node.Parent; 1447currentParent = currentParent.Parent;
Microsoft.CodeAnalysis.CSharp.CodeStyle (452)
src\roslyn\src\Analyzers\CSharp\Analyzers\AddAccessibilityModifiers\CSharpAddAccessibilityModifiers.cs (1)
58if (member.Parent is InterfaceDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (4)
72=> binaryLike.Parent switch 75ConstantPatternSyntax { Parent: ExpressionSyntax expression } => expression, 76ConstantPatternSyntax { Parent: UnaryPatternSyntax { Parent: ExpressionSyntax expression } } => expression,
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredPatternParenthesesDiagnosticAnalyzer.cs (1)
38=> binaryLike.Parent as PatternSyntax;
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
61methodDeclaration.Parent is not TypeDeclarationSyntax containingTypeDeclaration ||
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionDiagnosticAnalyzer.Analyzer.cs (2)
65if (declaration.Parent == node.Parent && declarator.Initializer is null)
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertTypeofToNameof\CSharpConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
34return node is TypeOfExpressionSyntax { Parent: MemberAccessExpressionSyntax }
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (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\roslyn\src\Analyzers\CSharp\Analyzers\NamingStyle\CSharpNamingStyleDiagnosticAnalyzer.cs (2)
33Parent: ParameterListSyntax 35Parent: RecordDeclarationSyntax
src\roslyn\src\Analyzers\CSharp\Analyzers\NewLines\ArrowExpressionClausePlacement\ArrowExpressionClausePlacementDiagnosticAnalyzer.cs (1)
73if (arrowExpressionClause.Parent is AccessorDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\NewLines\EmbeddedStatementPlacement\EmbeddedStatementPlacementDiagnosticAnalyzer.cs (2)
92var parent = statement.Parent; 115var blockParent = parent.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\QualifyMemberAccess\CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (2)
44if (node.Parent is AssignmentExpressionSyntax { Parent: InitializerExpressionSyntax(SyntaxKind.ObjectInitializerExpression), Left: var left } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (3)
54if (discard.Parent is DeclarationPatternSyntax declarationPattern) 58if (declarationPattern.Parent is not IsPatternExpressionSyntax) 80else if (discard.Parent is RecursivePatternSyntax recursivePattern)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (2)
261node1 = node1.Parent; 262node2 = node2.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\NullableImpactingSpanWalker.cs (4)
66if (node?.Parent is QualifiedNameSyntax qualifiedName 85if (node?.Parent is BaseNamespaceDeclarationSyntax) 91if (node.IsParentKind(SyntaxKind.NameEquals) && node.Parent.IsParentKind(SyntaxKind.UsingDirective)) 109while (node.Parent is QualifiedNameSyntax qualifiedName
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (2)
57switch (parenthesizedExpression.Parent) 82case ConstantPatternSyntax { Parent: IsPatternExpressionSyntax isPatternExpression }:
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (2)
53if (parenthesizedPattern.Parent is not PatternSyntax) 62if (parenthesizedPattern.Parent is not BinaryPatternSyntax parentPattern)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnreachableCode\RemoveUnreachableCodeHelpers.cs (2)
16switch (firstUnreachableStatement.Parent) 27if (globalStatement.Parent is not CompilationUnitSyntax compilationUnit)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (2)
54=> variableDeclarator.Parent is VariableDeclarationSyntax 56Parent: FieldDeclarationSyntax { Declaration.Variables.Count: 0 } or
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (2)
69var statementAncestor = unusedSymbolWriteOperation.Syntax.FirstAncestorOrSelf<StatementSyntax>()?.Parent; 103if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationHelpers.cs (1)
23ConditionalExpressionSyntax { Parent: ParenthesizedExpressionSyntax parent } => parent,
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorDiagnosticAnalyzer.cs (2)
85if (accessorDeclaration is { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax containingPropertyDeclaration } containingAccessorList } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
25Parent: PropertyPatternClauseSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForArrayDiagnosticAnalyzer.cs (4)
150var isConcreteOrImplicitArrayCreation = initializer.Parent is ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax; 153if (!isConcreteOrImplicitArrayCreation && initializer.Parent is not EqualsValueClauseSyntax) 175var matches = initializer.Parent switch 189Debug.Assert(initializer.Parent is EqualsValueClauseSyntax);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (6)
136if (invocationExpression.Parent is not EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax localDeclarationStatement } } declarator }) 216identifierName.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 218memberAccess.Parent is InvocationExpressionSyntax { ArgumentList.Arguments.Count: 0 } invocationExpression &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (1)
41: memberAccess.Parent is InvocationExpressionSyntax invocation && IsCollectionEmptyAccess(semanticModel, invocation, cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs (3)
79if (memberAccess.Parent is not InvocationExpressionSyntax invocation) 87if (invocation.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax parentInvocation } parentMemberAccess &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (17)
104if (topMostExpression.Parent is CastExpressionSyntax { Type: IdentifierNameSyntax }) 408if (locallyScopedExpression.Parent is ExpressionStatementSyntax) 413if (locallyScopedExpression.Parent is ReturnStatementSyntax or ArrowExpressionClauseSyntax) 416if (locallyScopedExpression.Parent is ArgumentSyntax argument) 426if (locallyScopedExpression.Parent is MemberAccessExpressionSyntax memberAccess && 429if (memberAccess.Parent is InvocationExpressionSyntax invocationExpression) 451if (locallyScopedExpression.Parent is ElementAccessExpressionSyntax elementAccess) 465if (locallyScopedExpression.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax declarator }) 474if (locallyScopedExpression.Parent is AssignmentExpressionSyntax assignment && 554if (argument.Parent is not BaseArgumentListSyntax { Parent: ExpressionSyntax parentInvocation } argumentList) 672Contract.ThrowIfFalse(originalInitializer.Parent 796if (expression.WalkUpParentheses().Parent is not EqualsValueClauseSyntax 798Parent: VariableDeclaratorSyntax 801Parent.Parent: LocalDeclarationStatementSyntax localDeclarationStatement
src\roslyn\src\Analyzers\CSharp\Analyzers\UseConditionalExpression\CSharpUseConditionalExpressionForReturnDiagnosticAnalyzer.cs (1)
39if (block.Syntax.Parent is UnsafeStatementSyntax or CheckedStatementSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (3)
103if (variableDeclaration is not { Parent: LocalDeclarationStatementSyntax localDeclaration, Variables: [{ Initializer.Value: { } initializerValue } declarator] }) 110var searchScope = localDeclaration.Parent is GlobalStatementSyntax globalStatement 256if (identifierName.Parent is not MemberAccessExpressionSyntax memberAccess)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseImplicitObjectCreation\CSharpUseImplicitObjectCreationDiagnosticAnalyzer.cs (16)
87if (objectCreation.Parent is EqualsValueClauseSyntax 89Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: false } variableDeclaration } 102else if (objectCreation.Parent.IsKind(SyntaxKind.ArrowExpressionClause)) 104(typeNode, isAsync) = objectCreation.Parent.Parent switch 111AccessorDeclarationSyntax(SyntaxKind.GetAccessorDeclaration) { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax baseProperty } } => (baseProperty.Type, false), 115else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ObjectCreationExpressionSyntax { Type: var collectionType } }) 124else if (objectCreation.Parent is InitializerExpressionSyntax(kind: SyntaxKind.ArrayInitializerExpression) 126Parent: EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax arrayVariableDeclaration } } 131else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ArrayCreationExpressionSyntax { Type: var arrayCreationType } })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseInferredMemberName\CSharpUseInferredMemberNameDiagnosticAnalyzer.cs (2)
34if (nameColon.Parent is not ArgumentSyntax argument) 63if (nameEquals.Parent is not AnonymousObjectMemberDeclaratorSyntax anonCtor)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (16)
94if (localDeclaration.Parent is BlockSyntax block) 96else if (localDeclaration.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit }) 221Parent: EqualsValueClauseSyntax 223Parent: VariableDeclaratorSyntax 225Parent: VariableDeclarationSyntax 227Parent: LocalDeclarationStatementSyntax declaration, 272if (nodeToCheck.Parent is BinaryExpressionSyntax) 279if (nodeToCheck.Parent is InvocationExpressionSyntax invocationExpression) 283else if (nodeToCheck.Parent is MemberAccessExpressionSyntax memberAccessExpression) 285if (memberAccessExpression is { Parent: InvocationExpressionSyntax explicitInvocationExpression, Name.Identifier.ValueText: WellKnownMemberNames.DelegateInvokeName }) 357if (anonymousFunction?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) { Parent: ExpressionStatementSyntax expressionStatement } assignment) 363if (expressionStatement.Parent is BlockSyntax block) 369else if (expressionStatement.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit } globalStatement)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNameofInNullableAttribute\CSharpUseNameofInNullableAttributeDiagnosticAnalyzer.cs (4)
113var attributeList = attribute.Parent as AttributeListSyntax; 114var container = attributeList?.Parent; 118var parameterList = container.Parent as BaseParameterListSyntax; 119container = parameterList?.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
125return node.WalkUpParentheses().Parent switch
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (1)
328if (statement.Parent is BlockSyntax block)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (5)
104if (declarator is not { Parent.Parent: LocalDeclarationStatementSyntax localStatement }) 112var enclosingBlock = localStatement.Parent; 241if (identifierName.Parent is AssignmentExpressionSyntax assignmentExpression && 248else if (identifierName.Parent is ArgumentSyntax argument &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (3)
95var ifStatementScope = ifStatement.Parent.IsKind(SyntaxKind.Block) 96? ifStatement.Parent 173if (!isExpression.Parent.IsKind(SyntaxKind.IfStatement, out ifStatement))
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (5)
29if (asExpression.Parent is not ParenthesizedExpressionSyntax 32Parent: ConditionalAccessExpressionSyntax parentConditionalAccess 54if (conditionalAccessExpression.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) parentBinaryExpression1 && 63else if (conditionalAccessExpression.Parent is 81else if (conditionalAccessExpression.Parent is IsPatternExpressionSyntax parentIsPatternExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (3)
125else if (nodeToRemove is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax field } }) 315if (primaryConstructorDeclaration.Parent is not TypeDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (2)
116if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (2)
104else if (elements is [{ Syntax.Parent: ArgumentSyntax }, ..]) 109else if (elements is [{ Syntax.Parent: (kind: SyntaxKind.CollectionInitializerExpression) }, ..])
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ArgumentSyntaxExtensions.cs (3)
45if (argument.Parent is not BaseArgumentListSyntax argumentList || 46argumentList.Parent is null) 52var symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DefaultExpressionSyntaxExtensions.cs (4)
40if (defaultExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 70equalsValueClause.Parent?.Parent is VariableDeclarationSyntax declaration) 74else if (equalsValueClause?.Parent is ParameterSyntax parameter)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (55)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression is { Parent: NameMemberCrefSyntax { Parent: QualifiedCrefSyntax } }; 48=> expression?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == expression; 55return expression == (expression.Parent as MemberAccessExpressionSyntax)?.Name || 60=> expression?.Parent is MemberBindingExpressionSyntax memberBinding && 64=> expression?.Parent is QualifiedNameSyntax qualifiedName && qualifiedName.Right == expression; 67=> expression?.Parent is AliasQualifiedNameSyntax aliasName && aliasName.Name == expression; 98=> (expression?.Parent) is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 103(expression.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Expression == expression); 106=> (expression?.Parent) is QualifiedNameSyntax qualifiedName && qualifiedName.Left == expression; 112=> expression?.Parent is InvocationExpressionSyntax invocation && 197=> expression?.Parent is ArgumentSyntax { RefOrOutKeyword: SyntaxToken(SyntaxKind.OutKeyword) } argument && 209while (expression?.Parent is ParenthesizedExpressionSyntax or PostfixUnaryExpressionSyntax(SyntaxKind.SuppressNullableWarningExpression)) 210expression = (ExpressionSyntax)expression.Parent; 212if (expression?.Parent is RefExpressionSyntax or 215refParent = expression.Parent; 224=> expression?.Parent is ArgumentSyntax { RefKindKeyword: SyntaxToken(SyntaxKind.InKeyword) }; 248if (expression.Parent != null) 282var parent = expr.Parent; 291if (parent.Parent?.Kind() == SyntaxKind.TupleExpression) 293expr = (TupleExpressionSyntax)parent.Parent; 337if (refParent.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type: { } variableDeclarationType } } }) 355if (expression.Parent.IsKind(SyntaxKind.AddressOfExpression)) 366if (expression.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccess && 384if (expression.Parent is ArgumentSyntax) 399var nameEquals = expression?.Parent as NameEqualsSyntax; 405if (expression?.Parent is SyntaxNode parent) 421=> expression is IdentifierNameSyntax { Parent: NameColonSyntax }; 517return expression is { Parent.RawKind: not (int)SyntaxKind.ConditionalAccessExpression }; 520if (expression.Parent == null) 523switch (expression.Parent.Kind()) 553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 555!parentConditionalAccessExpression.Parent.IsKind(SyntaxKind.ConditionalAccessExpression); 560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 596if (expression.Parent is PrefixUnaryExpressionSyntax) 606while (topExpression.Parent is TypeSyntax typeSyntax) 620if (expression.Parent is PostfixUnaryExpressionSyntax or 639if ((expression.IsParentKind(SyntaxKind.NameEquals) && expression.Parent.IsParentKind(SyntaxKind.AttributeArgument)) || 649=> expression is { Parent: ArgumentSyntax { Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocation } } } && 901=> expression?.Parent is MemberAccessExpressionSyntax; 912var parent = topExpression.Parent; 944if (argument.Parent is TupleExpressionSyntax tupleExpression) 973for (SyntaxNode? current = returnStatement; current != null; current = current.Parent) 988if (equalsValue.Parent is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: true } }) 1058if (initializerExpression.Parent is ArrayCreationExpressionSyntax arrayCreation) 1062if (initializerExpression.Parent is ImplicitArrayCreationExpressionSyntax) 1074if (initializerExpression.Parent is EqualsValueClauseSyntax equalsValue) 1078if (initializerExpression.Parent is StackAllocArrayCreationExpressionSyntax or ImplicitStackAllocArrayCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
27var nodeParent = node.Parent; 39? nodeParent.Parent as ExpressionSyntax 70if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 368if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 548if (node?.Parent is CastExpressionSyntax castExpression) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 608(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 660if (node.Parent is ArgumentSyntax argument) 662if (argument.Parent is ArgumentListSyntax argumentList) 671else if (node.Parent is InitializerExpressionSyntax initializer) 695if (node.Parent is ArgumentSyntax argument) 697if (argument.Parent is ArgumentListSyntax argumentList) 706else if (node.Parent is InitializerExpressionSyntax initializer) 744if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 759if (node.Parent is ParenthesizedPatternSyntax) 763if (node.Parent is IsPatternExpressionSyntax) 767if (node.Parent is SwitchExpressionArmSyntax) 771if (node.Parent is SubpatternSyntax) 775if (node.Parent is CasePatternSwitchLabelSyntax) 781return node.Parent is PatternSyntax patternParent &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList } baseType && 215else if (baseList.Types[0] == type.Parent) 224if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 233type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 234type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 235type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 251if (type.Parent.Kind() 260type.Parent, cancellationToken).DeclaredAccessibility; 273if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 275if (type.Parent.Parent.Parent?.Kind() 282type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 285if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 287var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 380if (current.Parent is ForEachStatementSyntax foreachStatement && 387if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 432if (topExpression?.Parent is ArgumentSyntax argument) 439if (argument.Parent is BaseArgumentListSyntax argumentList) 442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (6)
19return ((MemberAccessExpressionSyntax)name.Parent).Expression; 27return ((QualifiedNameSyntax)name.Parent).Left; 31return ((QualifiedCrefSyntax)name.Parent.Parent).Container; 52if (simpleName?.Parent is InvocationExpressionSyntax invocation && 59if (simpleName?.Parent is ElementAccessExpressionSyntax elementAccess &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\StatementSyntaxExtensions.cs (4)
40if (first.Parent.IsKind(SyntaxKind.GlobalStatement)) 41return second.Parent.IsKind(SyntaxKind.GlobalStatement); 43return first.Parent == second.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (23)
45=> CodeAnalysis.CSharpExtensions.IsKind(node?.Parent, kind); 52result = (TNode)node.Parent!; 186if ((current?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == current) || 187(current?.Parent is MemberBindingExpressionSyntax memberBinding && memberBinding.Name == current)) 189current = current.Parent; 203current.Parent is not ConditionalAccessExpressionSyntax) 205current = current.Parent; 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 288=> node?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment && 292=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Left == node; 295=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Right == node; 299return node?.Parent != null && 300node.Parent.IsCompoundAssignExpression() && 301((AssignmentExpressionSyntax)node.Parent).Left == node; 337for (var current = node; current != null; current = current.Parent) 360return !current.Parent.IsKind(SyntaxKind.CompilationUnit); 676=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 692current = current.Parent; 794for (var current = node; current != null; current = current.Parent) 842for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
110if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 113return token.Parent.Parent.GetFirstToken() != token; 126=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 135return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 204&& statementOrElse.Parent != null 205&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 282token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 382token.Parent?.Parent is QueryExpressionSyntax queryExpression && 390var parent = initializer.Parent; 414return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 426var parent = initializer.Parent; 446var parent = anonymousObjectInitializer.Parent; 482return token.Parent.Parent is LabeledStatementSyntax; 527return currentToken.Kind() == SyntaxKind.OpenParenToken && currentToken is { Parent: ParenthesizedVariableDesignationSyntax, Parent.Parent: DeclarationExpressionSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
36if (block.Parent is null or BlockSyntax) 44block.Parent.GetFirstToken(includeZeroWidth: true),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
167RoslynDebug.AssertNotNull(node.Parent); 170firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (10)
63if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 103RoslynDebug.AssertNotNull(node.Parent); 104var switchStatement = (SwitchStatementSyntax)node.Parent; 183if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 228if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 262if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression) 378for (var current = node; current != null; current = current.Parent) 380if (current.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == current)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (7)
49var parentKind = node.Parent?.Kind(); 85&& previousToken.Parent!.Parent == currentToken.Parent.Parent) 165var currentTokenParentParent = currentToken.Parent.Parent; 280|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 369var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 378if (initializer?.Parent != null) 380AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
205var attributeOwner = previousToken.Parent?.Parent; 231RoslynDebug.AssertNotNull(currentUsing.Parent); 233if (AreUsingsProperlyGrouped(GetUsings(currentUsing.Parent)))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (6)
351case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }: 410SimpleNameSyntax { Parent: InvocationExpressionSyntax invocation } => invocation.ArgumentList, 412SimpleNameSyntax { Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberAccess } when memberAccess.Name == node => invocation.ArgumentList, 414SimpleNameSyntax { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberBinding } when memberBinding.Name == node => invocation.ArgumentList,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (29)
173=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 204=> node?.Parent is UsingDirectiveSyntax usingDirective && 254return node.Parent is BaseMethodDeclarationSyntax or 528if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 637node.Parent.IsParentKind(SyntaxKind.Subpattern); 649if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 651var withInitializer = identifier.Parent.GetRequiredParent(); 655else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 657var objectInitializer = identifier.Parent.GetRequiredParent(); 658if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 660initializedInstance = objectInitializer.Parent; 663else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 675=> expression is IdentifierNameSyntax { Parent: NameEqualsSyntax { Parent: AnonymousObjectMemberDeclaratorSyntax } nameEquals } identifier && 682Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 685creationExpression = node.Parent; 731node = node.Parent; 772var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 776parent = parent.Parent; 785parent = parent.Parent; 955var parent = node.Parent; 1091=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1094=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1155node.Parent is AttributeListSyntax attributeList && 1184return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1309=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1315=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\CSharpInferredMemberNameSimplifier.cs (3)
14if (node.NameColon == null || !node.Parent.IsKind(SyntaxKind.TupleExpression)) 24if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node)) 45if (RemovalCausesAmbiguity(((AnonymousObjectCreationExpressionSyntax)node.Parent!).Initializers, node))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (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 && 741if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 863static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 888static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1062if (expression.WalkUpParentheses().Parent 1180if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1250if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1257else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1263else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1265equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1289for (SyntaxNode? current = expression; current != null; current = current.Parent) 1304for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1306currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1360for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1362currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1389for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1391currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1665if (castNode.WalkUpParentheses().Parent is InterpolationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
167var containerOfList = parent.Parent; 183var parentOfParent = parent.Parent; 317RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 318var labelNode = previousToken.Parent.Parent; 361RoslynDebug.AssertNotNull(node.Parent); 363node = node.Parent; 370node = node.Parent; 380node = node.Parent; 422return token.Parent.Parent as MemberDeclarationSyntax;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
297Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 298Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode); 441var oldSwitchStatement = (SwitchStatementSyntax)originalCaseSwitchLabel.Parent.Parent; 442var newSwitchStatement = (SwitchStatementSyntax)newCaseSwitchLabel.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
83var isSupportedParentKind = variableDeclaration.Parent is (kind: 99switch (declaration.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
65if (typeName.Parent is DeclarationExpressionSyntax declExpression && 78if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 91if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 106else if (typeName.Parent is DeclarationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
104if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 107if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 139else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 201if (declarationExpression.Parent is not ArgumentSyntax 203Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 277if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (316)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\ArgumentFixer.cs (1)
31var newInvocation = newArgumentList.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\AttributeArgumentFixer.cs (1)
31var newAttribute = (AttributeSyntax)newArgumentList.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\CSharpAddExplicitCastCodeFixProvider.cs (4)
71&& targetArgument.Parent is ArgumentListSyntax argumentList 72&& argumentList.Parent is SyntaxNode invocationNode) 79&& targetAttributeArgument.Parent is AttributeArgumentListSyntax attributeArgumentList 80&& attributeArgumentList.Parent is AttributeSyntax attributeNode)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddInheritdoc\AddInheritdocCodeFixProvider.cs (4)
49if (node.IsKind(SyntaxKind.VariableDeclarator) && node is not { Parent.Parent: EventFieldDeclarationSyntax }) 76if (node is VariableDeclaratorSyntax { Parent.Parent: EventFieldDeclarationSyntax eventField })
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AbstractAssignOutParametersCodeFixProvider.cs (5)
67return location.Parent is BlockSyntax 68|| location.Parent is SwitchSectionSyntax 69|| location.Parent.IsEmbeddedStatementOwner(); 74return location.Parent is ArrowExpressionClauseSyntax or LambdaExpressionSyntax; 82for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AssignOutParametersAtStartCodeFixProvider.cs (2)
40statement.Parent is BlockSyntax block && 42block.Parent == container)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertNamespace\ConvertNamespaceTransform.cs (1)
138if (stringLiteral.GetRequiredParent() is not InterpolatedStringTextSyntax { Parent: InterpolatedStringExpressionSyntax { StringStartToken: (kind: SyntaxKind.InterpolatedMultiLineRawStringStartToken) } interpolatedString })
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.cs (2)
88if (declaratorToRemoveNode.Parent is VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax declStatement, Variables.Count: 1 })
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordEngine.cs (4)
184(expression.Parent as AssignmentExpressionSyntax)?.Parent as ExpressionStatementSyntax) 502.Select(referenceLocations => referenceLocations.Location.FindNode(cancellationToken).Parent) 521expression => objectCreationExpression.Initializer!.Expressions.IndexOf(expression.Parent));
src\roslyn\src\Analyzers\CSharp\CodeFixes\FixIncorrectConstraint\CSharpFixIncorrectConstraintCodeFixProvider.cs (1)
41if (constraint.Parent is not TypeParameterConstraintClauseSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (2)
91if (fullName.Parent is ObjectCreationExpressionSyntax objectCreationExpression) 123if (fullName.Parent is AttributeSyntax attribute)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateDefaultConstructors\CSharpGenerateDefaultConstructorsService.cs (3)
44if (node is { Parent: BaseTypeSyntax { Parent: BaseListSyntax { Types: [var firstType, ..] } baseList } }) 46if (baseList.Parent is TypeDeclarationSyntax(SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration) parentTypeDecl &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateEnumMember\CSharpGenerateEnumMemberService.cs (1)
34simpleNameOrMemberAccessExpression = identifierName.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == identifierName
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (1)
30node.Parent is AssignmentExpressionSyntax or EqualsValueClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (4)
90simpleName is { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax { Parent: ConditionalAccessExpressionSyntax conditionalAccessExpression1 } invocation1 } memberBinding } && 112isInConditionalAccessExpression = invocationExpressionOpt.Parent is ConditionalAccessExpressionSyntax { WhenNotNull: var whenNotNull } &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\ImplementInterface\CSharpImplementInterfaceService.cs (4)
37=> type?.Parent is BaseTypeSyntax { Parent: BaseListSyntax } baseTypeParent && baseTypeParent.Type == type; 56if (node is TypeSyntax interfaceNode && interfaceNode.Parent is BaseTypeSyntax baseType && 57baseType.Parent is BaseListSyntax baseList &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (5)
55declarationsToRemove.Add((LocalDeclarationStatementSyntax)diagnostic.AdditionalLocations[0].FindNode(cancellationToken).Parent.Parent); 108var declaration = (VariableDeclarationSyntax)declarator.Parent; 117var localDeclarationStatement = (LocalDeclarationStatementSyntax)declaration.Parent; 175editor.RemoveNode(localDeclarationStatement.Parent is GlobalStatementSyntax globalStatement
src\roslyn\src\Analyzers\CSharp\CodeFixes\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessCodeFixProvider.cs (1)
96if (ifStatement.Parent.IsKind(SyntaxKind.ElseClause) &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (4)
88if (node.Parent?.Parent is PropertyDeclarationSyntax oldAccessor) 93if (node.Parent?.Parent is IndexerDeclarationSyntax oldIndexer)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\MakeLocalFunctionStaticCodeFixHelper.cs (1)
72if (identifierNode.Parent is InvocationExpressionSyntax invocation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (4)
49if (node is not (PropertyDeclarationSyntax or VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax })) 131if (memberDeclarator is VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax fieldDeclaration })
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberStatic\CSharpMakeMemberStaticCodeFixProvider.cs (4)
31if (node.IsKind(SyntaxKind.VariableDeclarator) && node.Parent is VariableDeclarationSyntax { Parent: FieldDeclarationSyntax or EventFieldDeclarationSyntax }) 33memberDeclaration = node.Parent.Parent;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStatementAsynchronous\CSharpMakeStatementAsynchronousCodeFixProvider.cs (2)
96if (node.Parent is (kind: 101return node.Parent;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyCodeFixProvider.cs (2)
52else if (declaration is AccessorDeclarationSyntax { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax property } accessorList } accessor)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Nullable\CSharpDeclareAsNullableCodeFixProvider.cs (20)
59if (node.Parent is ArgumentSyntax) 63if (node.Parent is AssignmentExpressionSyntax) 116if (node.Parent is (kind: SyntaxKind.ReturnStatement or SyntaxKind.YieldReturnStatement)) 161if (node.Parent?.Parent?.Parent is VariableDeclarationSyntax variableDeclaration) 170if (node.Parent is AssignmentExpressionSyntax assignment) 176if (syntax is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Variables.Count: 1 } declaration }) 187if (syntax is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Variables.Count: 1 } declaration }) 212if (node.Parent is ArgumentSyntax argument && argument.Parent?.Parent is InvocationExpressionSyntax invocation) 239if (node.Parent?.Parent is PropertyDeclarationSyntax propertyDeclaration) 249if (node is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 } declarationSyntax }) 253if (node.Parent?.Parent is ParameterSyntax optionalParameter) 261node.Parent?.Parent is MethodDeclarationSyntax arrowMethod)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationCodeFixProvider.cs (2)
42switch (discard.Parent) 45if (declarationPattern.Parent is IsPatternExpressionSyntax isPattern)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnreachableCode\CSharpRemoveUnreachableCodeCodeFixProvider.cs (1)
80if (statement.Parent?.Kind()
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedLocalFunction\CSharpRemoveUnusedLocalFunctionCodeFixProvider.cs (1)
51editor.RemoveNode(localFunction.Parent is GlobalStatementSyntax globalStatement ? globalStatement : localFunction);
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (4)
42=> declarator.Parent?.Parent as LocalDeclarationStatementSyntax; 56variableDeclarator.Parent is VariableDeclarationSyntax parent) 212if (originalCompoundAssignment.Parent.IsKind(SyntaxKind.ExpressionStatement))
src\roslyn\src\Analyzers\CSharp\CodeFixes\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorCodeFixProvider.cs (2)
51if (accessor.Parent?.Parent is PropertyDeclarationSyntax containingProperty &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseAutoProperty\UseAutoPropertyRewriter.cs (2)
45if (node.Parent is AssignmentExpressionSyntax 47Parent: InitializerExpressionSyntax { RawKind: (int)SyntaxKind.ObjectInitializerExpression }
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (3)
612Contract.ThrowIfNull(node.Parent); 656for (var current = node; current != null; current = current.Parent) 879Contract.ThrowIfNull(expression.Parent);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider_CollectionInitializer.cs (1)
98Contract.ThrowIfNull(expression.Parent);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundAssignmentCodeFixProvider.cs (1)
52if (currentAssignment.Parent is ForStatementSyntax forStatement &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
47if (ifStatement.Parent is ElseClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForReturnCodeFixProvider.cs (1)
34if (ifStatement.Parent is ElseClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExpressionBody\UseExpressionBodyCodeFixProvider.cs (1)
89if (declaration.Parent is AccessorListSyntax accessorList)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (4)
65var declarationContext = node.Parent; 69declarationContext = declarationContext.Parent; 99RoslynDebug.AssertNotNull(typeSyntax.Parent); 101var tupleTypeSymbol = GetConvertedType(semanticModel, typeSyntax.Parent, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (1)
233while (expr?.Parent is CheckedExpressionSyntax parent)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (1)
171editor.RemoveNode(anonymousFunctionStatement.Parent is GlobalStatementSyntax globalStatement
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
47var elseClauseSyntax = (ElseClauseSyntax)ifStatement.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (4)
74if (statement.Parent is BlockSyntax or SwitchSectionSyntax) 76statementParentScopes.Add(statement.Parent); 109if (declarator.Parent is VariableDeclarationSyntax declaration && 110declaration.Parent is LocalDeclarationStatementSyntax localDeclaration &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (2)
283if (nameSyntax.Parent is QualifiedNameSyntax qualifiedNameSyntax) 292else if (nameSyntax.Parent is MemberAccessExpressionSyntax memberAccessExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSimpleUsingStatement\UseSimpleUsingStatementCodeFixProvider.cs (2)
48var blockLikes = topmostUsingStatements.Select(u => u.Parent is GlobalStatementSyntax ? u.Parent.GetRequiredParent() : u.GetRequiredParent()).ToSet();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (4)
88if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } variableDeclaration) 139if (expression.Parent is MemberAccessExpressionSyntax memberAccess && 145if (expression.Parent is not AssignmentExpressionSyntax assignment ||
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseThrowExpression\UseThrowExpressionCodeFixProvider.cs (1)
62if (throwStatementExpression.Parent is ThrowStatementSyntax throwStatement &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpDeclarationComparer.cs (5)
345for (var node = parent; node != null; node = node.Parent) 388var xAccessibility = GetAccessibilityPrecedence(xModifiers, x.Parent ?? y.Parent); 389var yAccessibility = GetAccessibilityPrecedence(yModifiers, y.Parent ?? x.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (7)
215targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 378token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 394token.Parent.Parent is StatementSyntax) 491FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause, 548return attributeList?.Parent switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (20)
126if (token.Parent.Parent is StatementSyntax) 135if (token.Parent.Parent.Kind() is not SyntaxKind.TryStatement and not SyntaxKind.DoStatement) 138else if (token.Parent.Parent?.Kind() 180var container = token.Parent.Parent; 261var container = token.Parent.Parent; 262if (container is IncompleteMemberSyntax && container.Parent is CompilationUnitSyntax) 451targetToken.Parent.Parent.IsKind(SyntaxKind.Argument) && 452targetToken.Parent.Parent.Parent.IsKind(SyntaxKind.ArgumentList)) 454var owner = targetToken.Parent.Parent.Parent.Parent; 469if (targetToken.Parent?.Parent?.Kind() 590targetToken.Parent.Parent is AccessorDeclarationSyntax) 605targetToken.Parent.Parent is AccessorDeclarationSyntax) 617if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 619else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 650targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 651IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (76)
100parent = attributeList.Parent; 180token.Parent.Parent is BaseTypeDeclarationSyntax) 197token.Parent.Parent is BaseTypeDeclarationSyntax) 209token.Parent.Parent is MemberDeclarationSyntax) 229var container = token.Parent.Parent?.Parent; 313member.Parent is BaseTypeDeclarationSyntax; 493token.Parent.Parent is MemberDeclarationSyntax) 520var container = token.Parent?.Parent?.Parent; 597var container = token.Parent?.Parent; 786token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 841token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 957{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1016name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1018conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1106token.Parent.Parent is ParameterSyntax parameter3 && 1107parameter3.Parent is ParameterListSyntax parameterList3 && 1122parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1126if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1136=> parameterList.Parent switch 1275parent = token.Parent.Parent; 1277else if (token.IsKind(SyntaxKind.IdentifierToken) && token is { Text: "scoped", Parent: IdentifierNameSyntax scopedIdentifierName } && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1279parent = scopedIdentifierName.Parent.Parent; 1358leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1360var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1442leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1528while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1533if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1564if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1592possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1660if (outer.Parent is ForEachStatementSyntax @foreach) 1681if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1683node = node.Parent; 1687if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1689node = node.Parent.Parent; 1701leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1809parent.Parent?.Parent is (kind: 1817if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1873if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2086equalsValue.Parent.IsParentKind(SyntaxKind.VariableDeclaration)) 2356type.Parent?.Parent is LocalDeclarationStatementSyntax declStatement) 2509token.Parent?.Parent is ObjectCreationExpressionSyntax objectCreation) 2746=> token.Parent?.Parent is InvocationExpressionSyntax invocation && 2763while (parentMemberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 2765parentMemberAccess = parentMemberAccess.Parent; 2768if (parentMemberAccess.Parent.IsKind(SyntaxKind.Argument) && 2769parentMemberAccess.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2771token = ((ArgumentListSyntax)parentMemberAccess.Parent.Parent!).OpenParenToken; 2779while (parentQualifiedName.Parent.IsKind(SyntaxKind.QualifiedName)) 2781parentQualifiedName = parentQualifiedName.Parent; 2784if (parentQualifiedName.Parent.IsKind(SyntaxKind.Argument) && 2785parentQualifiedName.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2787token = ((ArgumentListSyntax)parentQualifiedName.Parent.Parent!).OpenParenToken; 2796token.Parent.Parent is InvocationExpressionSyntax invocationExpression && 2865nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2876token.Parent.Parent is (kind: SyntaxKind.ObjectInitializerExpression or SyntaxKind.CollectionInitializerExpression)) 2885if (token.Parent.Parent is ArgumentSyntax { RefOrOutKeyword.RawKind: (int)SyntaxKind.OutKeyword }) 2921if (name.Parent != null) 2923switch (name.Parent.Kind()) 2926return ((QualifiedNameSyntax)name.Parent).Right == name; 2928return ((AliasQualifiedNameSyntax)name.Parent).Name == name; 2930return ((MemberAccessExpressionSyntax)name.Parent).Name == name; 2964block.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.CatchClause) 3008targetToken.Parent is BaseListSyntax { Parent: TypeDeclarationSyntax }; 3041token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression && 3048token.Parent?.Parent is DeclarationPatternSyntax declarationExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (1)
20if (withElement?.Parent is not CollectionExpressionSyntax collectionExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
353var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.cs (3)
132!argument.Parent.IsKind(SyntaxKind.ThisConstructorInitializer) && 193RoslynDebug.AssertNotNull(node.Parent); 196var baseToken = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (9)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 229if (embeddedStatementOwner.Parent is LabeledStatementSyntax) 232embeddedStatementOwner = embeddedStatementOwner.Parent; 254token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 406if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 429RoslynDebug.AssertNotNull(queryBody.Parent); 430return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
46if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 281if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 287if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 293if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 304if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 311if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 322if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 327if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 328argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 329argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 330argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 381if (argument.Parent != null) 383if (argument.Parent.Parent is AttributeSyntax attribute) 521switch (argumentList.Parent) 551if (attributeArgumentList.Parent is AttributeSyntax attribute) 747var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 900if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1218if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1221if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1225SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1243if (expressionElement.Parent is CollectionExpressionSyntax collectionExpression) 1434if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1462else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1472else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1482else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1506var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1575if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1713if (memberDeclarator is { NameEquals: not null, Parent: AnonymousObjectCreationExpressionSyntax anonymousObject }) 1738return nameColon.Parent switch 1754return expressionColon.Parent switch 1806memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1807memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1929if (nameColon.Parent is SubpatternSyntax subpattern) 1939if (expressionColon.Parent is SubpatternSyntax subpattern) 1956if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2114=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2198var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2264variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2332var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\SemanticModelReuse\CSharpSemanticModelReuseLanguageService.cs (6)
31Contract.ThrowIfFalse(accessor.Parent is AccessorListSyntax); 32Contract.ThrowIfFalse(accessor.Parent.Parent is BasePropertyDeclarationSyntax); 33return (BasePropertyDeclarationSyntax)accessor.Parent.Parent; 41for (SyntaxNode? previous = null, current = node; current != null; previous = current, current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
Microsoft.CodeAnalysis.CSharp.Features (819)
AddImport\CSharpAddImportFeatureService.cs (12)
39=> node.GetAncestor<UsingDirectiveSyntax>()?.Parent is CompilationUnitSyntax; 55if (node.Parent is not MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) simpleMemberAccess || 75else if (node.Parent.IsKind(SyntaxKind.CollectionInitializerExpression)) 94var memberAccessName = (node.Parent as MemberAccessExpressionSyntax)?.Name; 95var conditionalAccessName = (((node.Parent as ConditionalAccessExpressionSyntax)?.WhenNotNull as InvocationExpressionSyntax)?.Expression as MemberBindingExpressionSyntax)?.Name; 126if (nameNode?.Parent?.Kind() is not SyntaxKind.SimpleMemberAccessExpression and not SyntaxKind.MemberBindingExpression) 129var memberAccess = nameNode.Parent as MemberAccessExpressionSyntax; 130var memberBinding = nameNode.Parent as MemberBindingExpressionSyntax; 131if (memberAccess?.Parent?.Kind() is SyntaxKind.SimpleMemberAccessExpression or SyntaxKind.ElementAccessExpression || 132memberBinding?.Parent?.Kind() is SyntaxKind.SimpleMemberAccessExpression or SyntaxKind.ElementAccessExpression) 170node.AncestorsAndSelf().Any(n => n is QueryExpressionSyntax && !(n.Parent is QueryContinuationSyntax)); 623if (node.Parent.IsKind(SyntaxKind.CollectionInitializerExpression))
BraceCompletion\CurlyBraceCompletionService.cs (2)
150var currentTokenParentParent = currentToken.Parent?.Parent; 206var parentKind = node?.Parent?.Kind();
BraceCompletion\ParenthesisBraceCompletionService.cs (2)
52for (var currentNode = token.Parent.Parent; currentNode != null; currentNode = currentNode.Parent)
ChangeSignature\ChangeSignatureFormattingRule.cs (2)
40if (node.Parent != null) 42var baseToken = node.Parent.GetFirstToken();
ChangeSignature\CSharpChangeSignatureService.cs (1)
197for (var current = node; current != null; current = current.Parent)
CodeFixes\Suppression\CSharpSuppressionCodeFixProvider.cs (1)
216return attributeSyntax.Parent is AttributeListSyntax attributeList && attributeList.Attributes.Count == 1;
CodeLens\CSharpCodeLensDisplayInfoService.cs (8)
54node = node.Parent; 59node = node.Parent; 96if (node.Parent.IsKind(SyntaxKind.AccessorList) && 97node.Parent.Parent.IsKind(SyntaxKind.IndexerDeclaration)) 99return GetDisplayName(semanticModel, node.Parent.Parent); 186scopeNode = scopeNode.Parent;
CodeRefactorings\ConvertLocalFunctionToMethod\CSharpConvertLocalFunctionToMethodCodeRefactoringProvider.cs (2)
40if (localFunction?.Parent is not BlockSyntax parentBlock) 164if (simpleName.Parent is InvocationExpressionSyntax invocation)
CodeRefactorings\InlineMethod\CSharpInlineMethodRefactoringProvider.cs (1)
107return syntaxNode.Parent switch
CodeRefactorings\InlineTemporary\InlineTemporaryCodeRefactoringProvider.cs (28)
56if (variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration || 57variableDeclaration.Parent is not LocalDeclarationStatementSyntax localDeclarationStatement) 110if (identifierNode?.Parent is ArgumentSyntax argument) 115else if (identifierNode.Parent.Kind() is 124else if (identifierNode.Parent is AssignmentExpressionSyntax binaryExpression && 225if (identifier.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: null } anonymousMember) 239else if (identifier.Parent is ArgumentSyntax 241Parent: TupleExpressionSyntax tupleExpression, 259else if (identifier.Parent is SpreadElementSyntax spreadElement && 337var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent; 338var localDeclaration = (LocalDeclarationStatementSyntax)variableDeclaration.Parent; 339var scope = localDeclaration.Parent; 342scope = scope.Parent; 345scope = parentExpressions.LastOrDefault()?.Parent ?? scope; 348scope = scope.Parent; 366var localDeclaration = (LocalDeclarationStatementSyntax)variableDeclaration.Parent; 380var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent; 386var localDeclaration = (LocalDeclarationStatementSyntax)variableDeclaration.Parent; 411var newLocalDeclaration = (LocalDeclarationStatementSyntax)FindDeclarator(newScope).Parent.Parent; 415if (newLocalDeclaration?.Parent is LabeledStatementSyntax labeledStatement) 422if (newLocalDeclaration?.Parent is GlobalStatementSyntax globalStatement) 450var isVar = ((VariableDeclarationSyntax)variableDeclarator.Parent).Type.IsVar; 505var parent = node.Parent; 507parent = parent.Parent; 511parent = parent.Parent; 516else if (parent?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 521parent = parent.Parent;
CodeRefactorings\SyncNamespace\CSharpChangeNamespaceService.cs (6)
144RoslynDebug.Assert(nameRef.Parent is object); 145oldNode = nameRef.Parent; 161RoslynDebug.Assert(nameRef.Parent is object); 162oldNode = nameRef.Parent; 175else if (nameRef.Parent is NameMemberCrefSyntax crefName && crefName.Parent is QualifiedCrefSyntax qualifiedCref)
CodeRefactorings\UseExplicitOrImplicitType\AbstractUseTypeCodeRefactoringProvider.cs (6)
95var typeParent = type?.Parent; 99if (type?.Parent is VariableDeclarationSyntax) 100return type.Parent; 106if (type?.Parent is DeclarationExpressionSyntax or VariableDeclarationSyntax) 107return type.Parent; 109if (type?.Parent is ForEachStatementSyntax foreachStatement2 &&
CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (10)
78WhenClauseSyntax { Parent: CasePatternSwitchLabelSyntax switchLabel } whenClause => CombineWhenClauseCondition(switchLabel.Pattern, whenClause.Condition, model), 79WhenClauseSyntax { Parent: SwitchExpressionArmSyntax switchArm } whenClause => CombineWhenClauseCondition(switchArm.Pattern, whenClause.Condition, model), 89WhenClauseSyntax { Parent: CasePatternSwitchLabelSyntax } => true, 90WhenClauseSyntax { Parent: SwitchExpressionArmSyntax } => true, 105if (leftTarget.Parent is IsPatternExpressionSyntax isPatternExpression && 173switch (receiver.GetRequiredParent().Parent) 276ExpressionSyntax constant => originalReceiver.Parent switch 318if (designation is not { Parent: PatternSyntax(not SyntaxKind.ListPattern) containingPattern }) 453var leftIsNullCheck = IsNullCheck(leftTarget.Parent); 454var rightIsNullCheck = IsNullCheck(rightTarget.Parent);
Completion\CompletionProviders\AttributeNamedParameterCompletionProvider.cs (1)
73if (token.Parent!.Parent is not AttributeSyntax attributeSyntax || token.Parent is not AttributeArgumentListSyntax attributeArgumentList)
Completion\CompletionProviders\AwaitCompletionProvider.cs (2)
138if (node?.Parent is AssignmentExpressionSyntax(kind: SyntaxKind.AddAssignmentExpression or SyntaxKind.SubtractAssignmentExpression) assignment) 162if (parent is NameSyntax { Parent: LocalFunctionStatementSyntax localFunction } name &&
Completion\CompletionProviders\CSharpSuggestionModeCompletionProvider.cs (3)
127return token.Parent.Parent is not null and ParenthesizedLambdaExpressionSyntax; 171&& token.Parent.Parent is InvocationExpressionSyntax invocation 216for (var current = patternSyntax; current != null; current = current.Parent as PatternSyntax)
Completion\CompletionProviders\DeclarationName\DeclarationNameInfo.cs (9)
209var argument = token.Parent.Parent as ArgumentSyntax // var is child of ArgumentSyntax, eg. Goo(out var $$ 210?? token.Parent.Parent?.Parent as ArgumentSyntax; // var is child of DeclarationExpression 392v => v.Parent is FieldDeclarationSyntax f ? f.Modifiers : null, 431modifierGetter: v => v.Parent is LocalDeclarationStatementSyntax localDeclaration 470modifierGetter: v => v.Parent is UsingStatementSyntax or ForStatementSyntax 521token.GetAncestor<ParameterSyntax>()?.Parent?.Parent is (kind: SyntaxKind.RecordDeclaration or SyntaxKind.RecordStructDeclaration)) 552parent is TypeArgumentListSyntax { Parent: GenericNameSyntax genericName })
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.cs (2)
304if (parameterSyntax is not { Type: { } parameterType, Parent.Parent: BaseMethodDeclarationSyntax baseMethod })
Completion\CompletionProviders\ExplicitInterfaceMemberCompletionProvider.cs (1)
93ancestor = ancestor.Parent;
Completion\CompletionProviders\ExplicitInterfaceMemberCompletionProvider.ItemGetter.cs (1)
90when node.Parent.IsKind(SyntaxKind.IncompleteMember):
Completion\CompletionProviders\ExplicitInterfaceTypeCompletionProvider.cs (2)
75potentialTypeNode = typeArgumentList.Parent; 81if (typeNode.Parent is TypeSyntax parentType && parentType.Span.End < position)
Completion\CompletionProviders\NamedParameterCompletionProvider.cs (3)
71var parameterLists = GetParameterLists(semanticModel, position, argumentList.Parent!, cancellationToken); 207var baseList = baseType.Parent; 208if (baseList?.Parent is not BaseTypeDeclarationSyntax typeDeclaration)
Completion\CompletionProviders\ObjectAndWithInitializerCompletionProvider.cs (3)
70if (token.Parent.Parent is not ExpressionSyntax expression) 105if (token.Parent == null || token.Parent.Parent == null) 124var parent = token.Parent?.Parent;
Completion\CompletionProviders\PropertySubPatternCompletionProvider.cs (9)
59var propertyPatternType = semanticModel.GetTypeInfo((PatternSyntax)propertyPatternClause.Parent!, cancellationToken).ConvertedType; 185if (tokenBeforeAdjustment.Parent is IdentifierNameSyntax { Parent: NameColonSyntax { Parent: SubpatternSyntax subpattern } }) 192return token.Parent is PropertyPatternClauseSyntax { Parent: PatternSyntax } propertyPatternClause 210while (memberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 212memberAccess = (MemberAccessExpressionSyntax)memberAccess.Parent; 215if (memberAccess is { Parent.Parent: SubpatternSyntax { Parent: PropertyPatternClauseSyntax found } })
Completion\CompletionProviders\SymbolCompletionProvider.cs (1)
113=> context.TargetToken.Parent?.Parent?.IsKind(SyntaxKind.PrimaryConstructorBaseType) is true;
Completion\CompletionProviders\XmlDocCommentCompletionProvider.cs (11)
148token.Parent.Parent.IsParentKind(SyntaxKind.XmlElement)) 161if (token.Parent.Parent is XmlElementSyntax xmlElement) 167token.Parent.Parent!.Parent is XmlElementSyntax nestedXmlElement) 172if (token.Parent.Parent is DocumentationCommentTriviaSyntax || 173(token.Parent.Parent.IsKind(SyntaxKind.XmlEmptyElement) && token.Parent.Parent.Parent is DocumentationCommentTriviaSyntax)) 235(elementName, attributes) = GetElementNameAndAttributes(token.Parent.Parent!); 249(elementName, attributes) = GetElementNameAndAttributes(attributeSyntax.Parent!); 294token.Parent?.Parent is XmlNameAttributeSyntax xmlName)
Completion\KeywordRecommenders\AssemblyKeywordRecommender.cs (3)
22var parentSyntax = attributeList.Parent; 31case BaseTypeDeclarationSyntax baseType when baseType.Parent is CompilationUnitSyntax: 35case IncompleteMemberSyntax incompleteMember when incompleteMember.Parent is CompilationUnitSyntax:
Completion\KeywordRecommenders\BaseKeywordRecommender.cs (2)
49token.Parent.Parent?.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration))
Completion\KeywordRecommenders\FieldKeywordRecommender.cs (4)
46for (var node = targetToken.Parent; node != null; node = node.Parent) 48if (node is ArrowExpressionClauseSyntax { Parent: PropertyDeclarationSyntax }) 51if (node is AccessorDeclarationSyntax { Parent: AccessorListSyntax { Parent: PropertyDeclarationSyntax } })
Completion\KeywordRecommenders\MethodKeywordRecommender.cs (1)
26Parent: PropertyDeclarationSyntax
Completion\KeywordRecommenders\NamespaceKeywordRecommender.cs (3)
113!token.Parent.Parent.IsKind(SyntaxKind.FileScopedNamespaceDeclaration)) 124token.Parent.Parent is not TypeDeclarationSyntax) 140token.Parent.Parent is not TypeDeclarationSyntax)
Completion\KeywordRecommenders\RefKeywordRecommender.cs (3)
149identifier.Parent is TypeConstraintSyntax typeConstraint && typeConstraint.Type == identifier && 150typeConstraint.Parent is TypeParameterConstraintClauseSyntax constraintClause) 251|| parent?.Parent?.Kind() == SyntaxKind.VariableDeclarator;
Completion\KeywordRecommenders\ReturnKeywordRecommender.cs (1)
37token.Parent.Parent is AccessorDeclarationSyntax;
Completion\KeywordRecommenders\StructKeywordRecommender.cs (2)
59refStructConstraint.Parent is AllowsConstraintClauseSyntax allowsClause && 60allowsClause.Parent is TypeParameterConstraintClauseSyntax)
Completion\KeywordRecommenders\ThisKeywordRecommender.cs (1)
32token.Parent is ConstructorInitializerSyntax { Parent: ConstructorDeclarationSyntax constructor } &&
Completion\KeywordRecommenders\WhenKeywordRecommender.cs (1)
29if (pattern?.Parent is SwitchExpressionArmSyntax)
Completion\KeywordRecommenders\WhereKeywordRecommender.cs (2)
63token.Parent.Parent is MethodDeclarationSyntax { TypeParameterList: not null } 73if (baseList?.Parent is TypeDeclarationSyntax typeDecl)
ConvertForEachToFor\CSharpConvertForEachToForCodeRefactoringProvider.cs (1)
50return foreachInfo.ForEachStatement.Parent.IsKind(SyntaxKind.Block);
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.cs (1)
39if (syntaxToRemove is (IfStatementSyntax or BlockSyntax) and { Parent: ElseClauseSyntax elseClause } &&
ConvertLinq\ConvertForEachToLinqQuery\CSharpConvertForEachToLinqQueryProvider.cs (2)
288if (forEachInfo.ForEachStatement?.Parent is BlockSyntax block && 289block.Parent == memberDeclarationSyntax)
ConvertLinq\CSharpConvertLinqQueryToForEachProvider.cs (11)
213var identifier = ((QueryBodySyntax)selectClause.Parent).Continuation.Identifier; 223var parent = _source.WalkUpParentheses().Parent; 263currentNode = currentNode.Parent; 279if (memberAccessExpression.Parent is InvocationExpressionSyntax invocationExpression) 419var invocationParent = invocationExpression.WalkUpParentheses().Parent; 461if (invocationParent?.Parent.Kind() is 466((VariableDeclarationSyntax)invocationParent.Parent.Parent).Variables.Count == 1) 468var variableDeclarator = ((VariableDeclaratorSyntax)invocationParent.Parent); 471((VariableDeclarationSyntax)variableDeclarator.Parent).Type, 945node = node.Parent;
ConvertPrimaryToRegularConstructor\ConvertPrimaryToRegularConstructorCodeRefactoringProvider.cs (5)
228if (initializer.Parent is not PropertyDeclarationSyntax and not VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } }) 276if (initializer.Parent is PropertyDeclarationSyntax propertyDeclaration) 285else if (initializer.Parent is VariableDeclaratorSyntax)
ConvertProgram\ConvertProgramTransform_TopLevelStatements.cs (4)
33var typeDeclaration = (TypeDeclarationSyntax?)methodDeclaration.Parent; 44if (typeDeclaration.Parent is not BaseNamespaceDeclarationSyntax namespaceDeclaration) 110var namespaceDeclaration = typeDeclaration.Parent as BaseNamespaceDeclarationSyntax; 264typeDeclaration.Parent is NamespaceDeclarationSyntax namespaceDeclaration)
ConvertToExtension\ConvertToExtensionCodeRefactoringProvider.cs (2)
78if (methodDeclaration.Parent is not ClassDeclarationSyntax classDeclaration) 89if (classDeclaration.Parent is not BaseNamespaceDeclarationSyntax and not CompilationUnitSyntax)
ConvertToRawString\ConvertInterpolatedStringToRawStringCodeRefactoringProvider.cs (1)
275for (var current = node; current != null; current = current.Parent)
Copilot\CSharpImplementNotImplementedExceptionDiagnosticAnalyzer.cs (2)
106operation.Syntax.Parent is not ArrowExpressionClauseSyntax { Parent: PropertyDeclarationSyntax })
Debugging\CSharpProximityExpressionsService.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)
193for (SyntaxNode? current = exceptionType; current != null; current = current?.Parent) 195if (current is not BlockSyntax { Parent: TryStatementSyntax tryStatement } block ||
EditAndContinue\BreakpointSpans.cs (7)
103node = node.Parent; 556if (switchLabel.Parent is not SwitchSectionSyntax switchSection || switchSection.Statements.Count == 0) 774=> declaration.Parent!.Kind() switch 859var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent!; 880var variableDeclaration = (VariableDeclarationSyntax)variableDeclarator.Parent!; 964if (expression == null || expression.Parent == null) 969var parent = expression.Parent;
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (91)
126if (current is { Parent.Parent: RecordDeclarationSyntax }) 136Debug.Assert(current.Parent.IsKind(SyntaxKind.VariableDeclaration)); 138switch (current.Parent.Parent!.Kind()) 146current = current.Parent; 151if (current.Parent is (kind: SyntaxKind.PropertyDeclaration or SyntaxKind.IndexerDeclaration)) 160Debug.Assert(current.Parent.IsKind(SyntaxKind.CompilationUnit)); 161declarations = new(current.Parent); 165current = current.Parent; 298node = node.Parent!; 301partnerStatement = partnerStatement.Parent; 375ParameterListSyntax parameters => parameters.Parent!, 391current = current.Parent; 408AccessorDeclarationSyntax { Parent.Parent: IndexerDeclarationSyntax { ParameterList: var list } } => list, 409ArrowExpressionClauseSyntax { Parent: { } memberDecl } => GetDeclarationParameterList(memberDecl), 420(oldBody.Parent.IsKind(SyntaxKind.LocalFunctionStatement) && newBody.Parent.IsKind(SyntaxKind.LocalFunctionStatement))) 441var parent = body.Parent!; 444return parent.IsKind(SyntaxKind.ArrowExpressionClause) && parent.Parent.IsKind(SyntaxKind.LocalFunctionStatement) ? parent.Parent : parent; 642case SyntaxKind.ParameterList when node.Parent is TypeDeclarationSyntax typeDeclaration: 678var parent = statement.Parent; 770if (oldStatement.Parent is UsingStatementSyntax oldUsing) 772return newStatement.Parent is UsingStatementSyntax newUsing && 913=> node is CompilationUnitSyntax ? null : node.Parent!.FirstAncestorOrSelf<BaseTypeDeclarationSyntax>(); 924return declaration.Parent?.Parent is not FieldDeclarationSyntax fieldDeclaration || 932=> declaration.Parent is TypeDeclarationSyntax { ParameterList: var parameterList } and not ExtensionBlockDeclarationSyntax && parameterList == declaration; 1015Contract.ThrowIfNull(declaration.Parent); 1016var recordType = (INamedTypeSymbol?)model.GetDeclaredSymbol(declaration.Parent, cancellationToken); 1018return recordType.InstanceConstructors.Single(ctor => ctor.DeclaringSyntaxReferences is [var syntaxRef] && syntaxRef.GetSyntax(cancellationToken) == declaration.Parent); 1111if (oldNode is ParameterSyntax { Parent.Parent: RecordDeclarationSyntax } || 1112newNode is ParameterSyntax { Parent.Parent: RecordDeclarationSyntax }) 1307Debug.Assert(node.Parent.IsKind(SyntaxKind.AccessorList)); 1309if (HasEdit(editMap, node.Parent, editKind) && !HasEdit(editMap, node.Parent.Parent, editKind)) 1407Contract.ThrowIfNull(node.Parent); 1408node = node.Parent; 1434if (declaration is BaseParameterListSyntax and not { Parent: TypeDeclarationSyntax }) 1436declaration = declaration.Parent; 1442=> node is TypeParameterSyntax ? node.Parent!.Parent! : node!.Parent!; 1671return TryGetDiagnosticSpanImpl(node.Parent!, editKind); 1734return TryGetDiagnosticSpanImpl(node.Parent!, editKind); 1753return TryGetDiagnosticSpanImpl(node.Parent!, editKind); 1877return TryGetDiagnosticSpanImpl(queryBody.Clauses.FirstOrDefault() ?? queryBody.Parent!, editKind); 2050return TryGetDisplayNameImpl(node.Parent!, editKind); 2081if (node.Parent!.Parent!.IsKind(SyntaxKind.PropertyDeclaration)) 2087RoslynDebug.Assert(node.Parent.Parent.IsKind(SyntaxKind.IndexerDeclaration)); 2093if (node.Parent!.Parent!.IsKind(SyntaxKind.PropertyDeclaration)) 2099RoslynDebug.Assert(node.Parent.Parent.IsKind(SyntaxKind.IndexerDeclaration)); 2108return node.Parent!.Kind() switch 2126return node.Parent is TypeDeclarationSyntax ? FeaturesResources.constructor : null; 2272RoslynDebug.Assert(((LocalDeclarationStatementSyntax)node.Parent!.Parent!).AwaitKeyword.IsKind(SyntaxKind.AwaitKeyword)); 2421if (node.IsParentKind(SyntaxKind.CompilationUnit) || node.Parent.IsParentKind(SyntaxKind.CompilationUnit)) 2452if (oldNode.IsParentKind(SyntaxKind.CompilationUnit) || oldNode.Parent.IsParentKind(SyntaxKind.CompilationUnit)) 2475if (newNode.IsParentKind(SyntaxKind.CompilationUnit) || newNode.Parent.IsParentKind(SyntaxKind.CompilationUnit)) 2610RoslynDebug.Assert(current.Parent is object); 2611RoslynDebug.Assert(current.Parent.Kind() == SyntaxKind.TryStatement); 2612current = current.Parent; 2630Debug.Assert(current.Parent != null); 2631current = current.Parent; 2715tryStatement = (TryStatementSyntax)node.Parent!; 2756RoslynDebug.Assert(node.Parent is object); 2757switch (node.Parent.Kind()) 2776node = node.Parent; 2810return awaitExpression.Parent!.Parent!.Parent == containingStatementPart; 2815return awaitExpression.Parent!.Parent!.Parent!.Parent == containingStatementPart; 2883if (oldActiveStatement.Parent!.Parent!.Parent is not SwitchStatementSyntax oldSwitch) 2889var newSwitch = (SwitchStatementSyntax)newActiveStatement.Parent!.Parent!.Parent!; 2979node = node.Parent;
EditAndContinue\DeclarationBody\CSharpLambdaBody.cs (1)
32IsAsync: SyntaxUtilities.IsAsyncDeclaration(node.Parent!),
EditAndContinue\DeclarationBody\FieldWithInitializerDeclarationBody.cs (2)
30=> (BaseFieldDeclarationSyntax)variableDeclarator.Parent!.Parent!;
EditAndContinue\DeclarationBody\SimpleMemberBody.cs (1)
26IsAsync: SyntaxUtilities.IsAsyncDeclaration(Node.Parent!),
EditAndContinue\SyntaxComparer.cs (26)
247if (node != null && node.Parent.IsKind(SyntaxKind.ForStatement) && node is ExpressionSyntax) 469if (node == null || node.Parent.IsKind(SyntaxKind.QueryExpression)) 635if (node?.Parent is (kind: SyntaxKind.PropertyDeclaration or SyntaxKind.IndexerDeclaration)) 679if (node is { Parent: { } parent } && parent.IsParentKind(SyntaxKind.CompilationUnit)) 1047if (leftBlock.Parent == null || 1048rightBlock.Parent == null || 1049leftBlock.Parent.IsKind(SyntaxKind.ConstructorDeclaration) || 1050rightBlock.Parent.IsKind(SyntaxKind.ConstructorDeclaration)) 1056if (GetLabel(leftBlock.Parent) != GetLabel(rightBlock.Parent)) 1062switch (leftBlock.Parent.Kind()) 1079distance = GetDistance(leftBlock.Parent, rightBlock.Parent); 1083var leftCatch = (CatchClauseSyntax)leftBlock.Parent; 1084var rightCatch = (CatchClauseSyntax)rightBlock.Parent; 1088var leftTry = (TryStatementSyntax)leftCatch.Parent!; 1089var rightTry = (TryStatementSyntax)rightCatch.Parent!; 1097distance = GetDistance(leftBlock.Parent, rightBlock.Parent); 1118throw ExceptionUtilities.UnexpectedValue(leftBlock.Parent.Kind()); 1127if (leftNode.Parent != null && 1128rightNode.Parent != null && 1129GetLabel(leftNode.Parent) == GetLabel(rightNode.Parent)) 1131parentDistance = ComputeDistance(leftNode.Parent, rightNode.Parent);
EditAndContinue\SyntaxUtilities.cs (14)
39ArrowExpressionClauseSyntax { Parent: (kind: SyntaxKind.PropertyDeclaration) or (kind: SyntaxKind.IndexerDeclaration) } arrowExpression 40=> new PropertyOrIndexerWithExplicitBodyDeclarationBody((BasePropertyDeclarationSyntax)arrowExpression.Parent!), 55VariableDeclaratorSyntax { Parent.Parent: BaseFieldDeclarationSyntax fieldDeclaration, Initializer: { } } variableDeclarator 59ParameterListSyntax { Parent: TypeDeclarationSyntax typeDeclaration and not ExtensionBlockDeclarationSyntax } 69ParameterSyntax { Parent.Parent: RecordDeclarationSyntax } parameterSyntax when symbol is not IParameterSymbol 107if (syntax is ExpressionSyntax { Parent: ArrowExpressionClauseSyntax }) 113if (syntax is ExpressionSyntax { Parent.Parent: VariableDeclaratorSyntax }) 119if (syntax is ExpressionSyntax { Parent.Parent: PropertyDeclarationSyntax }) 217Contract.ThrowIfNull(declaration.Parent); 218declaration = declaration.Parent;
EncapsulateField\CSharpEncapsulateFieldService.cs (5)
65var declaration = root.GetAnnotatedNodes<SyntaxNode>(tempAnnotation).First().Parent as VariableDeclarationSyntax; 69var fieldSyntax = declaration.Parent as FieldDeclarationSyntax; 91declaration = declarator.Parent as VariableDeclarationSyntax; 115declaration = declarator.Parent as VariableDeclarationSyntax; 154=> field.Parent is TypeDeclarationSyntax;
ExtractMethod\CSharpMethodExtractor.Analyzer.cs (3)
69Parent: VariableDeclarationSyntax 71Parent: LocalDeclarationStatementSyntax 73Parent: BlockSyntax { Statements: [.., var lastBlockStatement] },
ExtractMethod\CSharpMethodExtractor.cs (4)
107return globalStatement.Parent; 113currentNode = currentNode.Parent; 139return globalStatement.Parent; 145return globalStatement.Parent;
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.CallSiteContainerRewriter.cs (4)
54private SyntaxNode ContainerOfStatementsOrFieldToReplace => _firstStatementOrFieldToReplace.Parent; 324var firstMemberIndex = newMembers.FindIndex(s => s == (global ? _firstStatementOrFieldToReplace.Parent : _firstStatementOrFieldToReplace)); 327var lastMemberIndex = newMembers.FindIndex(s => s == (global ? _lastStatementOrFieldToReplace.Parent : _lastStatementOrFieldToReplace)); 416if (node != ContainerOfStatementsOrFieldToReplace.Parent)
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.cs (4)
332Contract.ThrowIfFalse(declStatement.Parent.IsStatementContainerNode()); 334return declStatement.Parent; 902var usingKeyword = originalIdentifierToken.Parent?.Parent?.Parent is LocalDeclarationStatementSyntax { UsingKeyword.FullSpan.IsEmpty: false }
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.ExpressionCodeGenerator.cs (10)
45if (expression.Parent != null && 46expression.Parent.Kind() == SyntaxKind.EqualsValueClause && 47expression.Parent.Parent != null && 48expression.Parent.Parent.Kind() == SyntaxKind.VariableDeclarator) 50var name = ((VariableDeclaratorSyntax)expression.Parent.Parent).Identifier.ValueText; 124scope ??= this.SelectionResult.GetContainingScopeOf<ArrowExpressionClauseSyntax>()?.Parent; 142sourceNode.Parent is MemberAccessExpressionSyntax memberAccessExpression && memberAccessExpression.Name == sourceNode,
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.MultipleStatementsCodeGenerator.cs (2)
40foreach (var statement in GetStatementsFromContainer(firstStatementUnderContainer.Parent)) 75GlobalStatementSyntax globalStatement => ((CompilationUnitSyntax)globalStatement.Parent).Members.OfType<GlobalStatementSyntax>().Select(globalStatement => globalStatement.Statement),
ExtractMethod\CSharpSelectionResult.cs (6)
117return constructorInitializer.Parent; 122return field.Parent; 126return primaryConstructorBaseType.Parent; 129Contract.ThrowIfFalse(last.Parent.IsParentKind(SyntaxKind.CompilationUnit)); 130return last.Parent.Parent;
ExtractMethod\CSharpSelectionResult.ExpressionResult.cs (1)
75if (node.Parent is CastExpressionSyntax castExpression)
ExtractMethod\CSharpSelectionValidator.cs (3)
147for (var current = initialSelectionInfo.CommonRoot; current != null; current = current.Parent) 196firstValidNode = (firstValidNode.Parent is ExpressionStatementSyntax) ? firstValidNode.Parent : firstValidNode;
ExtractMethod\CSharpSelectionValidator.Validator.cs (1)
33return block.Parent is BlockSyntax or
ExtractMethod\Extensions.cs (7)
23for (var current = node; current is object; current = current.Parent) 25if (current.Parent != null && 26current.Parent.IsStatementContainerNode()) 36=> (StatementSyntax)((node.Parent is LabeledStatementSyntax) ? node.Parent : node); 252=> node is InitializerExpressionSyntax && node.Parent is EqualsValueClauseSyntax; 255=> node is ExpressionSyntax && node.Parent is CastExpressionSyntax;
FullyQualify\CSharpFullyQualifyService.cs (1)
59simpleName.Parent is UsingDirectiveSyntax { Alias: null, StaticKeyword.RawKind: 0 } usingDirective)
GenerateMember\GenerateVariable\CSharpGenerateVariableService.cs (14)
96if (identifierName.Parent is MemberAccessExpressionSyntax memberAccessExpression && 101else if (identifierName.Parent.Parent is ConditionalAccessExpressionSyntax conditionalAccessExpression && 102conditionalAccessExpression.WhenNotNull == identifierName.Parent) 106else if (identifierName.Parent is MemberBindingExpressionSyntax memberBindingExpression && 107identifierName.Parent.Parent is AssignmentExpressionSyntax assignmentExpression && 117isConditionalAccessExpression = identifierName.Parent.Parent is ConditionalAccessExpressionSyntax; 191if (expression.Parent is (kind: SyntaxKind.NameColon or SyntaxKind.ExpressionColon) && 192expression.Parent.IsParentKind(SyntaxKind.Subpattern)) 209if (node.IsLeftSideOfAssignExpression() && node.Parent.IsParentKind(SyntaxKind.ExpressionStatement)) 211var assignExpression = (AssignmentExpressionSyntax)node.Parent; 212var expressionStatement = (StatementSyntax)assignExpression.Parent;
GenerateType\CSharpGenerateTypeService.cs (36)
48expression.Parent.IsParentKind(SyntaxKind.ArrayCreationExpression); 56if (expression is TypeSyntax typeSyntax && expression.Parent is TypeArgumentListSyntax typeArgumentList) 58var symbolInfo = semanticModel.GetSymbolInfo(typeArgumentList.Parent, cancellationToken); 86if (expression is TypeSyntax { Parent: BaseTypeSyntax { Parent: BaseListSyntax baseList } baseType } && 90if (baseList.Types[0] != expression.Parent) 95return baseList.Parent.Kind() is 101if (expression is TypeSyntax { Parent: TypeConstraintSyntax { Parent: TypeParameterConstraintClauseSyntax constraintClause } typeConstraint }) 144nameOrMemberAccessExpression = generateTypeServiceStateOptions.NameOrMemberAccessExpression = (ExpressionSyntax)simpleName.Parent; 165if (nameOrMemberAccessExpression.Parent is BaseTypeSyntax baseType && 166nameOrMemberAccessExpression.Parent.IsParentKind(SyntaxKind.BaseList) && 168nameOrMemberAccessExpression.Parent.Parent.IsParentKind(SyntaxKind.EnumDeclaration)) 230simpleName.Parent == token.Parent) 240fieldDeclaration.Parent is CompilationUnitSyntax && 253if (simpleName.Parent is QualifiedNameSyntax parent) 285if (simpleName.Parent is not null and not QualifiedNameSyntax) 298if (nameOrMemberAccessExpression.Parent is not null and QualifiedNameSyntax) 317if ((nameOrMemberAccessExpression.IsKind(SyntaxKind.SimpleMemberAccessExpression) || (nameOrMemberAccessExpression.Parent != null && nameOrMemberAccessExpression.IsParentKind(SyntaxKind.SimpleMemberAccessExpression))) 329outerMostMemberAccessExpression = (ExpressionSyntax)nameOrMemberAccessExpression.Parent; 356if (nameOrMemberAccessExpression.Parent is ObjectCreationExpressionSyntax objectCreationExpressionOpt) 385if (nameOrMemberAccessExpression.Parent is VariableDeclarationSyntax 396if (nameOrMemberAccessExpression.Parent is VariableDeclarationSyntax variableDeclaration) 404if (nameOrMemberAccessExpression.Parent is CastExpressionSyntax { Expression: not null } castExpression) 641if (expression.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList }) 643if (baseList.Parent.Kind() is SyntaxKind.InterfaceDeclaration or SyntaxKind.StructDeclaration or SyntaxKind.RecordStructDeclaration) 668node.Parent != null && 669node.Parent is TypeDeclarationSyntax) 671if (node.Parent is TypeDeclarationSyntax typeDecl) 681node.Parent != null && 682node.Parent is TypeDeclarationSyntax) 692node = node.Parent; 763if (propertyName.Parent is AssignmentExpressionSyntax parentAssignment) 769if (propertyName.Parent is IsPatternExpressionSyntax isPatternExpression)
GoToDefinition\CSharpGoToDefinitionSymbolService.cs (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)
29=> 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)
42=> ifNode?.Parent is (kind: SyntaxKind.Block or SyntaxKind.SwitchSection);
MoveToNamespace\CSharpMoveToNamespaceService.cs (1)
24ParameterListSyntax parameterList => parameterList.Parent as BaseTypeDeclarationSyntax,
QuickInfo\CSharpDiagnosticAnalyzerQuickInfoProvider.cs (3)
50{ Parent: PragmaWarningDirectiveTriviaSyntax } node => node, 93Parent: AttributeArgumentListSyntax 96Parent: AttributeSyntax
QuickInfo\CSharpSemanticQuickInfoProvider.cs (5)
63token.Parent?.Parent.IsKind(SyntaxKind.ElementAccessExpression) == true) 65found = token.Parent.Parent; 110node = node.Parent; 203if (node is IdentifierNameSyntax { IsVar: true, Parent: VariableDeclarationSyntax { Variables: [var declarator] } }) 281Parent: VariableDeclarationSyntax { Type.IsVar: true },
QuickInfo\CSharpSyntacticQuickInfoProvider.cs (2)
80spanStart = parent.Parent!.SpanStart; 90&& node.Parent?.Kind() is SyntaxKind.Block or SyntaxKind.SwitchSection or SyntaxKind.GlobalStatement;
RemoveUnusedVariable\CSharpRemoveUnusedVariableCodeFixProvider.cs (5)
36node = node.Parent; 39var parent = node.Parent; 61RemoveNode(editor, node.IsParentKind(SyntaxKind.GlobalStatement) ? node.Parent : node, blockFacts); 73if (node.Parent?.Parent is not LocalDeclarationStatementSyntax localDeclaration)
Rename\CSharpRenameIssuesService.cs (2)
62if (parent?.Parent is VariableDeclarationSyntax varDecl) 66else if (parent?.Parent is FieldDeclarationSyntax fieldDecl)
ReplaceMethodWithProperty\CSharpReplaceMethodWithPropertyService.cs (1)
399if (nameNode.IsAnyMemberAccessExpressionName() && nameNode.Parent == invocationExpression)
ReplacePropertyWithMethods\CSharpReplacePropertyWithMethodsService.cs (1)
307=> identifierName.Parent as NameMemberCrefSyntax;
SignatureHelp\AttributeSignatureHelpProvider.cs (1)
62token.Parent.Parent is AttributeSyntax;
SignatureHelp\ConstructorInitializerSignatureHelpProvider.cs (1)
82var currentConstructor = semanticModel.GetDeclaredSymbol(constructorInitializer.Parent!, cancellationToken);
SignatureHelp\ElementAccessExpressionSignatureHelpProvider.cs (8)
116if (expression.Parent is ConditionalAccessExpressionSyntax conditional) 155if (expression.Parent is ConditionalAccessExpressionSyntax) 283token.Parent.Parent is ElementAccessExpressionSyntax; 295openBracket.Parent.Parent is ElementAccessExpressionSyntax or ElementBindingExpressionSyntax); 336Contract.ThrowIfFalse(openBracket.Parent is ArrayRankSpecifierSyntax && openBracket.Parent.Parent is ArrayTypeSyntax); 367token.Parent.Parent is ElementBindingExpressionSyntax && 368token.Parent.Parent.Parent is ConditionalAccessExpressionSyntax;
SignatureHelp\GenericNameFullyWrittenSignatureHelpProvider.cs (3)
48token.Parent.Parent is GenericNameSyntax; 60Contract.ThrowIfFalse(lessThanToken.Parent is TypeArgumentListSyntax && lessThanToken.Parent.Parent is GenericNameSyntax); 61return SignatureHelpUtilities.GetSignatureHelpSpan(((GenericNameSyntax)lessThanToken.Parent.Parent).TypeArgumentList);
SignatureHelp\PrimaryConstructorBaseTypeSignatureHelpProvider.cs (2)
76var baseList = baseTypeSyntax.Parent as BaseListSyntax; 77if (baseList?.Parent is not BaseTypeDeclarationSyntax namedTypeSyntax)
SignatureHelp\SignatureHelpUtilities.cs (5)
108if (parenthesizedExpr.Parent is ArgumentSyntax) 110var parent = parenthesizedExpr.Parent; 111var grandParent = parent.Parent; 112if (grandParent is ArgumentListSyntax && grandParent.Parent is TSyntaxNode) 140token.Parent.Parent is TSyntaxNode;
SignatureHelp\WithElementSignatureHelpProvider.cs (1)
56if (withElement?.Parent is not CollectionExpressionSyntax collectionExpression)
Snippets\CSharpForEachLoopSnippetProvider.cs (2)
47if (token is { RawKind: (int)SyntaxKind.AwaitKeyword, Parent: ExpressionSyntax { Parent: ExpressionStatementSyntax } } || 48token is { RawKind: (int)SyntaxKind.IdentifierToken, ValueText: "await", Parent: IdentifierNameSyntax { Parent: ExpressionStatementSyntax } })
SplitOrMergeIfStatements\CSharpIfLikeStatementGenerator.cs (8)
33if (expression.Parent is IfStatementSyntax ifStatement && ifStatement.Condition == expression) 45if (node is IfStatementSyntax && node.Parent is ElseClauseSyntax) 47parentIfOrElseIf = (IfStatementSyntax)node.Parent.Parent; 78while (ifStatement.Parent is ElseClauseSyntax elseClause) 80ifStatement = (IfStatementSyntax)elseClause.Parent; 158editor.ReplaceNode(elseIfClause.Parent.Parent, (currentNode, _) =>
src\roslyn\src\Analyzers\CSharp\Analyzers\AddAccessibilityModifiers\CSharpAddAccessibilityModifiers.cs (1)
58if (member.Parent is InterfaceDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredExpressionParenthesesDiagnosticAnalyzer.cs (4)
72=> binaryLike.Parent switch 75ConstantPatternSyntax { Parent: ExpressionSyntax expression } => expression, 76ConstantPatternSyntax { Parent: UnaryPatternSyntax { Parent: ExpressionSyntax expression } } => expression,
src\roslyn\src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredPatternParenthesesDiagnosticAnalyzer.cs (1)
38=> binaryLike.Parent as PatternSyntax;
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertProgram\ConvertProgramAnalysis_TopLevelStatements.cs (1)
61methodDeclaration.Parent is not TypeDeclarationSyntax containingTypeDeclaration ||
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionDiagnosticAnalyzer.Analyzer.cs (2)
65if (declaration.Parent == node.Parent && declarator.Initializer is null)
src\roslyn\src\Analyzers\CSharp\Analyzers\ConvertTypeofToNameof\CSharpConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
34return node is TypeOfExpressionSyntax { Parent: MemberAccessExpressionSyntax }
src\roslyn\src\Analyzers\CSharp\Analyzers\InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs (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\roslyn\src\Analyzers\CSharp\Analyzers\NamingStyle\CSharpNamingStyleDiagnosticAnalyzer.cs (2)
33Parent: ParameterListSyntax 35Parent: RecordDeclarationSyntax
src\roslyn\src\Analyzers\CSharp\Analyzers\NewLines\ArrowExpressionClausePlacement\ArrowExpressionClausePlacementDiagnosticAnalyzer.cs (1)
73if (arrowExpressionClause.Parent is AccessorDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\NewLines\EmbeddedStatementPlacement\EmbeddedStatementPlacementDiagnosticAnalyzer.cs (2)
92var parent = statement.Parent; 115var blockParent = parent.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\QualifyMemberAccess\CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (2)
44if (node.Parent is AssignmentExpressionSyntax { Parent: InitializerExpressionSyntax(SyntaxKind.ObjectInitializerExpression), Left: var left } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (3)
54if (discard.Parent is DeclarationPatternSyntax declarationPattern) 58if (declarationPattern.Parent is not IsPatternExpressionSyntax) 80else if (discard.Parent is RecursivePatternSyntax recursivePattern)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryLambdaExpression\CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (2)
261node1 = node1.Parent; 262node2 = node2.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\NullableImpactingSpanWalker.cs (4)
66if (node?.Parent is QualifiedNameSyntax qualifiedName 85if (node?.Parent is BaseNamespaceDeclarationSyntax) 91if (node.IsParentKind(SyntaxKind.NameEquals) && node.Parent.IsParentKind(SyntaxKind.UsingDirective)) 109while (node.Parent is QualifiedNameSyntax qualifiedName
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (2)
57switch (parenthesizedExpression.Parent) 82case ConstantPatternSyntax { Parent: IsPatternExpressionSyntax isPatternExpression }:
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (2)
53if (parenthesizedPattern.Parent is not PatternSyntax) 62if (parenthesizedPattern.Parent is not BinaryPatternSyntax parentPattern)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnreachableCode\RemoveUnreachableCodeHelpers.cs (2)
16switch (firstUnreachableStatement.Parent) 27if (globalStatement.Parent is not CompilationUnitSyntax compilationUnit)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedMembers\CSharpRemoveUnusedMembersDiagnosticAnalyzer.cs (2)
54=> variableDeclarator.Parent is VariableDeclarationSyntax 56Parent: FieldDeclarationSyntax { Declaration.Variables.Count: 0 } or
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (2)
69var statementAncestor = unusedSymbolWriteOperation.Syntax.FirstAncestorOrSelf<StatementSyntax>()?.Parent; 103if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyInterpolation\CSharpSimplifyInterpolationHelpers.cs (1)
23ConditionalExpressionSyntax { Parent: ParenthesizedExpressionSyntax parent } => parent,
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorDiagnosticAnalyzer.cs (2)
85if (accessorDeclaration is { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax containingPropertyDeclaration } containingAccessorList } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
25Parent: PropertyPatternClauseSyntax,
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForArrayDiagnosticAnalyzer.cs (4)
150var isConcreteOrImplicitArrayCreation = initializer.Parent is ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax; 153if (!isConcreteOrImplicitArrayCreation && initializer.Parent is not EqualsValueClauseSyntax) 175var matches = initializer.Parent switch 189Debug.Assert(initializer.Parent is EqualsValueClauseSyntax);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForBuilderDiagnosticAnalyzer.cs (6)
136if (invocationExpression.Parent is not EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax localDeclarationStatement } } declarator }) 216identifierName.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 218memberAccess.Parent is InvocationExpressionSyntax { ArgumentList.Arguments.Count: 0 } invocationExpression &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForEmptyDiagnosticAnalyzer.cs (1)
41: memberAccess.Parent is InvocationExpressionSyntax invocation && IsCollectionEmptyAccess(semanticModel, invocation, cancellationToken)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\CSharpUseCollectionExpressionForFluentDiagnosticAnalyzer.cs (3)
79if (memberAccess.Parent is not InvocationExpressionSyntax invocation) 87if (invocation.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax parentInvocation } parentMemberAccess &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (17)
104if (topMostExpression.Parent is CastExpressionSyntax { Type: IdentifierNameSyntax }) 408if (locallyScopedExpression.Parent is ExpressionStatementSyntax) 413if (locallyScopedExpression.Parent is ReturnStatementSyntax or ArrowExpressionClauseSyntax) 416if (locallyScopedExpression.Parent is ArgumentSyntax argument) 426if (locallyScopedExpression.Parent is MemberAccessExpressionSyntax memberAccess && 429if (memberAccess.Parent is InvocationExpressionSyntax invocationExpression) 451if (locallyScopedExpression.Parent is ElementAccessExpressionSyntax elementAccess) 465if (locallyScopedExpression.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax declarator }) 474if (locallyScopedExpression.Parent is AssignmentExpressionSyntax assignment && 554if (argument.Parent is not BaseArgumentListSyntax { Parent: ExpressionSyntax parentInvocation } argumentList) 672Contract.ThrowIfFalse(originalInitializer.Parent 796if (expression.WalkUpParentheses().Parent is not EqualsValueClauseSyntax 798Parent: VariableDeclaratorSyntax 801Parent.Parent: LocalDeclarationStatementSyntax localDeclarationStatement
src\roslyn\src\Analyzers\CSharp\Analyzers\UseConditionalExpression\CSharpUseConditionalExpressionForReturnDiagnosticAnalyzer.cs (1)
39if (block.Syntax.Parent is UnsafeStatementSyntax or CheckedStatementSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseDeconstruction\CSharpUseDeconstructionDiagnosticAnalyzer.cs (3)
103if (variableDeclaration is not { Parent: LocalDeclarationStatementSyntax localDeclaration, Variables: [{ Initializer.Value: { } initializerValue } declarator] }) 110var searchScope = localDeclaration.Parent is GlobalStatementSyntax globalStatement 256if (identifierName.Parent is not MemberAccessExpressionSyntax memberAccess)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseImplicitObjectCreation\CSharpUseImplicitObjectCreationDiagnosticAnalyzer.cs (16)
87if (objectCreation.Parent is EqualsValueClauseSyntax 89Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: false } variableDeclaration } 102else if (objectCreation.Parent.IsKind(SyntaxKind.ArrowExpressionClause)) 104(typeNode, isAsync) = objectCreation.Parent.Parent switch 111AccessorDeclarationSyntax(SyntaxKind.GetAccessorDeclaration) { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax baseProperty } } => (baseProperty.Type, false), 115else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ObjectCreationExpressionSyntax { Type: var collectionType } }) 124else if (objectCreation.Parent is InitializerExpressionSyntax(kind: SyntaxKind.ArrayInitializerExpression) 126Parent: EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax arrayVariableDeclaration } } 131else if (objectCreation.Parent is InitializerExpressionSyntax { Parent: ArrayCreationExpressionSyntax { Type: var arrayCreationType } })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseInferredMemberName\CSharpUseInferredMemberNameDiagnosticAnalyzer.cs (2)
34if (nameColon.Parent is not ArgumentSyntax argument) 63if (nameEquals.Parent is not AnonymousObjectMemberDeclaratorSyntax anonCtor)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseLocalFunction\CSharpUseLocalFunctionDiagnosticAnalyzer.cs (16)
94if (localDeclaration.Parent is BlockSyntax block) 96else if (localDeclaration.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit }) 221Parent: EqualsValueClauseSyntax 223Parent: VariableDeclaratorSyntax 225Parent: VariableDeclarationSyntax 227Parent: LocalDeclarationStatementSyntax declaration, 272if (nodeToCheck.Parent is BinaryExpressionSyntax) 279if (nodeToCheck.Parent is InvocationExpressionSyntax invocationExpression) 283else if (nodeToCheck.Parent is MemberAccessExpressionSyntax memberAccessExpression) 285if (memberAccessExpression is { Parent: InvocationExpressionSyntax explicitInvocationExpression, Name.Identifier.ValueText: WellKnownMemberNames.DelegateInvokeName }) 357if (anonymousFunction?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) { Parent: ExpressionStatementSyntax expressionStatement } assignment) 363if (expressionStatement.Parent is BlockSyntax block) 369else if (expressionStatement.Parent is GlobalStatementSyntax { Parent: CompilationUnitSyntax compilationUnit } globalStatement)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseNameofInNullableAttribute\CSharpUseNameofInNullableAttributeDiagnosticAnalyzer.cs (4)
113var attributeList = attribute.Parent as AttributeListSyntax; 114var container = attributeList?.Parent; 118var parameterList = container.Parent as BaseParameterListSyntax; 119container = parameterList?.Parent;
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsDiagnosticAnalyzer.cs (1)
125return node.WalkUpParentheses().Parent switch
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.Analyzer.cs (1)
328if (statement.Parent is BlockSyntax block)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpAsAndNullCheckDiagnosticAnalyzer.cs (5)
104if (declarator is not { Parent.Parent: LocalDeclarationStatementSyntax localStatement }) 112var enclosingBlock = localStatement.Parent; 241if (identifierName.Parent is AssignmentExpressionSyntax assignmentExpression && 248else if (identifierName.Parent is ArgumentSyntax argument &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\CSharpIsAndCastCheckDiagnosticAnalyzer.cs (3)
95var ifStatementScope = ifStatement.Parent.IsKind(SyntaxKind.Block) 96? ifStatement.Parent 173if (!isExpression.Parent.IsKind(SyntaxKind.IfStatement, out ifStatement))
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (5)
29if (asExpression.Parent is not ParenthesizedExpressionSyntax 32Parent: ConditionalAccessExpressionSyntax parentConditionalAccess 54if (conditionalAccessExpression.Parent is BinaryExpressionSyntax(SyntaxKind.EqualsExpression) parentBinaryExpression1 && 63else if (conditionalAccessExpression.Parent is 81else if (conditionalAccessExpression.Parent is IsPatternExpressionSyntax parentIsPatternExpression)
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePrimaryConstructor\CSharpUsePrimaryConstructorDiagnosticAnalyzer.cs (3)
125else if (nodeToRemove is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax field } }) 315if (primaryConstructorDeclaration.Parent is not TypeDeclarationSyntax)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (2)
116if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (2)
104else if (elements is [{ Syntax.Parent: ArgumentSyntax }, ..]) 109else if (elements is [{ Syntax.Parent: (kind: SyntaxKind.CollectionInitializerExpression) }, ..])
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\ArgumentFixer.cs (1)
31var newInvocation = newArgumentList.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\AttributeArgumentFixer.cs (1)
31var newAttribute = (AttributeSyntax)newArgumentList.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddExplicitCast\CSharpAddExplicitCastCodeFixProvider.cs (4)
71&& targetArgument.Parent is ArgumentListSyntax argumentList 72&& argumentList.Parent is SyntaxNode invocationNode) 79&& targetAttributeArgument.Parent is AttributeArgumentListSyntax attributeArgumentList 80&& attributeArgumentList.Parent is AttributeSyntax attributeNode)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AddInheritdoc\AddInheritdocCodeFixProvider.cs (4)
49if (node.IsKind(SyntaxKind.VariableDeclarator) && node is not { Parent.Parent: EventFieldDeclarationSyntax }) 76if (node is VariableDeclaratorSyntax { Parent.Parent: EventFieldDeclarationSyntax eventField })
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AbstractAssignOutParametersCodeFixProvider.cs (5)
67return location.Parent is BlockSyntax 68|| location.Parent is SwitchSectionSyntax 69|| location.Parent.IsEmbeddedStatementOwner(); 74return location.Parent is ArrowExpressionClauseSyntax or LambdaExpressionSyntax; 82for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AssignOutParametersAtStartCodeFixProvider.cs (2)
40statement.Parent is BlockSyntax block && 42block.Parent == container)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertNamespace\ConvertNamespaceTransform.cs (1)
138if (stringLiteral.GetRequiredParent() is not InterpolatedStringTextSyntax { Parent: InterpolatedStringExpressionSyntax { StringStartToken: (kind: SyntaxKind.InterpolatedMultiLineRawStringStartToken) } interpolatedString })
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.cs (2)
88if (declaratorToRemoveNode.Parent is VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax declStatement, Variables.Count: 1 })
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordEngine.cs (4)
184(expression.Parent as AssignmentExpressionSyntax)?.Parent as ExpressionStatementSyntax) 502.Select(referenceLocations => referenceLocations.Location.FindNode(cancellationToken).Parent) 521expression => objectCreationExpression.Initializer!.Expressions.IndexOf(expression.Parent));
src\roslyn\src\Analyzers\CSharp\CodeFixes\FixIncorrectConstraint\CSharpFixIncorrectConstraintCodeFixProvider.cs (1)
41if (constraint.Parent is not TypeParameterConstraintClauseSyntax)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateConstructor\CSharpGenerateConstructorService.cs (2)
91if (fullName.Parent is ObjectCreationExpressionSyntax objectCreationExpression) 123if (fullName.Parent is AttributeSyntax attribute)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateDefaultConstructors\CSharpGenerateDefaultConstructorsService.cs (3)
44if (node is { Parent: BaseTypeSyntax { Parent: BaseListSyntax { Types: [var firstType, ..] } baseList } }) 46if (baseList.Parent is TypeDeclarationSyntax(SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration) parentTypeDecl &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateEnumMember\CSharpGenerateEnumMemberService.cs (1)
34simpleNameOrMemberAccessExpression = identifierName.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == identifierName
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateConversionService.cs (1)
30node.Parent is AssignmentExpressionSyntax or EqualsValueClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateParameterizedMember\CSharpGenerateMethodService.cs (4)
90simpleName is { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax { Parent: ConditionalAccessExpressionSyntax conditionalAccessExpression1 } invocation1 } memberBinding } && 112isInConditionalAccessExpression = invocationExpressionOpt.Parent is ConditionalAccessExpressionSyntax { WhenNotNull: var whenNotNull } &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\ImplementInterface\CSharpImplementInterfaceService.cs (4)
37=> type?.Parent is BaseTypeSyntax { Parent: BaseListSyntax } baseTypeParent && baseTypeParent.Type == type; 56if (node is TypeSyntax interfaceNode && interfaceNode.Parent is BaseTypeSyntax baseType && 57baseType.Parent is BaseListSyntax baseList &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (5)
55declarationsToRemove.Add((LocalDeclarationStatementSyntax)diagnostic.AdditionalLocations[0].FindNode(cancellationToken).Parent.Parent); 108var declaration = (VariableDeclarationSyntax)declarator.Parent; 117var localDeclarationStatement = (LocalDeclarationStatementSyntax)declaration.Parent; 175editor.RemoveNode(localDeclarationStatement.Parent is GlobalStatementSyntax globalStatement
src\roslyn\src\Analyzers\CSharp\CodeFixes\InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessCodeFixProvider.cs (1)
96if (ifStatement.Parent.IsKind(SyntaxKind.ElseClause) &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\Iterator\CSharpChangeToIEnumerableCodeFixProvider.cs (4)
88if (node.Parent?.Parent is PropertyDeclarationSyntax oldAccessor) 93if (node.Parent?.Parent is IndexerDeclarationSyntax oldIndexer)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\MakeLocalFunctionStaticCodeFixHelper.cs (1)
72if (identifierNode.Parent is InvocationExpressionSyntax invocation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (4)
49if (node is not (PropertyDeclarationSyntax or VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax })) 131if (memberDeclarator is VariableDeclaratorSyntax { Parent.Parent: FieldDeclarationSyntax fieldDeclaration })
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberStatic\CSharpMakeMemberStaticCodeFixProvider.cs (4)
31if (node.IsKind(SyntaxKind.VariableDeclarator) && node.Parent is VariableDeclarationSyntax { Parent: FieldDeclarationSyntax or EventFieldDeclarationSyntax }) 33memberDeclaration = node.Parent.Parent;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStatementAsynchronous\CSharpMakeStatementAsynchronousCodeFixProvider.cs (2)
96if (node.Parent is (kind: 101return node.Parent;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyCodeFixProvider.cs (2)
52else if (declaration is AccessorDeclarationSyntax { Parent: AccessorListSyntax { Parent: BasePropertyDeclarationSyntax property } accessorList } accessor)
src\roslyn\src\Analyzers\CSharp\CodeFixes\Nullable\CSharpDeclareAsNullableCodeFixProvider.cs (20)
59if (node.Parent is ArgumentSyntax) 63if (node.Parent is AssignmentExpressionSyntax) 116if (node.Parent is (kind: SyntaxKind.ReturnStatement or SyntaxKind.YieldReturnStatement)) 161if (node.Parent?.Parent?.Parent is VariableDeclarationSyntax variableDeclaration) 170if (node.Parent is AssignmentExpressionSyntax assignment) 176if (syntax is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Variables.Count: 1 } declaration }) 187if (syntax is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Variables.Count: 1 } declaration }) 212if (node.Parent is ArgumentSyntax argument && argument.Parent?.Parent is InvocationExpressionSyntax invocation) 239if (node.Parent?.Parent is PropertyDeclarationSyntax propertyDeclaration) 249if (node is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Parent: FieldDeclarationSyntax, Variables.Count: 1 } declarationSyntax }) 253if (node.Parent?.Parent is ParameterSyntax optionalParameter) 261node.Parent?.Parent is MethodDeclarationSyntax arrowMethod)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationCodeFixProvider.cs (2)
42switch (discard.Parent) 45if (declarationPattern.Parent is IsPatternExpressionSyntax isPattern)
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnreachableCode\CSharpRemoveUnreachableCodeCodeFixProvider.cs (1)
80if (statement.Parent?.Kind()
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedLocalFunction\CSharpRemoveUnusedLocalFunctionCodeFixProvider.cs (1)
51editor.RemoveNode(localFunction.Parent is GlobalStatementSyntax globalStatement ? globalStatement : localFunction);
src\roslyn\src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (4)
42=> declarator.Parent?.Parent as LocalDeclarationStatementSyntax; 56variableDeclarator.Parent is VariableDeclarationSyntax parent) 212if (originalCompoundAssignment.Parent.IsKind(SyntaxKind.ExpressionStatement))
src\roslyn\src\Analyzers\CSharp\CodeFixes\SimplifyPropertyAccessor\CSharpSimplifyPropertyAccessorCodeFixProvider.cs (2)
51if (accessor.Parent?.Parent is PropertyDeclarationSyntax containingProperty &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseAutoProperty\UseAutoPropertyRewriter.cs (2)
45if (node.Parent is AssignmentExpressionSyntax 47Parent: InitializerExpressionSyntax { RawKind: (int)SyntaxKind.ObjectInitializerExpression }
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionExpression\CSharpCollectionExpressionRewriter.cs (3)
612Contract.ThrowIfNull(node.Parent); 656for (var current = node; current != null; current = current.Parent) 879Contract.ThrowIfNull(expression.Parent);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCollectionInitializer\CSharpUseCollectionInitializerCodeFixProvider_CollectionInitializer.cs (1)
98Contract.ThrowIfNull(expression.Parent);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseCompoundAssignment\CSharpUseCompoundAssignmentCodeFixProvider.cs (1)
52if (currentAssignment.Parent is ForStatementSyntax forStatement &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
47if (ifStatement.Parent is ElseClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseConditionalExpression\CSharpUseConditionalExpressionForReturnCodeFixProvider.cs (1)
34if (ifStatement.Parent is ElseClauseSyntax &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseExpressionBody\UseExpressionBodyCodeFixProvider.cs (1)
89if (declaration.Parent is AccessorListSyntax accessorList)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseImplicitOrExplicitType\UseExplicitTypeCodeFixProvider.cs (4)
65var declarationContext = node.Parent; 69declarationContext = declarationContext.Parent; 99RoslynDebug.AssertNotNull(typeSyntax.Parent); 101var tupleTypeSymbol = GetConvertedType(semanticModel, typeSyntax.Parent, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (1)
233while (expr?.Parent is CheckedExpressionSyntax parent)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseLocalFunction\CSharpUseLocalFunctionCodeFixProvider.cs (1)
171editor.RemoveNode(anonymousFunctionStatement.Parent is GlobalStatementSyntax globalStatement
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs (1)
47var elseClauseSyntax = (ElseClauseSyntax)ifStatement.Parent!;
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndNullCheckCodeFixProvider.cs (4)
74if (statement.Parent is BlockSyntax or SwitchSectionSyntax) 76statementParentScopes.Add(statement.Parent); 109if (declarator.Parent is VariableDeclarationSyntax declaration && 110declaration.Parent is LocalDeclarationStatementSyntax localDeclaration &&
src\roslyn\src\Analyzers\CSharp\CodeFixes\UsePrimaryConstructor\CSharpUsePrimaryConstructorCodeFixProvider.cs (2)
283if (nameSyntax.Parent is QualifiedNameSyntax qualifiedNameSyntax) 292else if (nameSyntax.Parent is MemberAccessExpressionSyntax memberAccessExpression)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSimpleUsingStatement\UseSimpleUsingStatementCodeFixProvider.cs (2)
48var blockLikes = topmostUsingStatements.Select(u => u.Parent is GlobalStatementSyntax ? u.Parent.GetRequiredParent() : u.GetRequiredParent()).ToSet();
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseSystemThreadingLock\CSharpUseSystemThreadingLockCodeFixProvider.cs (4)
88if (variableDeclarator.Parent is not VariableDeclarationSyntax { Parent: FieldDeclarationSyntax } variableDeclaration) 139if (expression.Parent is MemberAccessExpressionSyntax memberAccess && 145if (expression.Parent is not AssignmentExpressionSyntax assignment ||
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseThrowExpression\UseThrowExpressionCodeFixProvider.cs (1)
62if (throwStatementExpression.Parent is ThrowStatementSyntax throwStatement &&
src\roslyn\src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpDeclarationComputer.cs (1)
225if (node.Parent is BasePropertyDeclarationSyntax parentProperty)
src\roslyn\src\Compilers\CSharp\Portable\Syntax\LambdaUtilities.cs (21)
42return !node.Parent.IsKind(SyntaxKind.QueryExpression); 55Debug.Assert(lambdaBody.Parent is object); 56var lambda = lambdaBody.Parent; 62lambda = lambda.Parent; 75Debug.Assert(oldBody.Parent is object); 105var oldJoin = (JoinClauseSyntax)oldBody.Parent; 111var oldGroup = (GroupClauseSyntax)oldBody.Parent; 143var parent = node?.Parent; 163return arrowExpressionClause.Expression == node && arrowExpressionClause.Parent is LocalFunctionStatementSyntax; 167return fromClause.Expression == node && fromClause.Parent is QueryBodySyntax; 230Debug.Assert(selectOrGroupClause.Parent!.Parent is object); 231var containingQueryOrContinuation = selectOrGroupClause.Parent.Parent; 300if (node.Parent.IsKind(SyntaxKind.QueryExpression)) 442if (node.Parent != null) 444switch (node.Parent.Kind()) 450SeparatedSyntaxList<ExpressionSyntax> incrementors = ((ForStatementSyntax)node.Parent).Incrementors; 468if (node is ExpressionSyntax && node.Parent != null && node.Parent.Parent == null)
src\roslyn\src\Compilers\CSharp\Portable\Syntax\SyntaxBindingUtilities.cs (4)
17or VariableDeclaratorSyntax { Parent.Parent: UsingStatementSyntax { AwaitKeyword.RawKind: not 0 } or LocalDeclarationStatementSyntax { AwaitKeyword.RawKind: not 0 } } 21=> node is VariableDeclaratorSyntax { Parent.Parent: UsingStatementSyntax { } or LocalDeclarationStatementSyntax { UsingKeyword.RawKind: not 0 } }
Structure\Providers\BlockSyntaxStructureProvider.cs (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) 65: node.Parent.Span;
UseExpressionBody\UseExpressionBodyCodeRefactoringProvider.cs (2)
152for (var current = node; current != null; current = current.Parent) 178? declaration.Parent
UseNamedArguments\CSharpUseNamedArgumentsCodeRefactoringProvider.cs (2)
30=> argument.Parent?.Parent;
UsePatternMatching\CSharpIsAndCastCheckWithoutNameDiagnosticAnalyzer.cs (1)
254for (SyntaxNode? current = isExpression; current != null; current = current.Parent)
Wrapping\SeparatedSyntaxList\CSharpArgumentWrapper.cs (1)
106for (var current = token.Parent; current != listSyntax; current = current?.Parent)
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (67)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\CSharpIdentifiersShouldNotContainUnderscores.Fixer.cs (1)
36? node.Parent!
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpAvoidDuplicateElementInitializationFixer.cs (1)
40elementInitializer.Parent is not InitializerExpressionSyntax objectInitializer)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpAvoidMultipleEnumerationsAnalyzer.cs (1)
14=> syntax.Parent is ForEachStatementSyntax forEachStatementSyntax && forEachStatementSyntax.Expression.Equals(syntax);
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpDoNotInitializeUnnecessarily.Fixer.cs (1)
44if (node.Parent is PropertyDeclarationSyntax prop)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpDoNotInitializeUnnecessarilyAnalyzer.cs (1)
14=> op.Syntax?.Parent?.RawKind == (int)CodeAnalysis.CSharp.SyntaxKind.SuppressNullableWarningExpression;
Microsoft.CodeQuality.Analyzers\QualityGuidelines\CSharpUseLiteralsWhereAppropriate.Fixer.cs (1)
24currentNode = currentNode.Parent;
Microsoft.NetCore.Analyzers\InteropServices\CSharpDisableRuntimeMarshalling.Fixer.cs (3)
207while (syntax.Parent is not (null or BaseMethodDeclarationSyntax)) 209syntax = syntax.Parent; 212return (BaseMethodDeclarationSyntax?)syntax.Parent;
Microsoft.NetCore.Analyzers\InteropServices\CSharpDynamicInterfaceCastableImplementation.Fixer.cs (3)
223if (identifierNode.Parent is InvocationExpressionSyntax invocationOnThis) 227else if (identifierNode.Parent is MemberAccessExpressionSyntax methodAccess 228&& methodAccess.Parent is InvocationExpressionSyntax invocation)
Microsoft.NetCore.Analyzers\Performance\CSharpConstantExpectedAnalyzer.cs (2)
36if (attributeSyntax.Parent?.Parent is ParameterSyntax parameter)
Microsoft.NetCore.Analyzers\Performance\CSharpDoNotGuardCall.Fixer.cs (6)
31var guardedCallInElse = childStatementSyntax.Parent is ElseClauseSyntax || childStatementSyntax.Parent?.Parent is ElseClauseSyntax; 48var guardedCallInElse = childOperationNode.Parent is ElseClauseSyntax || childOperationNode.Parent?.Parent is ElseClauseSyntax;
Microsoft.NetCore.Analyzers\Performance\CSharpPreferDictionaryTryMethodsOverContainsKeyGuardFixer.cs (5)
103Parent: VariableDeclarationSyntax 105Parent: LocalDeclarationStatementSyntax local 170switch (dictionaryAccess.Parent) 255editor.RemoveNode(dictionaryAddInvocation.Parent!, SyntaxRemoveOptions.KeepNoTrivia); 273editor.RemoveNode(dictionaryAddInvocation.Parent!, SyntaxRemoveOptions.KeepNoTrivia);
Microsoft.NetCore.Analyzers\Performance\CSharpPreferHashDataOverComputeHash.Fixer.cs (6)
119switch (currentCreateNode.Parent) 121case { Parent: UsingStatementSyntax usingStatement } when usingStatement.Declaration?.Variables.Count == 1: 126case { Parent: UsingStatementSyntax }: 131case { Parent: LocalDeclarationStatementSyntax localDeclarationStatementSyntax }: 177var parent = usingStatement.Parent!; 180parent = parent.Parent!;
Microsoft.NetCore.Analyzers\Performance\CSharpPreferLengthCountIsEmptyOverAny.Fixer.cs (6)
35if (invocation.Parent.IsKind(SyntaxKind.LogicalNotExpression)) 37return root.ReplaceNode(invocation.Parent, newMemberAccess.WithTriviaFrom(invocation.Parent)); 88if (invocation.Parent.IsKind(SyntaxKind.LogicalNotExpression)) 92return root.ReplaceNode(invocation.Parent, binaryExpression.WithTriviaFrom(invocation.Parent));
Microsoft.NetCore.Analyzers\Performance\CSharpRecommendCaseInsensitiveStringComparisonFixer.cs (1)
64actualArgumentNode = actualArgumentNode.Parent!;
Microsoft.NetCore.Analyzers\Runtime\CSharpAvoidRedundantRegexIsMatchBeforeMatch.Fixer.cs (7)
219if (ifStatement.Parent is not BlockSyntax parentBlock) 407if (id.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == id) 413if (id.Parent is QualifiedNameSyntax qualified && qualified.Right == id) 419if (id.Parent is NameColonSyntax nameColon && nameColon.Name == id) 603while (current.Parent is ElseClauseSyntax elseClause && 604elseClause.Parent is IfStatementSyntax parentIf) 609if (current.Parent is not BlockSyntax parentBlock)
Microsoft.NetCore.Analyzers\Runtime\CSharpDetectPreviewFeatureAnalyzer.cs (1)
40definition = definition.Parent;
Microsoft.NetCore.Analyzers\Runtime\CSharpDoNotUseEnumerableMethodsOnIndexableCollectionsInsteadUseTheCollectionDirectlyFixer.cs (2)
17if (syntaxNode?.Parent.IsKind(SyntaxKind.SuppressNullableWarningExpression) == true) 19return syntaxNode.Parent;
Microsoft.NetCore.Analyzers\Runtime\CSharpDoNotUseStackallocInLoops.cs (1)
29for (SyntaxNode? node = ctx.Node; node != null; node = node.Parent)
Microsoft.NetCore.Analyzers\Runtime\CSharpForwardCancellationTokenToInvocations.Fixer.cs (4)
31var operation = node.Parent.IsKind(SyntaxKind.MemberBindingExpression) 32? model.GetOperation(node.Parent.Parent!, ct) 33: model.GetOperation(node.Parent!, ct);
Microsoft.NetCore.Analyzers\Runtime\CSharpMarkAllNonSerializableFields.Fixer.cs (1)
20fieldNode = fieldNode.Parent;
Microsoft.NetCore.Analyzers\Runtime\CSharpPreferStreamAsyncMemoryOverloads.Fixer.cs (1)
34identifierNameNode.Parent is PostfixUnaryExpressionSyntax nullableExpression)
Microsoft.NetCore.Analyzers\Runtime\CSharpPreventNumericIntPtrUIntPtrBehavioralChanges.cs (2)
36parent = parent.Parent; 52definition = definition.Parent!;
Microsoft.NetCore.Analyzers\Runtime\CSharpSpecifyCultureForToLowerAndToUpper.Fixer.cs (5)
24(node.Parent?.IsKind(SyntaxKind.SimpleMemberAccessExpression) == true || node.Parent?.IsKind(SyntaxKind.MemberBindingExpression) == true); 29if (node.IsKind(SyntaxKind.IdentifierName) && node.Parent?.FirstAncestorOrSelf<InvocationExpressionSyntax>() is InvocationExpressionSyntax invocation) 48if (node.Parent is MemberAccessExpressionSyntax memberAccess) 56if (node.Parent is MemberBindingExpressionSyntax memberBinding)
Microsoft.NetCore.Analyzers\Runtime\CSharpUseOrdinalStringComparison.Fixer.cs (2)
47node?.Parent?.FirstAncestorOrSelf<InvocationExpressionSyntax>() != null; 52if (identifier?.Parent?.FirstAncestorOrSelf<InvocationExpressionSyntax>() is InvocationExpressionSyntax invokeParent)
Microsoft.NetCore.Analyzers\Usage\CSharpDoNotPassNonNullableValueToArgumentNullExceptionThrowIfNullFixer.cs (2)
28if (invocation.Parent is not null) 30editor.ReplaceNode(invocation.Parent, ifStatement);
Microsoft.NetCore.Analyzers\Usage\CSharpPreferGenericOverloads.Fixer.cs (1)
57if (castExpressionSyntax.Parent is ParenthesizedExpressionSyntax parenthesizedExpressionSyntax)
Microsoft.CodeAnalysis.CSharp.Workspaces (622)
Classification\ClassificationHelpers.cs (19)
186return interpolatedStringText.Parent is InterpolatedStringExpressionSyntax interpolatedString 213if (methodDeclaration.Parent is ExtensionBlockDeclarationSyntax) 220return GetClassificationTypeForConstructorOrDestructorParent(constructorDeclaration.Parent!); 224return GetClassificationTypeForConstructorOrDestructorParent(destructorDeclaration.Parent!); 244var varDecl = variableDeclarator.Parent as VariableDeclarationSyntax; 245return varDecl?.Parent switch 307var parent = identifierSyntax.Parent; 310parent = parent.Parent; 330parentNode = parentNode!.Parent!.Parent; 483if (token.Parent is IdentifierNameSyntax && token.Parent?.Parent is ExpressionStatementSyntax) 492token.Parent.Parent is VariableDeclarationSyntax && 493!(token.Parent.Parent.Parent is FieldDeclarationSyntax) && 494!(token.Parent.Parent.Parent is EventFieldDeclarationSyntax); 499&& token.Parent.Parent is TypeConstraintSyntax 500&& token.Parent.Parent.Parent is TypeParameterConstraintClauseSyntax;
Classification\SyntaxClassification\NameSyntaxClassifier.cs (1)
173if ((name.IsUnmanaged || name.IsNotNull) && name.Parent.IsKind(SyntaxKind.TypeConstraint))
Classification\Worker_DocumentationComments.cs (2)
189var classificationType = node.Parent switch 283return attribute.Name.LocalName.Text == DocumentationCommentXmlNames.LangwordAttributeName && IsSeeElement(attribute.Parent);
CodeGeneration\CSharpSyntaxGenerator.cs (38)
1970if (vd.Variables.Count == 1 && vd.Parent == null) 1983var vd = declaration.Parent as VariableDeclarationSyntax; 2015if (declaration.Parent is not AttributeListSyntax parentList || parentList.Attributes.Count > 1) 2037=> node?.Parent.IsKind(SyntaxKind.FieldDeclaration) ?? false; 2040=> node?.Parent.IsKind(SyntaxKind.EventFieldDeclaration) ?? false; 2043=> node?.Parent.IsKind(SyntaxKind.LocalDeclarationStatement) ?? false; 2132if (declaration.Parent != null) 2134return this.GetType(declaration.Parent); 2174if (vd.Parent != null && vd.Variables.Count == 1) 2176return AsIsolatedDeclaration(vd.Parent); 2183if (v.Parent != null && v.Parent.Parent != null) 2185return ClearTrivia(WithVariable(v.Parent.Parent, v)); 2192if (attr.Parent != null) 2194var attrList = (AttributeListSyntax)attr.Parent; 2243Contract.ThrowIfNull(vd.Parent); 2244return vd.Parent; 2253if (declaration.Parent != null) 2255return GetFullDeclaration(declaration.Parent); 2274var container = GetDeclaration(existingNode.Parent); 2923return AreSimilarExceptForSubDeclarations(decl1.Parent, decl2.Parent); 2971return SyntaxFactory.AreEquivalent(vd1.Type, vd2.Type) && AreSimilarExceptForSubDeclarations(vd1.Parent, vd2.Parent); 3011if (declaration.Parent.IsKind(SyntaxKind.GlobalStatement)) 3014declaration = declaration.Parent; 3050if (declaration.Parent.IsKind(SyntaxKind.GlobalStatement)) 3053declaration = declaration.Parent; 3121if (node.Parent.IsKind(SyntaxKind.GlobalStatement)) 3124node = node.Parent; 3146if (attr.Parent is AttributeListSyntax attrList && attrList.Attributes.Count == 1) 3155if (declaration.Parent != null && ((AttributeArgumentListSyntax)declaration.Parent).Arguments.Count == 1) 3158return RemoveNodeInternal(root, declaration.Parent, options); 3174if (declaration.Parent is BaseListSyntax baseList && baseList.Types.Count == 1) 3183var parent = declaration.Parent;
FindSymbols\CSharpDeclaredSymbolInfoFactoryService.cs (2)
90for (var current = node; current != null; current = current.Parent) 483=> typeDecl.Parent is BaseTypeDeclarationSyntax;
ReassignedVariable\CSharpReassignedVariableService.cs (3)
39var current = designation.Parent; 63current = current.Parent; 81current = current.Parent;
Recommendations\CSharpRecommendationServiceRunner.cs (8)
122if (node.GetAncestor<BaseListSyntax>()?.Parent is EnumDeclarationSyntax) 169for (var current = node; current != null; current = current.Parent) 186for (var current = node; current != null; last = current, current = current.Parent) 289if (alias.GetAncestor<BaseListSyntax>()?.Parent is EnumDeclarationSyntax) 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)) 867var currentUsing = (UsingDirectiveSyntax)token.Parent!.Parent!.Parent!; 897foreach (var typeParameter in ((TypeParameterListSyntax)currentTypeParameter.Parent!).Parameters) 1135if (enclosingNameMemberCrefOrnull != null && token.Parent is TypeSyntax && token.Parent.Parent is TypeSyntax) 1143if (enclosingStatement == null && enclosingInitializer != null && enclosingInitializer.Parent is VariableDeclaratorSyntax)
Simplification\CSharpSimplificationService.cs (3)
113var parent = parentOfToken.Parent; 209var parent = currentTuple.Parent; 220var grandParent = parent.Parent;
Simplification\CSharpSimplificationService.Expander.cs (7)
80argument.Parent?.Parent is ObjectCreationExpressionSyntax objectCreationExpression) 254&& node.Parent is TupleExpressionSyntax tuple 621var parent = originalSimpleName.Parent; 873parent = parent.Parent; 942var parent = originalNode.Parent; 973else if (originalNode.Parent is CrefSyntax)
Simplification\Reducers\AbstractCSharpReducer.AbstractReductionRewriter.cs (6)
85for (var current = (SyntaxNode)expression; current != null; current = current.Parent) 99for (SyntaxNode? current = pattern; current != null; current = current.Parent) 107Contract.ThrowIfNull(lastPattern.Parent); 108return lastPattern.Parent; 118Contract.ThrowIfNull(topMostCref.Parent); 119return topMostCref.Parent;
Simplification\Reducers\CSharpInferredMemberNameReducer.Rewriter.cs (1)
55if (node.Parent.IsKind(SyntaxKind.TupleExpression))
Simplification\Reducers\CSharpMiscellaneousReducer.cs (6)
41parameterSyntax.Parent.IsParentKind(SyntaxKind.ParenthesizedLambdaExpression)) 124if (!CanHaveEmbeddedStatement(node.Parent)) 142if (!node.Parent.IsKind(SyntaxKind.IfStatement)) 148if (node.Parent?.Parent is (kind: SyntaxKind.IfStatement or SyntaxKind.ElseClause)) 160if (!FormattingRangeHelper.AreTwoTokensOnSameLine(node.Parent.GetFirstToken(), node.GetFirstToken().GetPreviousToken()))
Simplification\Simplifiers\AbstractCSharpSimplifier.cs (5)
265var nameofValueOpt = semanticModel.GetConstantValue(node.Parent.Parent.Parent); 345startNode = usingDirective.Parent.Parent;
Simplification\Simplifiers\NameSimplifier.cs (9)
241if (!name.Parent.IsKind(SyntaxKind.QualifiedName) && (inDeclarationContext || inMemberAccessContext)) 376if (name.Parent is QualifiedCrefSyntax qualifiedCrefParent && qualifiedCrefParent.Container == name) 386else if (name.Parent is QualifiedNameSyntax qualifiedParent && qualifiedParent.Left == name && 426if (name.Parent is NameMemberCrefSyntax) 496if (name.Parent.Kind() == SyntaxKind.Attribute || name.IsRightSideOfDotOrColonColon()) 562parent = parent.Parent; 662if (expression?.Parent is CastExpressionSyntax castExpression && 689name = (NameSyntax)name.Parent; 692if (name?.Parent is UsingDirectiveSyntax usingDirective &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ArgumentSyntaxExtensions.cs (3)
45if (argument.Parent is not BaseArgumentListSyntax argumentList || 46argumentList.Parent is null) 52var symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DefaultExpressionSyntaxExtensions.cs (4)
40if (defaultExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 70equalsValueClause.Parent?.Parent is VariableDeclarationSyntax declaration) 74else if (equalsValueClause?.Parent is ParameterSyntax parameter)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (55)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression is { Parent: NameMemberCrefSyntax { Parent: QualifiedCrefSyntax } }; 48=> expression?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == expression; 55return expression == (expression.Parent as MemberAccessExpressionSyntax)?.Name || 60=> expression?.Parent is MemberBindingExpressionSyntax memberBinding && 64=> expression?.Parent is QualifiedNameSyntax qualifiedName && qualifiedName.Right == expression; 67=> expression?.Parent is AliasQualifiedNameSyntax aliasName && aliasName.Name == expression; 98=> (expression?.Parent) is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 103(expression.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Expression == expression); 106=> (expression?.Parent) is QualifiedNameSyntax qualifiedName && qualifiedName.Left == expression; 112=> expression?.Parent is InvocationExpressionSyntax invocation && 197=> expression?.Parent is ArgumentSyntax { RefOrOutKeyword: SyntaxToken(SyntaxKind.OutKeyword) } argument && 209while (expression?.Parent is ParenthesizedExpressionSyntax or PostfixUnaryExpressionSyntax(SyntaxKind.SuppressNullableWarningExpression)) 210expression = (ExpressionSyntax)expression.Parent; 212if (expression?.Parent is RefExpressionSyntax or 215refParent = expression.Parent; 224=> expression?.Parent is ArgumentSyntax { RefKindKeyword: SyntaxToken(SyntaxKind.InKeyword) }; 248if (expression.Parent != null) 282var parent = expr.Parent; 291if (parent.Parent?.Kind() == SyntaxKind.TupleExpression) 293expr = (TupleExpressionSyntax)parent.Parent; 337if (refParent.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type: { } variableDeclarationType } } }) 355if (expression.Parent.IsKind(SyntaxKind.AddressOfExpression)) 366if (expression.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccess && 384if (expression.Parent is ArgumentSyntax) 399var nameEquals = expression?.Parent as NameEqualsSyntax; 405if (expression?.Parent is SyntaxNode parent) 421=> expression is IdentifierNameSyntax { Parent: NameColonSyntax }; 517return expression is { Parent.RawKind: not (int)SyntaxKind.ConditionalAccessExpression }; 520if (expression.Parent == null) 523switch (expression.Parent.Kind()) 553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 555!parentConditionalAccessExpression.Parent.IsKind(SyntaxKind.ConditionalAccessExpression); 560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 596if (expression.Parent is PrefixUnaryExpressionSyntax) 606while (topExpression.Parent is TypeSyntax typeSyntax) 620if (expression.Parent is PostfixUnaryExpressionSyntax or 639if ((expression.IsParentKind(SyntaxKind.NameEquals) && expression.Parent.IsParentKind(SyntaxKind.AttributeArgument)) || 649=> expression is { Parent: ArgumentSyntax { Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocation } } } && 901=> expression?.Parent is MemberAccessExpressionSyntax; 912var parent = topExpression.Parent; 944if (argument.Parent is TupleExpressionSyntax tupleExpression) 973for (SyntaxNode? current = returnStatement; current != null; current = current.Parent) 988if (equalsValue.Parent is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: true } }) 1058if (initializerExpression.Parent is ArrayCreationExpressionSyntax arrayCreation) 1062if (initializerExpression.Parent is ImplicitArrayCreationExpressionSyntax) 1074if (initializerExpression.Parent is EqualsValueClauseSyntax equalsValue) 1078if (initializerExpression.Parent is StackAllocArrayCreationExpressionSyntax or ImplicitStackAllocArrayCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
27var nodeParent = node.Parent; 39? nodeParent.Parent as ExpressionSyntax 70if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 368if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 548if (node?.Parent is CastExpressionSyntax castExpression) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 608(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 660if (node.Parent is ArgumentSyntax argument) 662if (argument.Parent is ArgumentListSyntax argumentList) 671else if (node.Parent is InitializerExpressionSyntax initializer) 695if (node.Parent is ArgumentSyntax argument) 697if (argument.Parent is ArgumentListSyntax argumentList) 706else if (node.Parent is InitializerExpressionSyntax initializer) 744if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 759if (node.Parent is ParenthesizedPatternSyntax) 763if (node.Parent is IsPatternExpressionSyntax) 767if (node.Parent is SwitchExpressionArmSyntax) 771if (node.Parent is SubpatternSyntax) 775if (node.Parent is CasePatternSwitchLabelSyntax) 781return node.Parent is PatternSyntax patternParent &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList } baseType && 215else if (baseList.Types[0] == type.Parent) 224if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 233type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 234type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 235type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 251if (type.Parent.Kind() 260type.Parent, cancellationToken).DeclaredAccessibility; 273if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 275if (type.Parent.Parent.Parent?.Kind() 282type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 285if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 287var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 380if (current.Parent is ForEachStatementSyntax foreachStatement && 387if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 432if (topExpression?.Parent is ArgumentSyntax argument) 439if (argument.Parent is BaseArgumentListSyntax argumentList) 442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (6)
19return ((MemberAccessExpressionSyntax)name.Parent).Expression; 27return ((QualifiedNameSyntax)name.Parent).Left; 31return ((QualifiedCrefSyntax)name.Parent.Parent).Container; 52if (simpleName?.Parent is InvocationExpressionSyntax invocation && 59if (simpleName?.Parent is ElementAccessExpressionSyntax elementAccess &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\StatementSyntaxExtensions.cs (4)
40if (first.Parent.IsKind(SyntaxKind.GlobalStatement)) 41return second.Parent.IsKind(SyntaxKind.GlobalStatement); 43return first.Parent == second.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (23)
45=> CodeAnalysis.CSharpExtensions.IsKind(node?.Parent, kind); 52result = (TNode)node.Parent!; 186if ((current?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == current) || 187(current?.Parent is MemberBindingExpressionSyntax memberBinding && memberBinding.Name == current)) 189current = current.Parent; 203current.Parent is not ConditionalAccessExpressionSyntax) 205current = current.Parent; 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 288=> node?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment && 292=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Left == node; 295=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Right == node; 299return node?.Parent != null && 300node.Parent.IsCompoundAssignExpression() && 301((AssignmentExpressionSyntax)node.Parent).Left == node; 337for (var current = node; current != null; current = current.Parent) 360return !current.Parent.IsKind(SyntaxKind.CompilationUnit); 676=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 692current = current.Parent; 794for (var current = node; current != null; current = current.Parent) 842for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
110if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 113return token.Parent.Parent.GetFirstToken() != token; 126=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 135return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 204&& statementOrElse.Parent != null 205&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 282token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 382token.Parent?.Parent is QueryExpressionSyntax queryExpression && 390var parent = initializer.Parent; 414return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 426var parent = initializer.Parent; 446var parent = anonymousObjectInitializer.Parent; 482return token.Parent.Parent is LabeledStatementSyntax; 527return currentToken.Kind() == SyntaxKind.OpenParenToken && currentToken is { Parent: ParenthesizedVariableDesignationSyntax, Parent.Parent: DeclarationExpressionSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
36if (block.Parent is null or BlockSyntax) 44block.Parent.GetFirstToken(includeZeroWidth: true),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
167RoslynDebug.AssertNotNull(node.Parent); 170firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (10)
63if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 103RoslynDebug.AssertNotNull(node.Parent); 104var switchStatement = (SwitchStatementSyntax)node.Parent; 183if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 228if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 262if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression) 378for (var current = node; current != null; current = current.Parent) 380if (current.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == current)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (7)
49var parentKind = node.Parent?.Kind(); 85&& previousToken.Parent!.Parent == currentToken.Parent.Parent) 165var currentTokenParentParent = currentToken.Parent.Parent; 280|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 369var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 378if (initializer?.Parent != null) 380AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
205var attributeOwner = previousToken.Parent?.Parent; 231RoslynDebug.AssertNotNull(currentUsing.Parent); 233if (AreUsingsProperlyGrouped(GetUsings(currentUsing.Parent)))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (8)
351case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }: 410SimpleNameSyntax { Parent: InvocationExpressionSyntax invocation } => invocation.ArgumentList, 412SimpleNameSyntax { Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberAccess } when memberAccess.Name == node => invocation.ArgumentList, 414SimpleNameSyntax { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberBinding } when memberBinding.Name == node => invocation.ArgumentList, 512var expression = simpleName.Parent switch 519if (expression.Parent is not InvocationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (29)
173=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 204=> node?.Parent is UsingDirectiveSyntax usingDirective && 254return node.Parent is BaseMethodDeclarationSyntax or 528if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 637node.Parent.IsParentKind(SyntaxKind.Subpattern); 649if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 651var withInitializer = identifier.Parent.GetRequiredParent(); 655else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 657var objectInitializer = identifier.Parent.GetRequiredParent(); 658if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 660initializedInstance = objectInitializer.Parent; 663else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 675=> expression is IdentifierNameSyntax { Parent: NameEqualsSyntax { Parent: AnonymousObjectMemberDeclaratorSyntax } nameEquals } identifier && 682Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 685creationExpression = node.Parent; 731node = node.Parent; 772var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 776parent = parent.Parent; 785parent = parent.Parent; 955var parent = node.Parent; 1091=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1094=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1155node.Parent is AttributeListSyntax attributeList && 1184return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1309=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1315=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\CSharpInferredMemberNameSimplifier.cs (3)
14if (node.NameColon == null || !node.Parent.IsKind(SyntaxKind.TupleExpression)) 24if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node)) 45if (RemovalCausesAmbiguity(((AnonymousObjectCreationExpressionSyntax)node.Parent!).Initializers, node))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (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 && 741if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 863static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 888static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1062if (expression.WalkUpParentheses().Parent 1180if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1250if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1257else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1263else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1265equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1289for (SyntaxNode? current = expression; current != null; current = current.Parent) 1304for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1306currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1360for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1362currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1389for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1391currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1665if (castNode.WalkUpParentheses().Parent is InterpolationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
167var containerOfList = parent.Parent; 183var parentOfParent = parent.Parent; 317RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 318var labelNode = previousToken.Parent.Parent; 361RoslynDebug.AssertNotNull(node.Parent); 363node = node.Parent; 370node = node.Parent; 380node = node.Parent; 422return token.Parent.Parent as MemberDeclarationSyntax;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
297Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 298Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode); 441var oldSwitchStatement = (SwitchStatementSyntax)originalCaseSwitchLabel.Parent.Parent; 442var newSwitchStatement = (SwitchStatementSyntax)newCaseSwitchLabel.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
83var isSupportedParentKind = variableDeclaration.Parent is (kind: 99switch (declaration.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
65if (typeName.Parent is DeclarationExpressionSyntax declExpression && 78if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 91if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 106else if (typeName.Parent is DeclarationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
104if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 107if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 139else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 201if (declarationExpression.Parent is not ArgumentSyntax 203Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 277if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpDeclarationComparer.cs (5)
345for (var node = parent; node != null; node = node.Parent) 388var xAccessibility = GetAccessibilityPrecedence(xModifiers, x.Parent ?? y.Parent); 389var yAccessibility = GetAccessibilityPrecedence(yModifiers, y.Parent ?? x.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (7)
215targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 378token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 394token.Parent.Parent is StatementSyntax) 491FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause, 548return attributeList?.Parent switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (20)
126if (token.Parent.Parent is StatementSyntax) 135if (token.Parent.Parent.Kind() is not SyntaxKind.TryStatement and not SyntaxKind.DoStatement) 138else if (token.Parent.Parent?.Kind() 180var container = token.Parent.Parent; 261var container = token.Parent.Parent; 262if (container is IncompleteMemberSyntax && container.Parent is CompilationUnitSyntax) 451targetToken.Parent.Parent.IsKind(SyntaxKind.Argument) && 452targetToken.Parent.Parent.Parent.IsKind(SyntaxKind.ArgumentList)) 454var owner = targetToken.Parent.Parent.Parent.Parent; 469if (targetToken.Parent?.Parent?.Kind() 590targetToken.Parent.Parent is AccessorDeclarationSyntax) 605targetToken.Parent.Parent is AccessorDeclarationSyntax) 617if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 619else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 650targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 651IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (76)
100parent = attributeList.Parent; 180token.Parent.Parent is BaseTypeDeclarationSyntax) 197token.Parent.Parent is BaseTypeDeclarationSyntax) 209token.Parent.Parent is MemberDeclarationSyntax) 229var container = token.Parent.Parent?.Parent; 313member.Parent is BaseTypeDeclarationSyntax; 493token.Parent.Parent is MemberDeclarationSyntax) 520var container = token.Parent?.Parent?.Parent; 597var container = token.Parent?.Parent; 786token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 841token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 957{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1016name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1018conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1106token.Parent.Parent is ParameterSyntax parameter3 && 1107parameter3.Parent is ParameterListSyntax parameterList3 && 1122parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1126if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1136=> parameterList.Parent switch 1275parent = token.Parent.Parent; 1277else if (token.IsKind(SyntaxKind.IdentifierToken) && token is { Text: "scoped", Parent: IdentifierNameSyntax scopedIdentifierName } && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1279parent = scopedIdentifierName.Parent.Parent; 1358leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1360var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1442leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1528while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1533if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1564if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1592possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1660if (outer.Parent is ForEachStatementSyntax @foreach) 1681if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1683node = node.Parent; 1687if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1689node = node.Parent.Parent; 1701leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1809parent.Parent?.Parent is (kind: 1817if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1873if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2086equalsValue.Parent.IsParentKind(SyntaxKind.VariableDeclaration)) 2356type.Parent?.Parent is LocalDeclarationStatementSyntax declStatement) 2509token.Parent?.Parent is ObjectCreationExpressionSyntax objectCreation) 2746=> token.Parent?.Parent is InvocationExpressionSyntax invocation && 2763while (parentMemberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 2765parentMemberAccess = parentMemberAccess.Parent; 2768if (parentMemberAccess.Parent.IsKind(SyntaxKind.Argument) && 2769parentMemberAccess.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2771token = ((ArgumentListSyntax)parentMemberAccess.Parent.Parent!).OpenParenToken; 2779while (parentQualifiedName.Parent.IsKind(SyntaxKind.QualifiedName)) 2781parentQualifiedName = parentQualifiedName.Parent; 2784if (parentQualifiedName.Parent.IsKind(SyntaxKind.Argument) && 2785parentQualifiedName.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2787token = ((ArgumentListSyntax)parentQualifiedName.Parent.Parent!).OpenParenToken; 2796token.Parent.Parent is InvocationExpressionSyntax invocationExpression && 2865nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2876token.Parent.Parent is (kind: SyntaxKind.ObjectInitializerExpression or SyntaxKind.CollectionInitializerExpression)) 2885if (token.Parent.Parent is ArgumentSyntax { RefOrOutKeyword.RawKind: (int)SyntaxKind.OutKeyword }) 2921if (name.Parent != null) 2923switch (name.Parent.Kind()) 2926return ((QualifiedNameSyntax)name.Parent).Right == name; 2928return ((AliasQualifiedNameSyntax)name.Parent).Name == name; 2930return ((MemberAccessExpressionSyntax)name.Parent).Name == name; 2964block.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.CatchClause) 3008targetToken.Parent is BaseListSyntax { Parent: TypeDeclarationSyntax }; 3041token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression && 3048token.Parent?.Parent is DeclarationPatternSyntax declarationExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (1)
20if (withElement?.Parent is not CollectionExpressionSyntax collectionExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
353var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.cs (3)
132!argument.Parent.IsKind(SyntaxKind.ThisConstructorInitializer) && 193RoslynDebug.AssertNotNull(node.Parent); 196var baseToken = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (9)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 229if (embeddedStatementOwner.Parent is LabeledStatementSyntax) 232embeddedStatementOwner = embeddedStatementOwner.Parent; 254token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 406if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 429RoslynDebug.AssertNotNull(queryBody.Parent); 430return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
46if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 281if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 287if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 293if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 304if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 311if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 322if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 327if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 328argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 329argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 330argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 381if (argument.Parent != null) 383if (argument.Parent.Parent is AttributeSyntax attribute) 521switch (argumentList.Parent) 551if (attributeArgumentList.Parent is AttributeSyntax attribute) 747var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 900if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1218if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1221if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1225SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1243if (expressionElement.Parent is CollectionExpressionSyntax collectionExpression) 1434if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1462else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1472else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1482else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1506var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1575if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1713if (memberDeclarator is { NameEquals: not null, Parent: AnonymousObjectCreationExpressionSyntax anonymousObject }) 1738return nameColon.Parent switch 1754return expressionColon.Parent switch 1806memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1807memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1929if (nameColon.Parent is SubpatternSyntax subpattern) 1939if (expressionColon.Parent is SubpatternSyntax subpattern) 1956if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2114=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2198var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2264variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2332var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\SemanticModelReuse\CSharpSemanticModelReuseLanguageService.cs (6)
31Contract.ThrowIfFalse(accessor.Parent is AccessorListSyntax); 32Contract.ThrowIfFalse(accessor.Parent.Parent is BasePropertyDeclarationSyntax); 33return (BasePropertyDeclarationSyntax)accessor.Parent.Parent; 41for (SyntaxNode? previous = null, current = node; current != null; previous = current, current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
Microsoft.CodeAnalysis.Features (239)
AddImport\AbstractAddImportCodeRefactoringProvider.cs (4)
128while (IsQualified(current.Parent)) 130var parentSymbol = semanticModel.GetSymbolInfo(current.Parent, cancellationToken).Symbol; 133current = current.Parent; 147current = current.Parent;
AddImport\SymbolReferenceFinder.cs (1)
303: 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)
189node = node.Parent;
CodeRefactorings\AddAwait\AbstractAddAwaitCodeRefactoringProvider.cs (1)
73if (syntaxFacts.IsExpressionOfInvocationExpression(node.Parent))
CodeRefactorings\MoveType\AbstractMoveTypeService.cs (1)
150=> typeNode.Parent is TTypeDeclarationSyntax;
CodeRefactorings\MoveType\AbstractMoveTypeService.MoveTypeNamespaceScopeEditor.cs (1)
32return TypeDeclaration.Parent is TNamespaceDeclarationSyntax namespaceDeclaration
CodeRefactorings\SyncNamespace\AbstractChangeNamespaceService.cs (3)
665while (name.Parent is TNameSyntax parentName) 668return name.Parent is TCrefSyntax ? name.Parent : name;
Completion\Providers\AbstractAwaitCompletionProvider.cs (1)
270var parentOfAwaitable = potentialAwaitableExpression.Parent;
Completion\Providers\AbstractInternalsVisibleToCompletionProvider.cs (6)
103while (syntaxFactsService.IsElementAccessExpression(node.Parent) || syntaxFactsService.IsBinaryExpression(node.Parent)) 105node = node.Parent; 109var attributeSyntaxNodeCandidate = node.Parent?.Parent?.Parent;
ConvertAutoPropertyToFullProperty\AbstractConvertAutoPropertyToFullPropertyCodeRefactoringProvider.cs (1)
79if (containingProperty?.Parent is not TTypeDeclarationNode)
ConvertForToForEach\AbstractConvertForToForEachCodeRefactoringProvider.cs (13)
156var argument = current.Parent; 161var argumentList = argument?.Parent; 198if (syntaxFacts.IsElementAccessExpression(argumentList.Parent)) 200var expr = syntaxFacts.GetExpressionOfElementAccessExpression(argumentList.Parent); 212if (syntaxFacts.IsInvocationExpression(argumentList.Parent)) 214var invokedExpression = syntaxFacts.GetExpressionOfInvocationExpression(argumentList.Parent); 426if (syntaxFacts.AreEquivalent(current.Parent, indexExpression)) 432else if (syntaxFacts.AreEquivalent(current.Parent?.Parent, elementAtExpression)) 443var shouldWarn = syntaxFacts.IsArgument(current.Parent); 446syntaxFacts.IsMemberAccessExpression(current.Parent) && 447syntaxFacts.IsInvocationExpression(current.Parent.Parent);
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (2)
51var nodesToRemove = sections.Skip(1).Select(s => s.SyntaxToRemove).Where(s => s.Parent == ifStatement.Parent);
ConvertToInterpolatedString\AbstractConvertConcatenationToInterpolatedStringRefactoringProvider.cs (1)
63IsStringConcat(syntaxFacts, top.Parent, semanticModel, cancellationToken))
ConvertToInterpolatedString\AbstractConvertPlaceholderToInterpolatedStringRefactoringProvider.cs (3)
169var invocation = selectedArgument?.Parent?.Parent as TInvocationExpressionSyntax; 178var invocation = argumentList?.Parent as TInvocationExpressionSyntax;
Debugging\AbstractDataTipInfoGetter.cs (2)
33if (expression.Parent is TMemberExpressionSyntax { Parent: TInvocationExpressionSyntax invocation } memberAccess &&
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (13)
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; 5295if (node.Parent == null && 5924var oldTargetParameter = oldLambda.Parent != null 5925? (oldModel.RequiredModel.GetOperation(oldLambda.Parent, cancellationToken) as IArgumentOperation)?.Parameter 6759node = node.Parent; 7039current = current.Parent;
EditAndContinue\Utilities\Extensions.cs (3)
288Contract.ThrowIfFalse(otherRoot.Parent == null); 292var parent = node.Parent; 297parent = parent.Parent;
EmbeddedLanguages\AbstractLanguageDetector.cs (4)
71syntaxFacts.IsArgument(token.Parent.Parent)) 73options = GetOptionsFromSiblingArgument(token.Parent.Parent, semanticModel, cancellationToken) ?? 103syntaxFacts.IsArgument(token.Parent.Parent) && 104IsArgumentToWellKnownAPI(token, token.Parent.Parent, semanticModel, cancellationToken, out options);
EmbeddedLanguages\DateAndTime\LanguageServices\DateAndTimeLanguageDetector.cs (4)
58var interpolation = interpolationFormatClause?.Parent; 76var argumentList = argumentNode.Parent; 77var invocationOrCreation = argumentList?.Parent; 131syntaxFacts.IsArgument(token.Parent.Parent);
EmbeddedLanguages\EmbeddedLanguageDetector.cs (25)
96syntaxFacts.IsBinaryExpression(token.Parent.Parent) && 97syntaxFacts.SyntaxKinds.AddExpression == token.Parent.Parent.RawKind) 102for (var node = token.Parent; node != null; node = node.Parent) 166var interpolation = interpolationFormatClause?.Parent; 220if (syntaxFacts.IsArgument(container.Parent)) 222if (IsArgumentWithMatchingStringSyntaxAttribute(semanticModel, container.Parent, cancellationToken, out identifier)) 225else if (syntaxFacts.IsAttributeArgument(container.Parent)) 227if (IsAttributeArgumentWithMatchingStringSyntaxAttribute(semanticModel, container.Parent, cancellationToken, out identifier)) 230else if (syntaxFacts.IsNamedMemberInitializer(container.Parent)) 232syntaxFacts.GetPartsOfNamedMemberInitializer(container.Parent, out var name, out _); 250if (syntaxFacts.IsEqualsValueClause(container.Parent)) 252if (syntaxFacts.IsVariableDeclarator(container.Parent.Parent)) 254var variableDeclarator = container.Parent.Parent; 262else if (syntaxFacts.IsEqualsValueOfPropertyDeclaration(container.Parent)) 264var property = container.Parent.GetRequiredParent(); 316if (syntaxFacts.IsEqualsValueClause(container.Parent) && 317syntaxFacts.IsVariableDeclarator(container.Parent.Parent)) 319var variableDeclarator = container.Parent.Parent; 424if (syntaxFacts.IsAnyInitializerExpression(node.Parent, out var instance)) 429else if (syntaxFacts.IsExpressionElement(node.Parent)) 432node = syntaxFacts.WalkUpParentheses(node.Parent.GetRequiredParent());
EmbeddedLanguages\Json\LanguageServices\JsonLanguageDetector.cs (1)
134var invocationOrCreation = argumentList.Parent;
EmbeddedLanguages\RegularExpressions\LanguageServices\RegexLanguageDetector.cs (1)
88var invocationOrCreation = argumentList.Parent;
ExtractMethod\MethodExtractor.CodeGenerator.cs (4)
209mappedMember = mappedMember.Parent?.RawKind == syntaxKinds.GlobalStatement 210? mappedMember.Parent 214? mappedMember.Parent 218var destination = mappedMember.Parent ?? mappedMember;
ExtractMethod\MethodExtractor.cs (2)
122? insertionPointNode.Parent 124destination = mappedPoint.Parent ?? mappedPoint;
ExtractMethod\SelectionValidator.cs (4)
84if (firstStatement != null && statement.Span.End <= textSpan.End && statement.Parent == firstStatement.Parent) 190var parent1 = blockFacts.GetImmediateParentExecutableBlockForStatement(statement1) ?? statement1.Parent; 191var parent2 = blockFacts.GetImmediateParentExecutableBlockForStatement(statement2) ?? statement2.Parent;
FullyQualify\AbstractFullyQualifyService.cs (1)
166var rightSide = syntaxFacts.GetRightSideOfDot(simpleName.Parent);
GenerateType\AbstractGenerateTypeService.State.cs (1)
195for (var current = node; current != null; current = current.Parent)
Highlighting\Keywords\AbstractKeywordHighlighter.cs (1)
50for (var parent = token.Parent; parent != null; parent = parent.Parent)
InlineMethod\AbstractInlineMethodRefactoringProvider.cs (9)
139if (_syntaxFacts.IsThrowStatement(rawInlineExpression.Parent) || _syntaxFacts.IsThrowExpression(rawInlineExpression)) 178&& !_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 351if (_syntaxFacts.IsThrowStatement(rawInlineExpression.Parent) 352&& _syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 360&& _syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent)) 375if (_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent) 415if (_syntaxFacts.IsThrowStatement(rawInlineExpression.Parent)) 435if (!_syntaxFacts.IsExpressionStatement(calleeInvocationNode.Parent) 486for (SyntaxNode? node = calleeMethodInvocationNode; node != null; node = node.Parent)
InlineMethod\AbstractInlineMethodRefactoringProvider.MethodParametersInfo.cs (1)
487&& _syntaxFacts.IsExpressionStatement(calleInvocationNode.Parent)
IntroduceParameter\IntroduceParameterDocumentRewriter.cs (2)
110var declarator = _expression?.Parent?.Parent;
IntroduceVariable\AbstractIntroduceVariableService.State.cs (5)
205while (syntaxFacts.IsParenthesizedExpression(current.Parent)) 206current = (TExpressionSyntax)current.Parent; 208if (!syntaxFacts.IsEqualsValueClause(current.Parent)) 211var equalsValue = current.Parent; 212if (!syntaxFacts.IsVariableDeclarator(equalsValue.Parent))
InvertIf\AbstractInvertIfCodeRefactoringProvider.cs (1)
467ifNode.Parent == subsequentStatementRanges[0].Parent;
InvertIf\AbstractInvertIfCodeRefactoringProvider.StatementRange.cs (3)
27Debug.Assert(firstStatement.Parent != null); 28Debug.Assert(firstStatement.Parent == lastStatement.Parent);
InvertLogical\AbstractInvertLogicalCodeRefactoringProvider.cs (7)
55while (expression.Parent?.RawKind == expression.RawKind) 57expression = expression.Parent; 67syntaxFacts.IsLogicalAndExpression(expression.Parent) || syntaxFacts.IsLogicalOrExpression(expression.Parent)) 124while (syntaxFacts.IsParenthesizedExpression(expression.Parent) || 125syntaxFacts.IsLogicalNotExpression(expression.Parent)) 127expression = expression.Parent;
MoveStaticMembers\MoveStaticMembersWithDialogCodeAction.cs (5)
301syntaxFacts.IsMemberAccessExpression(refNode.Parent) && 302syntaxFacts.IsInvocationExpression(refNode.Parent.Parent)) 305var extensionMethodInvocation = refNode.Parent.Parent;
NameTupleElement\AbstractNameTupleElementCodeRefactoringProvider.cs (1)
50var argument = potentialArguments.FirstOrDefault(n => n?.Parent is TTupleExpressionSyntax);
QuickInfo\CommonSemanticQuickInfoProvider.cs (2)
275for (var current = last.Parent; current != null; last = current, current = current.Parent)
RemoveUnusedVariable\AbstractRemoveUnusedVariableCodeFixProvider.cs (2)
171if (variableDeclarator.Parent?.Parent is TLocalDeclarationStatement candidate)
ReplaceConditionalWithStatements\AbstractReplaceConditionalWithStatementsCodeRefactoringProvider.cs (8)
131var parentStatement = topExpression.Parent as TStatementSyntax; 153if (topExpression.Parent is TEqualsValueClauseSyntax equalsValue && 154equalsValue.Parent is TVariableDeclaratorSyntax variableDeclarator) 178if (current.Parent is TExpressionSyntax parentExpression) 184if (current.Parent is TArgumentSyntax { Parent: TArgumentListSyntax { Parent: TExpressionSyntax argumentParent } }) 240var isGlobalStatement = syntaxFacts.IsGlobalStatement(localDeclarationStatement.Parent);
ReplaceDocCommentTextWithTag\AbstractReplaceDocCommentTextWithTagCodeRefactoringProvider.cs (1)
137for (var node = token.Parent; node != null; node = node.Parent)
ReplacePropertyWithMethods\AbstractReplacePropertyWithMethodsService.cs (7)
121_expression = (TExpressionSyntax)_expression.Parent!; 124Contract.ThrowIfNull(_expression.Parent, $"Parent of {_expression} is null."); 193if (replacer._expression.Parent is TStatementSyntax) 251else if (_syntaxFacts.IsInferredAnonymousObjectMemberDeclarator(_expression.Parent)) //.IsParentKind(SyntaxKind.AnonymousObjectMemberDeclarator)) 255var declarator = _expression.Parent; 291Contract.ThrowIfNull(_expression.Parent, $"Parent of {_expression} is null."); 296_expression.Parent,
SignatureHelp\CommonSignatureHelpUtilities.cs (2)
166if (initializer is not { Parent: not null }) 176var parentOperation = semanticModel.GetOperation(initializer.Parent, cancellationToken) as IObjectOrCollectionInitializerOperation;
SimplifyThisOrMe\AbstractSimplifyThisOrMeDiagnosticAnalyzer.cs (1)
56if (node.Parent is not TMemberAccessExpressionSyntax memberAccessExpression)
Snippets\SnippetProviders\AbstractConsoleSnippetProvider.cs (1)
88var nearestExpression = closestNode.FirstAncestorOrSelf<TExpressionSyntax>(static exp => exp.Parent is TExpressionStatementSyntax or TLambdaExpressionSyntax);
SpellCheck\AbstractSpellCheckSpanService.cs (1)
104AddStringSpans(token, canContainEscapes: !_syntaxFacts.IsVerbatimInterpolatedStringExpression(token.Parent.Parent));
SplitOrMergeIfStatements\AbstractMergeIfStatementsCodeRefactoringProvider.cs (1)
114while (statements is [{ Parent: var parent }, ..] &&
SplitOrMergeIfStatements\Consecutive\AbstractMergeConsecutiveIfStatementsCodeRefactoringProvider.cs (2)
234blockFacts.IsExecutableBlock(ifOrElseIf.Parent)) 236var blockStatements = blockFacts.GetExecutableBlockStatements(ifOrElseIf.Parent);
SplitOrMergeIfStatements\Consecutive\AbstractSplitIntoConsecutiveIfStatementsCodeRefactoringProvider.cs (1)
88if (!blockFacts.IsExecutableBlock(ifOrElseIf.Parent))
SplitOrMergeIfStatements\Nested\AbstractMergeNestedIfStatementsCodeRefactoringProvider.cs (5)
99if (blockFacts.IsStatementContainer(statement.Parent)) 101var statements = blockFacts.GetStatementContainerStatements(statement.Parent); 105if (rootStatements.Count > 0 && ifGenerator.IsIfOrElseIf(rootStatements[0].Parent)) 107ifOrElseIf = rootStatements[0].Parent; 175var statements = blockFacts.GetStatementContainerStatements(innerIfStatement.Parent);
src\roslyn\src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
35var parent = node.Parent;
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessaryParentheses\AbstractRemoveUnnecessaryParenthesesDiagnosticAnalyzer.cs (1)
76var parentKind = parenthesizedExpression.Parent?.RawKind;
src\roslyn\src\Analyzers\Core\Analyzers\UseAutoProperty\AbstractUseAutoPropertyAnalyzer.cs (2)
317fieldDeclaration = variableDeclarator?.Parent?.Parent as TFieldDeclaration;
src\roslyn\src\Analyzers\Core\Analyzers\UseCollectionInitializer\UseCollectionInitializerHelpers.cs (1)
69containingBlockOrCompilationUnit = containingBlockOrCompilationUnit.Parent!;
src\roslyn\src\Analyzers\Core\Analyzers\UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs (1)
134var negated = syntaxFacts.IsLogicalNotExpression(invocation.Parent);
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer.cs (1)
443if (syntaxFacts.IsAnyAssignmentStatement(node.Parent) &&
src\roslyn\src\Analyzers\Core\Analyzers\UseNullPropagation\AbstractUseNullPropagationDiagnosticAnalyzer_IfStatement.cs (1)
132if (whenPartMatch.Parent is TMemberAccessExpressionSyntax memberAccess)
src\roslyn\src\Analyzers\Core\CodeFixes\AddAnonymousTypeMemberName\AbstractAddAnonymousTypeMemberNameCodeFixProvider.cs (3)
63if (node.Parent is not TAnonymousObjectMemberDeclaratorSyntax declarator) 74if (declarator.Parent is not TAnonymousObjectInitializer) 125var anonymousType = current.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\AddExplicitCast\AbstractAddExplicitCastCodeFixProvider.cs (3)
127if (syntaxFacts.IsParenthesizedExpression(currentTarget.Parent)) 129return (currentTarget.Parent, currentTarget.Parent.ReplaceNode(currentTarget, currentReplacement).WithAdditionalAnnotations(Simplifier.Annotation));
src\roslyn\src\Analyzers\Core\CodeFixes\AddParameter\AbstractAddParameterCodeFixProvider.cs (1)
74for (var node = initialNode; node != null; node = node.Parent)
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateMember\AbstractGenerateMemberService.cs (1)
172if (expression.Parent?.RawKind == syntaxFacts.SyntaxKinds.AddressOfExpression &&
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateVariable\AbstractGenerateVariableService.State.cs (2)
347var block = assignmentStatement.Parent; 446if (syntaxKinds.AddressOfExpression == SimpleNameOrMemberAccessExpressionOpt.Parent?.RawKind)
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator_DisposePattern.cs (1)
63var typeDeclarationWithCoreMembers = firstGeneratedMember.Parent!;
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodSynchronous\AbstractMakeMethodSynchronousCodeFixProvider.cs (3)
211expressionNode = nameNode.Parent; 221var invocationExpression = expressionNode.Parent; 241var parentExpression = parentMemberAccessExpression.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\NamingStyle\NamingStyleCodeFixProvider.cs (1)
67node = node.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\RemoveUnusedParametersAndValues\AbstractRemoveUnusedValuesCodeFixProvider.cs (16)
173!syntaxFacts.IsExpressionStatement(node.Parent)) 182else if (syntaxFacts.IsDeclarationPattern(node.Parent) || 183syntaxFacts.IsRecursivePattern(node.Parent) || 184syntaxFacts.IsListPattern(node.Parent)) 482if (declaredLocal == null && node.Parent is TCatchStatementSyntax) 484declaredLocal = semanticModel.GetDeclaredSymbol(node.Parent, cancellationToken) as ILocalSymbol; 512Contract.ThrowIfFalse(node.GetRequiredParent().Parent is TExpressionStatementSyntax); 519if (node.Parent is TStatementSyntax) 522nodesToRemove.Add(node.Parent); 524else if (node.Parent is TExpressionSyntax && node.Parent.Parent is TExpressionStatementSyntax) 527nodesToRemove.Add(node.Parent.Parent); 695n => n.Parent is TSwitchCaseBlockSyntax || 696blockFacts.IsExecutableBlock(n.Parent) &&
src\roslyn\src\Analyzers\Core\CodeFixes\SimplifyInterpolation\AbstractSimplifyInterpolationCodeFixProvider.cs (1)
65interpolationSyntax.Parent is TInterpolatedStringExpressionSyntax interpolatedString)
src\roslyn\src\Analyzers\Core\CodeFixes\UseAutoProperty\AbstractUseAutoPropertyCodeFixProvider.cs (4)
443if (fieldToRemove.Parent == property.Parent && 444fieldToRemove.Parent is TTypeDeclarationSyntax typeDeclaration) 582node = node.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\UseCompoundAssignment\AbstractUseCompoundAssignmentCodeFixProvider.cs (1)
98if (syntaxFacts.IsSimpleAssignmentStatement(currentAssignment.Parent))
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\AbstractUseConditionalExpressionCodeFixProvider.cs (2)
182while (sourceSyntax is { Parent.RawKind: var kind } && kind == suppressKind) 183sourceSyntax = sourceSyntax.Parent;
src\roslyn\src\Analyzers\Core\CodeFixes\UseNullPropagation\AbstractUseNullPropagationCodeFixProvider.cs (4)
183if (syntaxFacts.IsElseClause(ifStatement.Parent)) 197editor.ReplaceNode(ifStatement.Parent, PostProcessElseIf(ifStatement, newWhenTrueStatement)); 246if (syntaxFacts.IsSimpleMemberAccessExpression(match.Parent)) 248var memberAccess = match.Parent;
Testing\AbstractTestMethodFinder.cs (1)
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.Razor.Compiler (3)
CSharp\GenericTypeNameRewriter.cs (1)
59if (node is IdentifierNameSyntax identifier && !(identifier.Parent is QualifiedNameSyntax))
CSharp\GlobalQualifiedTypeNameRewriter.cs (2)
59if (node.Parent is QualifiedNameSyntax) 93if (node.Parent != null)
Microsoft.CodeAnalysis.ResxSourceGenerator (63)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
182while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 184declSyntax = declSyntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
Microsoft.CodeAnalysis.VisualBasic (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)
3656If node.Parent Is Nothing OrElse 3657node.Parent.Kind <> SyntaxKind.NamedFieldInitializer Then 3699Dim parent = syntax.Parent 3708Return syntax.Parent IsNot Nothing AndAlso 3709syntax.Parent.Kind = SyntaxKind.NameOfExpression AndAlso 3710DirectCast(syntax.Parent, NameOfExpressionSyntax).Argument Is syntax 4037Dim 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 991parentSyntax Is boundNodes.LowestBoundNode.Syntax.Parent AndAlso 1424parentSyntax Is lowestBoundNode.Syntax.Parent AndAlso 3526If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is NamespaceBlockSyntax Then 3527Return declaringSyntax.Parent 3532If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is TypeBlockSyntax Then 3533Return declaringSyntax.Parent 3536If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is EnumBlockSyntax Then 3537Return declaringSyntax.Parent 3542If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is MethodBlockBaseSyntax Then 3543Return declaringSyntax.Parent 3548If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is EventBlockSyntax Then 3549Return declaringSyntax.Parent 3554If declaringSyntax.Parent IsNot Nothing AndAlso TypeOf declaringSyntax.Parent Is PropertyBlockSyntax Then 3555Return 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)
3776Dim parent As SyntaxNode = syntax.Parent 3785parent = 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)
1130diagnostics.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.VisualBasic.Analyzers (1)
MetaAnalyzers\BasicReportDiagnosticAnalyzer.vb (1)
48Return declaringSyntaxRefNode.Parent
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (276)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\AddRequiredParentheses\VisualBasicAddRequiredParenthesesDiagnosticAnalyzer.vb (1)
60Return TryCast(binary.Parent, ExpressionSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\ConvertTypeofToNameof\VisualBasicConvertTypeOfToNameOfDiagnosticAnalyzer.vb (1)
26Dim isParentValid = node.Parent.GetType() Is GetType(MemberAccessExpressionSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnnecessaryImports\VisualBasicRemoveUnnecessaryImportsDiagnosticAnalyzer.vb (2)
42If Not result.Contains(clause.Parent) Then 43Dim statement = DirectCast(clause.Parent, ImportsStatementSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnnecessaryParentheses\VisualBasicRemoveUnnecessaryParenthesesDiagnosticAnalyzer.vb (1)
53Dim parentBinary = TryCast(parenthesizedExpression.Parent, BinaryExpressionSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnusedMembers\VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (3)
58Select(Function(n) If(TryCast(n, TypeStatementSyntax)?.Parent, n)). 68Dim declarator = TryCast(modifiedIdentifier?.Parent, VariableDeclaratorSyntax) 69Dim field = TryCast(declarator?.Parent, FieldDeclarationSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnusedParametersAndValues\VisualBasicRemoveUnusedParametersAndValuesDiagnosticAnalyzer.vb (1)
56Dim methodSyntax = TryCast(node.Parent, MethodBlockBaseSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseAutoProperty\Utilities.vb (2)
10Dim declarator = DirectCast(identifier.Parent, VariableDeclaratorSyntax) 18Dim field = DirectCast(declarator.Parent, FieldDeclarationSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseAutoProperty\VisualBasicUseAutoPropertyAnalyzer.vb (3)
70Dim declarator = TryCast(variable.Parent, VariableDeclaratorSyntax) 96Dim accessor = TryCast(TryCast(getMethod.DeclaringSyntaxReferences(0).GetSyntax(cancellationToken), AccessorStatementSyntax)?.Parent, AccessorBlockSyntax) 119Dim setAccessor = TryCast(TryCast(setMethod.DeclaringSyntaxReferences(0).GetSyntax(cancellationToken), AccessorStatementSyntax)?.Parent, AccessorBlockSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseInferredMemberName\VisualBasicUseInferredMemberNameDiagnosticAnalyzer.vb (3)
43Dim argument = DirectCast(nameColonEquals.Parent, SimpleArgumentSyntax) 64If Not fieldInitializer.Parent.Parent.IsKind(SyntaxKind.AnonymousObjectCreationExpression) Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ArgumentSyntaxExtensions.vb (2)
30Dim argumentList = TryCast(argument.Parent, ArgumentListSyntax) 36Dim symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\DirectiveSyntaxExtensions.vb (3)
26While node IsNot Nothing AndAlso (node.Parent IsNot Nothing OrElse TypeOf node Is StructuredTriviaSyntax) 27If node.Parent IsNot Nothing Then 28node = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (33)
16expression = DirectCast(expression.Parent, ExpressionSyntax) 38(expression.IsParentKind(SyntaxKind.QualifiedName) AndAlso DirectCast(expression.Parent, QualifiedNameSyntax).Left Is expression) OrElse 39(expression.IsParentKind(SyntaxKind.SimpleMemberAccessExpression) AndAlso DirectCast(expression.Parent, MemberAccessExpressionSyntax).Expression Is expression) 59DirectCast(expression.Parent, MemberAccessExpressionSyntax).Name Is expression 64Return TypeOf expression?.Parent Is MemberAccessExpressionSyntax AndAlso 65DirectCast(expression.Parent, MemberAccessExpressionSyntax).Name Is expression 81DirectCast(expression.Parent, QualifiedNameSyntax).Right Is expression 87DirectCast(expression.Parent, QualifiedNameSyntax).Left Is expression 156Dim unaryParent = TryCast(expression.WalkUpParentheses().Parent, UnaryExpressionSyntax) 279Dim simpleArgument = TryCast(expression?.Parent, SimpleArgumentSyntax) 290Dim argumentList = TryCast(simpleArgument.Parent, ArgumentListSyntax) 293Dim parent = argumentList.Parent 328expression = TryCast(expression.Parent, ExpressionSyntax) 337Dim assignmentStatement = DirectCast(expression.Parent, AssignmentStatementSyntax) 344expression.Parent.IsParentKind(SyntaxKind.SimpleArgument) Then 372expression = TryCast(expression.Parent, ExpressionSyntax) 380If TypeOf expression.Parent Is AssignmentStatementSyntax Then 381Dim assignmentStatement = DirectCast(expression.Parent, AssignmentStatementSyntax) 392If TypeOf expression.Parent Is MemberAccessExpressionSyntax Then 393Dim memberAccess = DirectCast(expression.Parent, MemberAccessExpressionSyntax) 498If TypeOf expression.Parent Is InvocationExpressionSyntax Then 551If TypeOf expression.Parent Is BinaryExpressionSyntax OrElse 552TypeOf expression.Parent Is AssignmentStatementSyntax OrElse 553TypeOf expression.Parent Is WhileOrUntilClauseSyntax OrElse 554TypeOf expression.Parent Is SingleLineLambdaExpressionSyntax OrElse 555TypeOf expression.Parent Is AwaitExpressionSyntax Then 572If TypeOf expression.Parent Is ExpressionRangeVariableSyntax AndAlso 573TypeOf expression.Parent.Parent Is QueryClauseSyntax Then 574Dim rangeVariable = DirectCast(expression.Parent, ExpressionRangeVariableSyntax) 575Dim selectClause = TryCast(rangeVariable.Parent, SelectClauseSyntax) 584Dim queryExpression = TryCast(selectClause.Parent, QueryExpressionSyntax) 589Dim aggregateClause = TryCast(selectClause.Parent, AggregateClauseSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\InvocationExpressionSyntaxExtensions.vb (1)
60Return DirectCast(invocationExpression.Parent, ConditionalAccessExpressionSyntax).Expression
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\MemberAccessExpressionSyntaxExtensions.vb (8)
50If TypeOf memberAccess.Parent Is InvocationExpressionSyntax Then 51statement = memberAccess.Parent.Parent 54statement = memberAccess.Parent 60DirectCast(statement.Parent, ConstructorBlockSyntax).Statements.First() Is statement 111TypeOf current.Parent Is ObjectCreationExpressionSyntax Then 112Return DirectCast(current.Parent, ExpressionSyntax) 115current = current.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ParenthesizedExpressionSyntaxExtensions.vb (22)
139Dim interpolation = DirectCast(node.Parent, InterpolationSyntax) 158If node.Parent.IsParentKind(SyntaxKind.ObjectCollectionInitializer) AndAlso 159DirectCast(node.Parent.Parent, ObjectCollectionInitializerSyntax).Initializer Is node.Parent Then 166If node.Parent.IsParentKind(SyntaxKind.CollectionInitializer) AndAlso 167node.Parent.Parent.IsParentKind(SyntaxKind.ObjectCollectionInitializer) AndAlso 168DirectCast(node.Parent.Parent.Parent, ObjectCollectionInitializerSyntax).Initializer Is node.Parent.Parent Then 280If TypeOf node.Parent Is ArgumentSyntax Then 284Dim argument = DirectCast(node.Parent, ArgumentSyntax) 301Dim parentInvocation = DirectCast(node.Parent, InvocationExpressionSyntax) 354Dim parentExpression = TryCast(node.Parent, ExpressionSyntax) 455If (node.Parent.Kind = SyntaxKind.InvocationExpression OrElse 456node.Parent.Kind = SyntaxKind.IsExpression OrElse 457node.Parent.Kind = SyntaxKind.TypeOfIsExpression OrElse 458node.Parent.Kind = SyntaxKind.TypeOfIsNotExpression) Then 468node.Parent.Kind = SyntaxKind.XmlEmbeddedExpression Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SemanticModelExtensions.vb (55)
114type.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then 115If type.Parent.Parent.IsParentKind(SyntaxKind.FieldDeclaration) OrElse 116type.Parent.Parent.IsParentKind(SyntaxKind.EventStatement) Then 117Dim variableDeclarator = DirectCast(type.Parent.Parent, VariableDeclaratorSyntax) 128type.Parent.IsParentKind(SyntaxKind.AsNewClause) AndAlso 129type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then 130If type.Parent.Parent.Parent.IsParentKind(SyntaxKind.FieldDeclaration) OrElse 131type.Parent.Parent.Parent.IsParentKind(SyntaxKind.EventStatement) Then 132Dim variableDeclarator = DirectCast(type.Parent.Parent.Parent, VariableDeclaratorSyntax) 141If type.Parent.IsParentKind(SyntaxKind.DelegateFunctionStatement) OrElse 142type.Parent.IsParentKind(SyntaxKind.FunctionStatement) OrElse 143type.Parent.IsParentKind(SyntaxKind.PropertyStatement) OrElse 144type.Parent.IsParentKind(SyntaxKind.EventStatement) OrElse 145type.Parent.IsParentKind(SyntaxKind.OperatorStatement) Then 147type.Parent.Parent, cancellationToken).DeclaredAccessibility 152type.Parent.IsParentKind(SyntaxKind.Parameter) AndAlso 153type.Parent.Parent.IsParentKind(SyntaxKind.ParameterList) Then 154If type.Parent.Parent.Parent.IsParentKind(SyntaxKind.DelegateFunctionStatement) OrElse 155type.Parent.Parent.Parent.IsParentKind(SyntaxKind.FunctionStatement) OrElse 156type.Parent.Parent.Parent.IsParentKind(SyntaxKind.PropertyStatement) OrElse 157type.Parent.Parent.Parent.IsParentKind(SyntaxKind.OperatorStatement) OrElse 158type.Parent.Parent.Parent.IsParentKind(SyntaxKind.SubNewStatement) OrElse 159type.Parent.Parent.Parent.IsParentKind(SyntaxKind.SubStatement) Then 161type.Parent.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility 233If TypeOf topExpression.Parent Is ArgumentSyntax Then 234Dim argument = DirectCast(topExpression.Parent, ArgumentSyntax) 241Dim argumentList = TryCast(argument.Parent, ArgumentListSyntax) 244Dim member = TryCast(semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\StatementSyntaxExtensions.vb (1)
745DirectCast(statement.Parent, ConstructorBlockSyntax).Statements.FirstOrDefault() Is statement Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (24)
20node.Parent.IsKind(kind) 26IsKind(node.Parent, kind1, kind2) 32IsKind(node.Parent, kind1, kind2, kind3) 682singleLineIf = DirectCast(executableBlock.Parent, SingleLineIfStatementSyntax) 731current = singleLineIf.Parent 789DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 795node.Parent.IsAnyAssignmentStatement() AndAlso 796DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 808node.Parent.IsCompoundAssignmentStatement() AndAlso 809DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 987node = DirectCast(node.Parent, ExpressionSyntax) 996TypeOf node.Parent IsNot ConditionalAccessExpressionSyntax 998node = TryCast(node.Parent, ExpressionSyntax) 1028If TypeOf node?.Parent Is ConditionalAccessExpressionSyntax AndAlso 1029DirectCast(node.Parent, ConditionalAccessExpressionSyntax).Expression Is node Then 1031node = DirectCast(node.Parent, ExpressionSyntax) 1034If TypeOf node?.Parent Is ConditionalAccessExpressionSyntax AndAlso 1035DirectCast(node.Parent, ConditionalAccessExpressionSyntax).WhenNotNull Is node Then 1037node = DirectCast(node.Parent, ExpressionSyntax) 1051While TypeOf node?.Parent Is ConditionalAccessExpressionSyntax 1052Dim conditionalParent = DirectCast(node.Parent, ConditionalAccessExpressionSyntax) 1096current = current.Parent 1219Dim parent As SyntaxNode = node.Parent 1260Dim parent As SyntaxNode = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxTreeExtensions.vb (2)
71current = current.Parent 92node = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\VariableDeclaratorSyntaxExtensions.vb (1)
54Not DirectCast(variableDeclarator.Parent, FieldDeclarationSyntax).Modifiers.Any(SyntaxKind.ConstKeyword) Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\DefaultOperationProvider.vb (12)
84If previousToken.Parent.Parent IsNot Nothing AndAlso TypeOf previousToken.Parent.Parent Is ParameterSyntax Then 95currentToken.Parent.Parent IsNot Nothing AndAlso TypeOf currentToken.Parent.Parent Is ParameterSyntax Then 137Dim [imports] = DirectCast(previousImports.Parent, CompilationUnitSyntax).Imports 185TypeOf xmlDeclaration.Parent Is XmlDocumentSyntax AndAlso 186TypeOf xmlDeclaration.Parent.Parent IsNot XmlNodeSyntax Then 193TypeOf startTag.Parent Is XmlElementSyntax AndAlso 194TypeOf startTag.Parent.Parent IsNot XmlNodeSyntax Then 201TypeOf emptyTag.Parent IsNot XmlNodeSyntax Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\FormattingHelpers.vb (6)
201If token.Parent.Parent Is Nothing Then 207token.Parent.Parent.Kind = SyntaxKind.XmlElement Then 208Dim xmlElement = DirectCast(token.Parent.Parent, XmlElementSyntax) 218token.Parent.Parent.Kind = SyntaxKind.XmlElement Then 219Dim xmlElement = DirectCast(token.Parent.Parent, XmlElementSyntax) 278If token.Parent.Parent Is Nothing Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Rules\ElasticTriviaFormattingRule.vb (7)
117currentToken.Parent.Parent.Kind = SyntaxKind.ObjectCollectionInitializer Then 151previousToken.Parent.Parent.Kind = SyntaxKind.ObjectCollectionInitializer Then 159previousToken.Parent.Parent.Kind = SyntaxKind.ObjectCollectionInitializer Then 167currentToken.Parent.Parent.Kind = SyntaxKind.CollectionInitializer Then 180currentToken.Parent.Parent.Kind = SyntaxKind.ObjectCollectionInitializer Then 188If attributeNode IsNot Nothing AndAlso TypeOf attributeNode.Parent Is StatementSyntax AndAlso 258Return TryCast(node, TStatement) IsNot Nothing AndAlso TryCast(node.Parent, TBlock) IsNot Nothing
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Rules\NodeBasedFormattingRule.vb (6)
208outerBlock = outerBlock.Parent 229If TypeOf node.Parent IsNot XmlNodeSyntax Then 244If TypeOf xmlNode.Parent IsNot XmlNodeSyntax Then 249If TypeOf xmlNode.Parent IsNot XmlNodeSyntax Then 255If TypeOf xmlNode.Parent Is XmlEmbeddedExpressionSyntax Then 267Dim element = TryCast(xmlNode.Parent, XmlElementSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\RefactoringHelpers\VisualBasicRefactoringHelpers.vb (9)
74Yield node.Parent 79If TypeOf node Is ForEachStatementSyntax And TypeOf node.Parent Is ForEachBlockSyntax Then 81Yield foreachStatement.Parent 84If TypeOf node Is ForStatementSyntax And TypeOf node.Parent Is ForBlockSyntax Then 86Yield forStatement.Parent 91If TypeOf declarator.Parent Is LocalDeclarationStatementSyntax Then 92Dim localDeclarationStatement = CType(declarator.Parent, LocalDeclarationStatementSyntax) 103Return (TypeOf node Is ModifiedIdentifierSyntax) AndAlso (TypeOf node.Parent Is ParameterSyntax) AndAlso (CType(node.Parent, ParameterSyntax).Identifier Is node)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (5)
247TypeOf argument.Parent Is ArgumentListSyntax AndAlso 248TypeOf argument.Parent.Parent Is AttributeSyntax Then 321Dim parent As SyntaxNode = node.Parent 331parent = current.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SyntaxFacts\VisualBasicAccessibilityFacts.vb (5)
60Not declaration.Parent.IsKind(SyntaxKind.ModuleBlock) 64CanHaveAccessibility(declaration.Parent), 69CanHaveAccessibility(declaration.Parent), 155Return GetModifierTokens(declaration.Parent) 161Return GetModifierTokens(declaration.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SyntaxFacts\VisualBasicBlockFacts.vb (2)
24Return If(IsExecutableBlock(statement.Parent), statement.Parent, Nothing)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SyntaxFacts\VisualBasicSyntaxFacts.vb (47)
169Dim memberAccess = TryCast(node?.Parent, MemberAccessExpressionSyntax) 200DirectCast(node.Parent, SimpleImportsClauseSyntax).Name Is node 247Dim memberAccess = TryCast(token.Parent.Parent, MemberAccessExpressionSyntax) 256Dim memberAccess = TryCast(token.Parent.Parent, MemberAccessExpressionSyntax) 633identifierName.Parent.IsParentKind(SyntaxKind.SimpleArgument) AndAlso 634identifierName.Parent.Parent.IsParentKind(SyntaxKind.ArgumentList) AndAlso 635identifierName.Parent.Parent.Parent.IsParentKind(SyntaxKind.Attribute) 650Dim parent = node.Parent 657node = node.Parent 672initializedInstance = identifier.Parent.Parent.Parent 681Dim namedFieldInit = TryCast(identifier?.Parent, NamedFieldInitializerSyntax) 683Return TypeOf namedFieldInit?.Parent Is AnonymousObjectCreationExpressionSyntax AndAlso 689If TypeOf node.Parent Is ArrayCreationExpressionSyntax Then 690creationExpression = node.Parent 692ElseIf TypeOf node.Parent Is ObjectCollectionInitializerSyntax AndAlso 693TypeOf node.Parent.Parent Is ObjectCreationExpressionSyntax Then 694creationExpression = node.Parent.Parent 718If TypeOf node Is MethodBlockBaseSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 722If TypeOf node Is MethodBaseSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 726If TypeOf node Is PropertyStatementSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 730If TypeOf node Is EventStatementSyntax AndAlso TypeOf node.Parent IsNot EventBlockSyntax Then 751If TypeOf node Is MethodBlockBaseSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 755If TypeOf node Is MethodBaseSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 783node = node.Parent 796If TypeOf node Is MethodStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 800If TypeOf node Is SubNewStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 804If TypeOf node Is OperatorStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 808If TypeOf node Is PropertyStatementSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 812If TypeOf node Is EventStatementSyntax AndAlso TypeOf node.Parent IsNot EventBlockSyntax Then 901Dim parent = node.Parent 904parent = parent.Parent 912parent = parent.Parent 1035Dim parent = node.Parent 1121Return IsLeftSideOfDot(node) AndAlso TryCast(node.Parent.Parent, ImplementsClauseSyntax) IsNot Nothing 1247If (node.Parent.IsKind(SyntaxKind.FieldDeclaration)) Then 1373Return node IsNot Nothing AndAlso TryCast(node.Parent, ForEachStatementSyntax)?.Expression Is node 1453Return node IsNot Nothing AndAlso TryCast(node.Parent, PropertyStatementSyntax)?.Initializer Is node 1578Return node.Parent IsNot Nothing AndAlso node.Parent.IsKind(kind)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Simplification\VisualBasicInferredMemberNameSimplifier.vb (2)
20If RemovalCausesAmbiguity(DirectCast(node.Parent, TupleExpressionSyntax).Arguments, node) Then 35Dim parentMemberInitializer As ObjectMemberInitializerSyntax = DirectCast(node.Parent, ObjectMemberInitializerSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\CastAnalyzer.vb (4)
35Dim argument = TryCast(_castNode.WalkUpParentheses().Parent, ArgumentSyntax) 59Dim parent = expression.Parent 75Dim returnedType = AsTypeInVariableDeclarator(parentEqualsValue.Parent, semanticModel) 362Dim parentNode = expression.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\SpeculationAnalyzer.vb (2)
339Debug.Assert(previousOriginalNode Is Nothing OrElse previousOriginalNode.Parent Is currentOriginalNode) 340Debug.Assert(previousReplacedNode Is Nothing OrElse previousReplacedNode.Parent Is currentReplacedNode)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (100)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\AddExplicitCast\ArgumentFixer.vb (1)
37Dim parent = newArgumentList.Parent
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\AddExplicitCast\VisualBasicAddExplicitCastCodeFixProvider.vb (1)
71Dim invocationNode = argumentList.Parent
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\VisualBasicGenerateConstructorService.vb (12)
52TryCast(node.Parent, MemberAccessExpressionSyntax).IsConstructorInitializer() AndAlso 53node.Parent.Parent.Kind = SyntaxKind.InvocationExpression 64Dim memberAccess = DirectCast(simpleName.Parent, MemberAccessExpressionSyntax) 65Dim invocation = DirectCast(memberAccess.Parent, InvocationExpressionSyntax) 100Dim name = If(simpleName.IsRightSideOfQualifiedName(), DirectCast(simpleName.Parent, NameSyntax), simpleName) 102If TypeOf name.Parent Is ObjectCreationExpressionSyntax Then 103Dim objectCreationExpression = DirectCast(name.Parent, ObjectCreationExpressionSyntax) 135Dim name = If(simpleName.IsRightSideOfQualifiedName(), DirectCast(simpleName.Parent, NameSyntax), simpleName) 137If TypeOf name.Parent Is AttributeSyntax Then 138Dim attribute = DirectCast(name.Parent, AttributeSyntax) 174Dim constructorStatements = constructor.DeclaringSyntaxReferences(0).GetSyntax(cancellationToken).Parent.GetStatements()
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateDefaultConstructors\VisualBasicGenerateDefaultConstructorsService.vb (1)
48classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(baseList.Parent, cancellationToken), INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateEnumMember\VisualBasicGenerateEnumMemberService.vb (2)
31Dim memberAccess = TryCast(identifierName.Parent, MemberAccessExpressionSyntax) 38Dim invocation = DirectCast(simpleNameOrMemberAccessExpression.Parent, InvocationExpressionSyntax)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateMethodService.vb (10)
51Dim implementsClause = DirectCast(qualifiedName.Parent, ImplementsClauseSyntax) 56Dim methodStatement = DirectCast(implementsClause.Parent, MethodStatementSyntax) 84Dim memberAccess = TryCast(simpleName?.Parent, MemberAccessExpressionSyntax) 85Dim conditionalMemberAccessInvocationExpression = TryCast(simpleName?.Parent?.Parent?.Parent, ConditionalAccessExpressionSyntax) 86Dim conditionalMemberAccessSimpleMemberAccess = TryCast(simpleName?.Parent?.Parent, ConditionalAccessExpressionSyntax) 116invocationExpressionOpt = DirectCast(simpleNameOrMemberAccessExpression.Parent, InvocationExpressionSyntax) 126ElseIf simpleNameOrMemberAccessExpression?.Parent?.IsKind(SyntaxKind.AddressOfExpression, SyntaxKind.NameOfExpression) Then
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\ImplementInterface\VisualBasicImplementInterfaceService.vb (4)
42Return TypeOf type?.Parent Is ImplementsStatementSyntax 66ElseIf TypeOf node Is TypeSyntax AndAlso TypeOf node.Parent Is ImplementsStatementSyntax Then 68implementsStatement = DirectCast(node.Parent, ImplementsStatementSyntax) 87classOrStructDecl = implementsStatement.Parent
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\Iterator\VisualBasicConvertToIteratorCodeFixProvider.vb (1)
56If identifier.Parent.Kind <> SyntaxKind.InvocationExpression Then
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeFieldReadonly\VisualBasicMakeFieldReadonlyCodeFixProvider.vb (2)
27Dim initializer = CType(declaration.Parent, VariableDeclaratorSyntax).Initializer?.Value 29initializer = TryCast(CType(declaration.Parent, VariableDeclaratorSyntax).AsClause, AsNewClauseSyntax)?.NewExpression
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeTypeAbstract\VisualBasicMakeTypeAbstractCodeFixProvider.vb (1)
36typeDeclaration = TryCast(classStatement.Parent, ClassBlockSyntax)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\RemoveUnusedParametersAndValues\VisualBasicRemoveUnusedValuesCodeFixProvider.vb (1)
75Return TryCast(declarator.Parent, LocalDeclarationStatementSyntax)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\UseAutoProperty\VisualBasicUseAutoPropertyCodeFixProvider.vb (2)
32node = node.Parent 102Dim declarator = TryCast(identifier?.Parent, VariableDeclaratorSyntax)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\UseConditionalExpression\VisualBasicUseConditionalExpressionForAssignmentCodeFixProvider.vb (1)
46Return DirectCast(declarator.Syntax.Parent, VariableDeclaratorSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationHelpers.vb (2)
216Dim variableDeclarator = TryCast(modifiedIdentifierNode.Parent, VariableDeclaratorSyntax) 218Dim fieldDecl = TryCast(variableDeclarator.Parent, FieldDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicDeclarationComparer.vb (3)
325declaration = declaration.Parent 328Dim node = declaration.Parent 345node = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\SyntaxTreeExtensions.vb (7)
323TypeOf targetToken.Parent.Parent Is NewExpressionSyntax Then 325Dim symbolInfo = semanticModel.GetSymbolInfo(DirectCast(targetToken.Parent.Parent, NewExpressionSyntax).Type(), cancellationToken) 444TypeOf targetToken.Parent.Parent Is LambdaHeaderSyntax Then 471targetToken.Parent.Parent.IsKind(SyntaxKind.Attribute) Then 691ancestor = ancestor.Parent.Parent 709ancestor = ancestor.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\VisualBasicSyntaxContext.vb (10)
148Dim methodStatement = TryCast(asClause?.Parent, MethodBaseSyntax) 219If TypeOf collectionRange.Parent Is FromClauseSyntax AndAlso TypeOf collectionRange.Parent.Parent Is QueryExpressionSyntax Then 220Dim fromClause = DirectCast(collectionRange.Parent, FromClauseSyntax) 221Dim queryExpression = DirectCast(collectionRange.Parent.Parent, QueryExpressionSyntax) 226If fromClause.Variables.FirstOrDefault() Is collectionRange AndAlso queryExpression.Clauses.FirstOrDefault() Is collectionRange.Parent Then 229ElseIf TypeOf collectionRange.Parent Is SimpleJoinClauseSyntax OrElse TypeOf collectionRange.Parent Is GroupJoinClauseSyntax Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (3)
201Return DirectCast(statement.Parent, ConstructorBlockSyntax).Statements(0) Is statement 206Dim simpleArgument = TryCast(expression.Parent, SimpleArgumentSyntax) 253Return TypeOf expression?.Parent Is MemberAccessExpressionSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ParameterSyntaxExtensions.vb (2)
16parameter.Parent.Parent.IsKind(SyntaxKind.FunctionLambdaHeader, SyntaxKind.SubLambdaHeader) Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\SimpleNameSyntaxExtensions.vb (3)
15Return DirectCast(name.Parent, MemberAccessExpressionSyntax).Expression 17Return DirectCast(name.Parent, QualifiedNameSyntax).Left 37Dim invocationExpression = DirectCast(simpleName.Parent, InvocationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Indentation\VisualBasicIndentationService.vb (2)
104currentNode = currentNode.Parent 114currentNode = currentNode.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\InitializeParameter\VisualBasicInitializeParameterService.vb (1)
29Return TryCast(TryCast(reference, AccessorStatementSyntax)?.Parent, AccessorBlockSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (26)
58Dim parent = node.Parent 159Function(nameColonEquals As NameColonEqualsSyntax) InferTypeInArgumentList(TryCast(nameColonEquals.Parent.Parent, ArgumentListSyntax), DirectCast(nameColonEquals.Parent, ArgumentSyntax)), 178Return If(parameterList.Parent IsNot Nothing, 179InferTypeInLambda(TryCast(parameterList.Parent.Parent, LambdaExpressionSyntax)), 185If TypeOf argument.Parent Is ArgumentListSyntax Then 187DirectCast(argument.Parent, ArgumentListSyntax), argument, previousToken) 190If TypeOf argument.Parent Is TupleExpressionSyntax Then 192DirectCast(argument.Parent, TupleExpressionSyntax), 232If argumentList.Parent IsNot Nothing Then 237Dim invocation = TryCast(argumentList.Parent, InvocationExpressionSyntax) 275ElseIf invocation.Parent.IsKind(SyntaxKind.ConditionalAccessExpression) Then 276targetExpression = DirectCast(invocation.Parent, ConditionalAccessExpressionSyntax).Expression 292Dim creation = TryCast(argumentList.Parent, ObjectCreationExpressionSyntax) 317Dim attribute = TryCast(argumentList.Parent, AttributeSyntax) 603Dim variableDeclarator = DirectCast(equalsValue.Parent, VariableDeclaratorSyntax) 627Dim propertySyntax = CType(equalsValue.Parent, PropertyStatementSyntax) 799If TypeOf switchStatementSyntax.Parent Is SelectBlockSyntax Then 800Dim firstCase = DirectCast(switchStatementSyntax.Parent, SelectBlockSyntax).CaseBlocks.SelectMany(Function(c) c.CaseStatement.Cases).OfType(Of SimpleCaseClauseSyntax).FirstOrDefault() 913memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression) Then 914Return InferTypes(DirectCast(memberAccessExpression.Parent, ExpressionSyntax)) 933Dim invocation = DirectCast(memberAccessExpression.Parent, InvocationExpressionSyntax) 1065Dim objectInitializer = TryCast(collectionInitializer.Parent, ObjectCollectionInitializerSyntax) 1066Dim objectCreation = TryCast(objectInitializer?.Parent, ObjectCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\SemanticModelReuse\VisualBasicSemanticModelReuseLanguageService.vb (2)
28Dim container = accessor.Parent 49node = node.Parent
Microsoft.CodeAnalysis.VisualBasic.Features (438)
ChangeSignature\ChangeSignatureFormattingRule.vb (2)
23If node.Parent IsNot Nothing Then 27node.Parent.GetFirstToken(),
ChangeSignature\VisualBasicChangeSignatureService.vb (2)
169current = current.Parent 267matchingNode = matchingNode.Parent
CodeFixes\GenerateEndConstruct\GenerateEndConstructCodeFixProvider.vb (11)
83If endStatement.Parent.Kind = SyntaxKind.PropertyBlock Then 87Function(c) GeneratePropertyEndConstructAsync(context.Document, DirectCast(endStatement.Parent, PropertyBlockSyntax), c), 94If endStatement?.Parent?.Parent.Kind = SyntaxKind.PropertyBlock Then 98Function(c) GeneratePropertyEndConstructAsync(context.Document, DirectCast(endStatement.Parent.Parent, PropertyBlockSyntax), c), 119Dim begin = GetBeginStatement(node.Parent) 216Dim nextNode = endStatement.Parent.GetLastToken().GetNextToken().Parent 221Dim updatedParent = DirectCast(endStatement.Parent, EnumBlockSyntax).WithEndEnumStatement(SyntaxFactory.EndEnumStatement()) 222Dim updatedDocument = Await document.ReplaceNodeAsync(endStatement.Parent, updatedParent.WithAdditionalAnnotations(Formatter.Annotation), cancellationToken).ConfigureAwait(False) 251Dim insertionPoint = GetBeginStatement(endStatement.Parent).FullSpan.End
CodeFixes\GenerateEvent\GenerateEventCodeFixProvider.vb (3)
247If Not node.IsParentKind(SyntaxKind.ImplementsClause) OrElse Not node.Parent.IsParentKind(SyntaxKind.EventStatement) Then 264Dim boundEvent = TryCast(semanticModel.GetDeclaredSymbol(node.Parent.Parent, cancellationToken), IEventSymbol)
CodeFixes\Suppression\VisualBasicSuppressionCodeFixProvider.vb (1)
211Dim attributeList = TryCast(attributeSyntax.Parent, AttributeListSyntax)
CodeLens\VisualBasicDisplayInfoService.vb (3)
52Return GetDisplayNode(node.Parent) 132If IsAccessorForDefaultProperty(symbol) AndAlso node.Parent.IsKind(SyntaxKind.PropertyBlock) Then 133Return GetDisplayName(semanticModel, node.Parent)
CodeRefactorings\InlineTemporary\VisualBasicInlineTemporaryCodeRefactoringProvider.ReferenceRewriter.vb (1)
69node.Parent.IsParentKind(SyntaxKind.TupleExpression) Then
CodeRefactorings\InlineTemporary\VisualBasicInlineTemporaryCodeRefactoringProvider.vb (10)
45Dim localDeclarationStatement = DirectCast(variableDeclarator.Parent, LocalDeclarationStatementSyntax) 155Dim variableDeclarator = DirectCast(modifiedIdentifier.Parent, VariableDeclaratorSyntax) 156Dim localDeclaration = DirectCast(variableDeclarator.Parent, LocalDeclarationStatementSyntax) 250Dim variableDeclarator = DirectCast(modifiedIdentifier.Parent, VariableDeclaratorSyntax) 251Dim localDeclaration = DirectCast(variableDeclarator.Parent, LocalDeclarationStatementSyntax) 253Return localDeclaration.Parent 257Dim variableDeclarator = DirectCast(modifiedIdentifier.Parent, VariableDeclaratorSyntax) 258Dim localDeclaration = DirectCast(variableDeclarator.Parent, LocalDeclarationStatementSyntax) 272Dim variableDeclarator = DirectCast(modifiedIdentifier.Parent, VariableDeclaratorSyntax) 273Dim localDeclaration = DirectCast(variableDeclarator.Parent, LocalDeclarationStatementSyntax)
CodeRefactorings\MoveType\VisualBasicMoveTypeService.vb (1)
34Return TryCast(typeStatement?.Parent, TypeBlockSyntax)
CodeRefactorings\SyncNamespace\VisualBasicChangeNamespaceService.vb (2)
44old = nameRef.Parent 55old = nameRef.Parent
Completion\CompletionProviders\CrefCompletionProvider.vb (1)
140Dim xmlAttribute = DirectCast(token.Parent.Parent, XmlAttributeSyntax)
Completion\CompletionProviders\ImplementsClauseCompletionProvider.vb (1)
271parent = parent.Parent
Completion\CompletionProviders\NamedParameterCompletionProvider.vb (1)
77Dim parameterLists = GetParameterLists(semanticModel, position, argumentList.Parent, cancellationToken)
Completion\CompletionProviders\XmlDocCommentCompletionProvider.vb (1)
203Dim element = TryCast(endTag.Parent, XmlElementSyntax)
Completion\KeywordRecommenders\Declarations\ImplementsKeywordRecommender.vb (2)
44TypeOf typeStatement.Parent Is TypeBlockSyntax AndAlso 45DirectCast(typeStatement.Parent, TypeBlockSyntax).Implements.Count > 0 Then
Completion\KeywordRecommenders\RecommendationHelpers.vb (1)
23Return If(node Is Nothing, Nothing, node.Parent)
Completion\KeywordRecommenders\Statements\FinallyKeywordRecommender.vb (1)
58parent = parent.Parent
ConvertAutoPropertyToFullProperty\VisualBasicConvertAutoPropertyToFullProperty.vb (1)
86Return DirectCast(syntaxNode, TypeStatementSyntax).Parent
Debugging\DataTipInfoGetter.vb (3)
52expression = DirectCast(expression.Parent, ExpressionSyntax) 56If expression.Parent.IsKind(SyntaxKind.InvocationExpression) Then 57expression = DirectCast(expression.Parent, ExpressionSyntax)
Debugging\ProximityExpressionsGetter.RelevantExpressionsCollector.vb (8)
24TypeOf node.Parent Is TypeArgumentListSyntax OrElse 25TypeOf node.Parent Is AsClauseSyntax OrElse 26(node.Parent.Parent IsNot Nothing AndAlso TypeOf node.Parent.Parent Is AsClauseSyntax) OrElse 27TypeOf node.Parent Is ImplementsClauseSyntax Then 31If node.Parent.IsKind(SyntaxKind.NameColonEquals) Then
Debugging\ProximityExpressionsGetter.Worker.vb (4)
103If TypeOf _parentStatement.Parent Is MethodBlockBaseSyntax Then 104Dim methodBlock = DirectCast(_parentStatement.Parent, MethodBlockBaseSyntax) 120If TypeOf _parentStatement.Parent Is CatchBlockSyntax Then 121Dim catchBlock = DirectCast(_parentStatement.Parent, CatchBlockSyntax)
EditAndContinue\BreakpointSpans.vb (12)
84node = node.Parent 244If node.Parent.IsKind(SyntaxKind.PropertyBlock) Then 274If name.ArrayBounds IsNot Nothing OrElse DirectCast(name.Parent, VariableDeclaratorSyntax).Names.Count > 1 Then 277Return CreateSpan(name.Parent) 335Dim query = DirectCast(fromClause.Parent, QueryExpressionSyntax) 377If collectionRangeVariable.Parent.Kind = SyntaxKind.FromClause Then 378Dim fromClause = DirectCast(collectionRangeVariable.Parent, FromClauseSyntax) 379Dim query = DirectCast(fromClause.Parent, QueryExpressionSyntax) 441If expression Is Nothing OrElse expression.Parent Is Nothing Then 445Select Case expression.Parent.Kind 447Dim joinCondition = DirectCast(expression.Parent, JoinConditionSyntax) 451Dim lambda = DirectCast(expression.Parent, SingleLineLambdaExpressionSyntax)
EditAndContinue\DeclarationBody\FieldOrPropertyDeclarationBody.vb (5)
54Return OneOrMany.Create(OtherActiveStatementContainer.Parent) 66OtherActiveStatementContainer.Parent, 67newFieldBody.OtherActiveStatementContainer.Parent, 73Return comparer.ComputeMatch(OtherActiveStatementContainer.Parent, newFieldBody.OtherActiveStatementContainer.Parent, knownMatches)
EditAndContinue\DeclarationBody\FieldWithMultipleAsNewClauseDeclarationBody.vb (2)
24Return DirectCast(DirectCast(_modifedIdentifier.Parent, VariableDeclaratorSyntax).AsClause, AsNewClauseSyntax).NewExpression 53Return _modifedIdentifier.Parent
EditAndContinue\DeclarationBody\VisualBasicLambdaBody.vb (18)
19Debug.Assert(TypeOf node.Parent Is LambdaExpressionSyntax OrElse TypeOf node Is ExpressionSyntax) 37Return If(TypeOf _node.Parent Is LambdaExpressionSyntax, _node.Parent, _node) 46Return model.AnalyzeDataFlow(If(TryCast(_node.Parent, LambdaExpressionSyntax), _node)).CapturedInside 68If TypeOf _node.Parent Is LambdaExpressionSyntax Then 70Dim comparer = New SyntaxComparer(_node.Parent, newLambdaBody._node.Parent, _node.Parent.ChildNodes(), newLambdaBody._node.Parent.ChildNodes(), matchingLambdas:=True, compareStatementSyntax:=True) 71Return comparer.ComputeMatch(_node.Parent, newLambdaBody._node.Parent, knownMatches) 74Dim comparer = New SyntaxComparer(_node.Parent, newLambdaBody._node.Parent, {_node}, {newLambdaBody._node}, matchingLambdas:=False, compareStatementSyntax:=True) 75Return comparer.ComputeMatch(_node.Parent, newLambdaBody._node.Parent, knownMatches) 82If TypeOf _node.Parent Is LambdaExpressionSyntax Then 83Dim oldSingleLineLambda = TryCast(_node.Parent, SingleLineLambdaExpressionSyntax) 84Dim newSingleLineLambda = TryCast(newLambdaBody._node.Parent, SingleLineLambdaExpressionSyntax)
EditAndContinue\SyntaxComparer.vb (3)
694nodeOpt.Parent.IsKind(SyntaxKind.GroupByClause) AndAlso 695nodeOpt.SpanStart < DirectCast(nodeOpt.Parent, GroupByClauseSyntax).ByKeyword.SpanStart Then 858If nodeOpt IsNot Nothing AndAlso nodeOpt.Parent.IsParentKind(SyntaxKind.AttributesStatement) Then
EditAndContinue\SyntaxUtilities.vb (29)
48Dim variableDeclarator = DirectCast(node.Parent, VariableDeclaratorSyntax) 49Dim fieldDeclaration = DirectCast(variableDeclarator.Parent, FieldDeclarationSyntax) 107Return node.Parent.Parent.IsKind(SyntaxKind.FieldDeclaration) AndAlso DirectCast(node.Parent, VariableDeclaratorSyntax).Names.Count > 1 114Return node.Parent.IsKind(SyntaxKind.FieldDeclaration) AndAlso node.Names.Count = 1 160If syntax.Parent.Kind = SyntaxKind.EqualsValue Then 161If syntax.Parent.Parent.IsKind(SyntaxKind.PropertyStatement) Then 165Debug.Assert(syntax.Parent.Parent.IsKind(SyntaxKind.VariableDeclarator)) 166Debug.Assert(syntax.Parent.Parent.Parent.IsKind(SyntaxKind.FieldDeclaration)) 168ElseIf syntax.Parent.Kind = SyntaxKind.AsNewClause Then 169If syntax.Parent.Parent.IsKind(SyntaxKind.PropertyStatement) Then 173Debug.Assert(syntax.Parent.Parent.IsKind(SyntaxKind.VariableDeclarator)) 174Debug.Assert(syntax.Parent.Parent.Parent.IsKind(SyntaxKind.FieldDeclaration)) 181Debug.Assert(syntax.Parent.IsKind(SyntaxKind.ModifiedIdentifier)) 182Debug.Assert(syntax.Parent.Parent.IsKind(SyntaxKind.VariableDeclarator)) 183Debug.Assert(syntax.Parent.Parent.Parent.IsKind(SyntaxKind.FieldDeclaration)) 212Not propertyDeclaration.Parent.IsKind(SyntaxKind.PropertyBlock) AndAlso
EditAndContinue\VisualBasicEditAndContinueAnalyzer.vb (62)
48If Not current.Parent.IsKind(SyntaxKind.PropertyBlock) Then 54If current.Parent.IsKind(SyntaxKind.FieldDeclaration) Then 67If current.Parent.Parent.IsKind(SyntaxKind.FieldDeclaration) Then 73current = current.Parent 92If declaration.Kind = SyntaxKind.ModifiedIdentifier AndAlso declaration.Parent.Kind = SyntaxKind.VariableDeclarator Then 93Dim variableDeclarator = CType(declaration.Parent, VariableDeclaratorSyntax) 128While node.Span.Length < span.Length AndAlso node.Parent.SpanStart = position 129node = node.Parent 130partnerStatement = partnerStatement?.Parent 139node = node.Parent 141partnerStatement = partnerStatement.Parent 149node.Parent.IsKind(SyntaxKind.VariableDeclarator) AndAlso 150DirectCast(node.Parent, VariableDeclaratorSyntax).Names.Count = 1 Then 151node = node.Parent 172node = node.Parent 211Return (DirectCast(declaration.Parent, PropertyBlockSyntax).PropertyStatement.ParameterList, 343Dim parent = statement.Parent 410AreEquivalentIgnoringLambdaBodies(DirectCast(oldStatement.Parent, VariableDeclaratorSyntax).AsClause, 411DirectCast(newStatement.Parent, VariableDeclaratorSyntax).AsClause) 435Return modifiedIdentifier.Parent.IsKind(SyntaxKind.VariableDeclarator) AndAlso 436DirectCast(modifiedIdentifier.Parent, VariableDeclaratorSyntax).Names.Count > 1 453Return node.Parent.FirstAncestorOrSelf(Of TypeBlockSyntax)() ' TODO: EnbumBlock? 459Debug.Assert(declaration.Parent.IsKind(SyntaxKind.VariableDeclarator) OrElse 460declaration.Parent.IsKind(SyntaxKind.Parameter)) 462If Not declaration.Parent.IsKind(SyntaxKind.VariableDeclarator) Then 467Dim declarator = DirectCast(declaration.Parent, VariableDeclaratorSyntax) 468If declarator.Parent.IsKind(SyntaxKind.FieldDeclaration) AndAlso 469DirectCast(declarator.Parent, FieldDeclarationSyntax).Modifiers.Any(SyntaxKind.ConstKeyword) Then 634Dim ctor = TryCast(symbol.DeclaringSyntaxReferences(0).GetSyntax(cancellationToken).Parent, ConstructorBlockSyntax) 937Return If(node.IsKind(SyntaxKind.ModifiedIdentifier), node.Parent.Parent.Parent, node.Parent.Parent) 1174Return TryGetDiagnosticSpanImpl(node.Parent, editKind) 1287Return TryGetDiagnosticSpanImpl(node.Parent, editKind) 1509Return TryGetDisplayNameImpl(node.Parent, editKind) 1666Return TryGetDisplayNameImpl(node.Parent, editKind) 1823If node.Parent.IsParentKind(SyntaxKind.AttributesStatement) Then 1859If oldNode.Parent.IsParentKind(SyntaxKind.AttributesStatement) Then 1881If newNode.Parent.IsParentKind(SyntaxKind.AttributesStatement) Then 1904edit.OldNode.Parent.IsKind(SyntaxKind.VariableDeclarator) Then 1906If HasEdit(editMap, edit.OldNode.Parent.Parent, EditKind.Delete) Then 1912edit.NewNode.Parent.IsKind(SyntaxKind.VariableDeclarator) Then 1914If HasEdit(editMap, edit.NewNode.Parent.Parent, EditKind.Insert) Then 2059Debug.Assert(node.Parent.Kind = SyntaxKind.TryBlock) 2060node = node.Parent 2073Debug.Assert(node.Parent IsNot Nothing) 2074node = node.Parent 2134Return DirectCast(node.Parent, TryBlockSyntax).Span 2180Select Case node.Parent.Kind() 2195node = node.Parent 2228Return awaitExpression.Parent.Parent Is containingStatementPart 2236Return awaitExpression.Parent.Parent Is containingStatementPart 2241Return awaitExpression.Parent.Parent.Parent Is containingStatementPart
EncapsulateField\VisualBasicEncapsulateFieldService.vb (1)
96Return TypeOf field.Parent Is TypeBlockSyntax
ExtractMethod\Extensions.vb (6)
35Return statement.Parent 43If node.Parent.IsStatementContainerNode() AndAlso 45node.Parent.ContainStatement(DirectCast(node, ExecutableStatementSyntax)) Then 49node = node.Parent 84node = node.Parent 464Return TypeOf node Is ExpressionSyntax AndAlso TypeOf node.Parent Is CastExpressionSyntax
ExtractMethod\VisualBasicMethodExtractor.VisualBasicCodeGenerator.CallSiteContainerRewriter.vb (3)
42Contract.ThrowIfFalse(Me._firstStatementOrFieldToReplace.Parent Is Me._lastStatementOrFieldToReplace.Parent) 59Return Me._firstStatementOrFieldToReplace.Parent
ExtractMethod\VisualBasicMethodExtractor.VisualBasicCodeGenerator.ExpressionCodeGenerator.vb (3)
39expression.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then 41Dim varDecl = DirectCast(expression.Parent.Parent, VariableDeclaratorSyntax)
ExtractMethod\VisualBasicSelectionResult.vb (5)
60Return Me.GetFirstStatementUnderContainer().Parent 122Dim castExpression = TryCast(node.Parent, CastExpressionSyntax) 213If statement.Parent.ContainStatement(statement) Then 236Contract.ThrowIfFalse(lastStatement.Parent Is (GetFirstStatementUnderContainer()).Parent) 246containingScope.Parent _
GenerateMember\GenerateVariable\VisualBasicGenerateVariableService.vb (7)
39Dim implementsClause = DirectCast(qualifiedName.Parent, ImplementsClauseSyntax) 43Dim propertyBlock = TryCast(implementsClause.Parent, PropertyBlockSyntax) 45DirectCast(implementsClause.Parent, PropertyStatementSyntax), 75Dim memberAccess = TryCast(identifierName.Parent, MemberAccessExpressionSyntax) 82Dim conditionalMemberAccess = TryCast(identifierName.Parent.Parent, ConditionalAccessExpressionSyntax) 94Not simpleNameOrMemberAccessExpression.Parent.IsKind(SyntaxKind.NameOfExpression, SyntaxKind.NamedFieldInitializer) Then
GenerateType\VisualBasicGenerateTypeService.vb (54)
56expression.Parent.IsParentKind(SyntaxKind.TypeParameterMultipleConstraintClause) Then 58Dim typeConstraint = DirectCast(expression.Parent, TypeConstraintSyntax) 59Dim constraintClause = DirectCast(typeConstraint.Parent, TypeParameterMultipleConstraintClauseSyntax) 99nameOrMemberAccessExpression = DirectCast(simpleName.Parent, ExpressionSyntax) 109If TypeOf nameOrMemberAccessExpression.Parent Is BinaryExpressionSyntax Then 146simpleName.Parent Is token.Parent Then 154If nameOrMemberAccessExpression.Parent.IsKind(SyntaxKind.InvocationExpression) Then 162Dim parent = TryCast(simpleName.Parent, QualifiedNameSyntax) 194If simpleName.Parent IsNot Nothing AndAlso TypeOf simpleName.Parent IsNot QualifiedNameSyntax Then 204If nameOrMemberAccessExpression.Parent IsNot Nothing AndAlso TypeOf nameOrMemberAccessExpression.Parent Is QualifiedNameSyntax Then 228nameOrMemberAccessExpression.Parent.IsParentKind(SyntaxKind.Parameter) AndAlso 229nameOrMemberAccessExpression.Parent.Parent.IsParentKind(SyntaxKind.ParameterList) AndAlso 230(nameOrMemberAccessExpression.Parent.Parent.Parent.IsParentKind(SyntaxKind.AddHandlerAccessorStatement) OrElse 231nameOrMemberAccessExpression.Parent.Parent.Parent.IsParentKind(SyntaxKind.RemoveHandlerAccessorStatement)) Then 245If (nameOrMemberAccessExpression.IsKind(SyntaxKind.SimpleMemberAccessExpression) OrElse (nameOrMemberAccessExpression.Parent IsNot Nothing AndAlso nameOrMemberAccessExpression.IsParentKind(SyntaxKind.SimpleMemberAccessExpression))) _ 252outerMostMemberAccessExpression = DirectCast(nameOrMemberAccessExpression.Parent, ExpressionSyntax) 264If TypeOf nameOrMemberAccessExpression.Parent Is ObjectCreationExpressionSyntax Then 265Dim objectCreationExpressionOpt = DirectCast(nameOrMemberAccessExpression.Parent, ObjectCreationExpressionSyntax) 313nameOrMemberAccessExpression.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then 314variableDeclarator = DirectCast(nameOrMemberAccessExpression.Parent.Parent, VariableDeclaratorSyntax) 336ElseIf TypeOf nameOrMemberAccessExpression.Parent Is CastExpressionSyntax Then 340Dim expressionToBeCasted = DirectCast(nameOrMemberAccessExpression.Parent, CastExpressionSyntax).Expression 432DirectCast(enclosingNamespace.Parent, NamespaceBlockSyntax).EndNamespaceStatement.GetLocation()) 535If TypeOf expression.Parent Is InheritsStatementSyntax Then 536If expression.Parent.Parent IsNot Nothing AndAlso TypeOf expression.Parent.Parent Is InterfaceBlockSyntax Then 543ElseIf TypeOf expression.Parent Is ImplementsStatementSyntax Then 560node.Parent IsNot Nothing AndAlso 561TypeOf node.Parent Is TypeBlockSyntax Then 563Return IsAllContainingTypeBlocksPublic(node.Parent) 567node.Parent IsNot Nothing AndAlso TypeOf node.Parent Is TypeStatementSyntax AndAlso 568node.Parent.Parent IsNot Nothing AndAlso TypeOf node.Parent.Parent Is TypeBlockSyntax Then 569Return IsAllContainingTypeBlocksPublic(node.Parent.Parent) 573node.Parent IsNot Nothing AndAlso TypeOf node.Parent Is TypeBlockSyntax Then 578node.Parent IsNot Nothing AndAlso TypeOf node.Parent Is TypeBlockSyntax Then 582node = node.Parent 675Dim fieldInitializer = TryCast(propIdentifierName.Parent, NamedFieldInitializerSyntax)
GoToDefinition\VisualBasicGoToDefinitionSymbolService.vb (6)
109node = node.Parent 121node = node.Parent 133node = node.Parent 145node = node.Parent 157node = node.Parent 169node = node.Parent
IntroduceParameter\VisualBasicIntroduceParameterCodeRefactoringProvider.vb (1)
27Return TryCast(variableDecl.Parent, LocalDeclarationStatementSyntax)
IntroduceVariable\VisualBasicIntroduceVariableService.Rewriter.vb (1)
74TypeOf node.Parent Is TupleExpressionSyntax Then
IntroduceVariable\VisualBasicIntroduceVariableService.vb (2)
77If TypeOf expression.Parent Is CallStatementSyntax Then 86expression.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then
IntroduceVariable\VisualBasicIntroduceVariableService_IntroduceLocal.vb (3)
105Dim parent = TryCast(current.Parent, SingleLineLambdaExpressionSyntax) 112current = TryCast(current.Parent, ExpressionSyntax) 132oldOutermostBlock = oldOutermostBlock.Parent
InvertIf\VisualBasicInvertIfCodeRefactoringProvider.SingleLine.vb (1)
26Return TypeOf ifNode.Parent IsNot SingleLineLambdaExpressionSyntax AndAlso
InvertIf\VisualBasicInvertIfCodeRefactoringProvider.vb (1)
70Dim parent = node.Parent
LineSeparators\VisualBasicLineSeparatorService.vb (1)
138If lastChild.Parent.Kind() = SyntaxKind.CompilationUnit Then
QuickInfo\VisualBasicSemanticQuickInfoProvider.vb (3)
121found = token.Parent.Parent 131token.Parent?.Parent.IsKind(SyntaxKind.InvocationExpression) = True Then 132found = token.Parent.Parent
RemoveUnusedVariable\VisualBasicRemoveUnusedVariableCodeFixProvider.vb (1)
37node = node.Parent
ReplaceMethodWithProperty\VisualBasicReplaceMethodWithPropertyService.vb (7)
58Return DirectCast(declaration.Parent, DeclarationStatementSyntax) 150Dim parentExpression = If(nameNode.IsRightSideOfDot(), DirectCast(nameNode.Parent, ExpressionSyntax), nameNode) 151Dim root = If(parentExpression.IsParentKind(SyntaxKind.InvocationExpression), parentExpression.Parent, parentExpression) 179Dim parentExpression = If(nameNode.IsRightSideOfDot(), DirectCast(nameNode.Parent, ExpressionSyntax), nameNode) 181Not parentExpression.Parent.IsParentKind(SyntaxKind.ExpressionStatement) Then 190parentExpression.Parent.Parent,
ReplacePropertyWithMethods\VisualBasicReplacePropertyWithMethods.vb (8)
93If TypeOf getAccessorDeclaration?.Parent Is AccessorBlockSyntax Then 94Dim block = DirectCast(getAccessorDeclaration.Parent, AccessorBlockSyntax) 126If TypeOf setAccessorDeclaration?.Parent Is AccessorBlockSyntax Then 127Dim block = DirectCast(setAccessorDeclaration.Parent, AccessorBlockSyntax) 214propertyDeclaration.Parent, 219Dim simpleNameCref = TryCast(identifierName.Parent, CrefReferenceSyntax) 224Dim qualifiedName = TryCast(identifierName.Parent, QualifiedNameSyntax) 229Return TryCast(qualifiedName.Parent, CrefReferenceSyntax)
SignatureHelp\AttributeSignatureHelpProvider.vb (1)
42TypeOf token.Parent.Parent Is AttributeSyntax
SignatureHelp\CollectionInitializerSignatureHelpProvider.vb (1)
53document, collectionInitializer.Parent, options, cancellationToken).ConfigureAwait(False)
SignatureHelp\GenericNameSignatureHelpProvider.vb (1)
52TypeOf token.Parent.Parent Is GenericNameSyntax
SignatureHelp\InvocationExpressionSignatureHelpProvider.vb (3)
53TypeOf token.Parent.Parent Is InvocationExpressionSyntax 76Dim targetExpression = If(invocationExpression.Expression Is Nothing AndAlso invocationExpression.Parent.IsKind(SyntaxKind.ConditionalAccessExpression), 77DirectCast(invocationExpression.Parent, ConditionalAccessExpressionSyntax).Expression,
SignatureHelp\MidAssignmentSignatureHelpProvider.vb (1)
31token.Parent.Parent.IsParentKind(SyntaxKind.MidAssignmentStatement)
SignatureHelp\ObjectCreationExpressionSignatureHelpProvider.vb (1)
52TypeOf token.Parent.Parent Is ObjectCreationExpressionSyntax
SignatureHelp\RaiseEventStatementSignatureHelpProvider.vb (1)
51TypeOf token.Parent.Parent Is RaiseEventStatementSyntax
SolutionExplorer\VisualBasicSolutionExplorerSymbolTreeItemProvider.vb (4)
86Dim accessibility = GetAccessibility(typeBlock.Parent, blockStatement, blockStatement.Modifiers) 98Dim accessibility = GetAccessibility(enumBlock.Parent, enumBlock.EnumStatement, enumBlock.EnumStatement.Modifiers) 114Dim accessibility = GetAccessibility(delegateStatement.Parent, delegateStatement, delegateStatement.Modifiers) 138Dim container = member.Parent
SplitOrMergeIfStatements\VisualBasicIfLikeStatementGenerator.vb (17)
28If TypeOf expression.Parent Is IfStatementSyntax AndAlso 29DirectCast(expression.Parent, IfStatementSyntax).Condition Is expression AndAlso 30TypeOf expression.Parent.Parent Is MultiLineIfBlockSyntax Then 31ifOrElseIf = expression.Parent.Parent 35If TypeOf expression.Parent Is ElseIfStatementSyntax AndAlso 36DirectCast(expression.Parent, ElseIfStatementSyntax).Condition Is expression AndAlso 37TypeOf expression.Parent.Parent Is ElseIfBlockSyntax Then 38ifOrElseIf = expression.Parent.Parent 48Dim ifBlock = DirectCast(node.Parent, MultiLineIfBlockSyntax) 66ifBlock = DirectCast(ifOrElseIf.Parent, MultiLineIfBlockSyntax) 91Return ifOrElseIf.Parent 103Dim ifBlock = DirectCast(elseIfBlock.Parent, MultiLineIfBlockSyntax) 146Dim ifBlock = DirectCast(elseIfBlock.Parent, MultiLineIfBlockSyntax)
SplitOrMergeIfStatements\VisualBasicMergeConsecutiveIfStatementsCodeRefactoringProvider.vb (4)
23If TypeOf node Is IfStatementSyntax AndAlso TypeOf node.Parent Is MultiLineIfBlockSyntax Then 32ifOrElseIf = node.Parent 46If TypeOf node Is ElseIfStatementSyntax AndAlso TypeOf node.Parent Is ElseIfBlockSyntax Then 54ifOrElseIf = node.Parent
SplitOrMergeIfStatements\VisualBasicMergeNestedIfStatementsCodeRefactoringProvider.vb (4)
23If TypeOf node Is IfStatementSyntax And TypeOf node.Parent Is MultiLineIfBlockSyntax Then 32ifOrElseIf = node.Parent 54If TypeOf node Is ElseIfStatementSyntax AndAlso TypeOf node.Parent Is ElseIfBlockSyntax Then 62ifOrElseIf = node.Parent
src\roslyn\src\Analyzers\VisualBasic\Analyzers\AddRequiredParentheses\VisualBasicAddRequiredParenthesesDiagnosticAnalyzer.vb (1)
60Return TryCast(binary.Parent, ExpressionSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\ConvertTypeofToNameof\VisualBasicConvertTypeOfToNameOfDiagnosticAnalyzer.vb (1)
26Dim isParentValid = node.Parent.GetType() Is GetType(MemberAccessExpressionSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnnecessaryImports\VisualBasicRemoveUnnecessaryImportsDiagnosticAnalyzer.vb (2)
42If Not result.Contains(clause.Parent) Then 43Dim statement = DirectCast(clause.Parent, ImportsStatementSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnnecessaryParentheses\VisualBasicRemoveUnnecessaryParenthesesDiagnosticAnalyzer.vb (1)
53Dim parentBinary = TryCast(parenthesizedExpression.Parent, BinaryExpressionSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnusedMembers\VisualBasicRemoveUnusedMembersDiagnosticAnalyzer.vb (3)
58Select(Function(n) If(TryCast(n, TypeStatementSyntax)?.Parent, n)). 68Dim declarator = TryCast(modifiedIdentifier?.Parent, VariableDeclaratorSyntax) 69Dim field = TryCast(declarator?.Parent, FieldDeclarationSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\RemoveUnusedParametersAndValues\VisualBasicRemoveUnusedParametersAndValuesDiagnosticAnalyzer.vb (1)
56Dim methodSyntax = TryCast(node.Parent, MethodBlockBaseSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseAutoProperty\Utilities.vb (2)
10Dim declarator = DirectCast(identifier.Parent, VariableDeclaratorSyntax) 18Dim field = DirectCast(declarator.Parent, FieldDeclarationSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseAutoProperty\VisualBasicUseAutoPropertyAnalyzer.vb (3)
70Dim declarator = TryCast(variable.Parent, VariableDeclaratorSyntax) 96Dim accessor = TryCast(TryCast(getMethod.DeclaringSyntaxReferences(0).GetSyntax(cancellationToken), AccessorStatementSyntax)?.Parent, AccessorBlockSyntax) 119Dim setAccessor = TryCast(TryCast(setMethod.DeclaringSyntaxReferences(0).GetSyntax(cancellationToken), AccessorStatementSyntax)?.Parent, AccessorBlockSyntax)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\UseInferredMemberName\VisualBasicUseInferredMemberNameDiagnosticAnalyzer.vb (3)
43Dim argument = DirectCast(nameColonEquals.Parent, SimpleArgumentSyntax) 64If Not fieldInitializer.Parent.Parent.IsKind(SyntaxKind.AnonymousObjectCreationExpression) Then
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\AddExplicitCast\ArgumentFixer.vb (1)
37Dim parent = newArgumentList.Parent
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\AddExplicitCast\VisualBasicAddExplicitCastCodeFixProvider.vb (1)
71Dim invocationNode = argumentList.Parent
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\VisualBasicGenerateConstructorService.vb (12)
52TryCast(node.Parent, MemberAccessExpressionSyntax).IsConstructorInitializer() AndAlso 53node.Parent.Parent.Kind = SyntaxKind.InvocationExpression 64Dim memberAccess = DirectCast(simpleName.Parent, MemberAccessExpressionSyntax) 65Dim invocation = DirectCast(memberAccess.Parent, InvocationExpressionSyntax) 100Dim name = If(simpleName.IsRightSideOfQualifiedName(), DirectCast(simpleName.Parent, NameSyntax), simpleName) 102If TypeOf name.Parent Is ObjectCreationExpressionSyntax Then 103Dim objectCreationExpression = DirectCast(name.Parent, ObjectCreationExpressionSyntax) 135Dim name = If(simpleName.IsRightSideOfQualifiedName(), DirectCast(simpleName.Parent, NameSyntax), simpleName) 137If TypeOf name.Parent Is AttributeSyntax Then 138Dim attribute = DirectCast(name.Parent, AttributeSyntax) 174Dim constructorStatements = constructor.DeclaringSyntaxReferences(0).GetSyntax(cancellationToken).Parent.GetStatements()
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateDefaultConstructors\VisualBasicGenerateDefaultConstructorsService.vb (1)
48classType = TryCast(semanticDocument.SemanticModel.GetDeclaredSymbol(baseList.Parent, cancellationToken), INamedTypeSymbol)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateEnumMember\VisualBasicGenerateEnumMemberService.vb (2)
31Dim memberAccess = TryCast(identifierName.Parent, MemberAccessExpressionSyntax) 38Dim invocation = DirectCast(simpleNameOrMemberAccessExpression.Parent, InvocationExpressionSyntax)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\GenerateParameterizedMember\VisualBasicGenerateMethodService.vb (10)
51Dim implementsClause = DirectCast(qualifiedName.Parent, ImplementsClauseSyntax) 56Dim methodStatement = DirectCast(implementsClause.Parent, MethodStatementSyntax) 84Dim memberAccess = TryCast(simpleName?.Parent, MemberAccessExpressionSyntax) 85Dim conditionalMemberAccessInvocationExpression = TryCast(simpleName?.Parent?.Parent?.Parent, ConditionalAccessExpressionSyntax) 86Dim conditionalMemberAccessSimpleMemberAccess = TryCast(simpleName?.Parent?.Parent, ConditionalAccessExpressionSyntax) 116invocationExpressionOpt = DirectCast(simpleNameOrMemberAccessExpression.Parent, InvocationExpressionSyntax) 126ElseIf simpleNameOrMemberAccessExpression?.Parent?.IsKind(SyntaxKind.AddressOfExpression, SyntaxKind.NameOfExpression) Then
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\ImplementInterface\VisualBasicImplementInterfaceService.vb (4)
42Return TypeOf type?.Parent Is ImplementsStatementSyntax 66ElseIf TypeOf node Is TypeSyntax AndAlso TypeOf node.Parent Is ImplementsStatementSyntax Then 68implementsStatement = DirectCast(node.Parent, ImplementsStatementSyntax) 87classOrStructDecl = implementsStatement.Parent
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\Iterator\VisualBasicConvertToIteratorCodeFixProvider.vb (1)
56If identifier.Parent.Kind <> SyntaxKind.InvocationExpression Then
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeFieldReadonly\VisualBasicMakeFieldReadonlyCodeFixProvider.vb (2)
27Dim initializer = CType(declaration.Parent, VariableDeclaratorSyntax).Initializer?.Value 29initializer = TryCast(CType(declaration.Parent, VariableDeclaratorSyntax).AsClause, AsNewClauseSyntax)?.NewExpression
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\MakeTypeAbstract\VisualBasicMakeTypeAbstractCodeFixProvider.vb (1)
36typeDeclaration = TryCast(classStatement.Parent, ClassBlockSyntax)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\RemoveUnusedParametersAndValues\VisualBasicRemoveUnusedValuesCodeFixProvider.vb (1)
75Return TryCast(declarator.Parent, LocalDeclarationStatementSyntax)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\UseAutoProperty\VisualBasicUseAutoPropertyCodeFixProvider.vb (2)
32node = node.Parent 102Dim declarator = TryCast(identifier?.Parent, VariableDeclaratorSyntax)
src\roslyn\src\Analyzers\VisualBasic\CodeFixes\UseConditionalExpression\VisualBasicUseConditionalExpressionForAssignmentCodeFixProvider.vb (1)
46Return DirectCast(declarator.Syntax.Parent, VariableDeclaratorSyntax)
src\roslyn\src\Compilers\VisualBasic\Portable\Syntax\LambdaUtilities.vb (23)
52Dim lambda = lambdaBody.Parent 91Dim newJoinClause = DirectCast(newJoinCondition.Parent, JoinClauseSyntax) 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) 270Dim clause = rangeVariable.Parent 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
Structure\Providers\AccessorDeclarationStructureProvider.vb (1)
21Dim block = TryCast(accessorDeclaration.Parent, AccessorBlockSyntax)
Structure\Providers\CollectionInitializerStructureProvider.vb (1)
24If TypeOf node.Parent IsNot ObjectCollectionInitializerSyntax Then
Structure\Providers\ConstructorDeclarationStructureProvider.vb (1)
22Dim block = TryCast(constructorDeclaration.Parent, ConstructorBlockSyntax)
Structure\Providers\EnumDeclarationStructureProvider.vb (1)
21Dim block = TryCast(enumDeclaration.Parent, EnumBlockSyntax)
Structure\Providers\EventDeclarationStructureProvider.vb (1)
21Dim block = TryCast(eventDeclaration.Parent, EventBlockSyntax)
Structure\Providers\MethodDeclarationStructureProvider.vb (1)
21Dim block = TryCast(methodDeclaration.Parent, MethodBlockSyntax)
Structure\Providers\NamespaceDeclarationStructureProvider.vb (1)
21Dim block = TryCast(namespaceDeclaration.Parent, NamespaceBlockSyntax)
Structure\Providers\ObjectCreationInitializerStructureProvider.vb (1)
35hintSpan:=node.Parent.Span,
Structure\Providers\OperatorDeclarationStructureProvider.vb (1)
21Dim block = TryCast(operatorDeclaration.Parent, OperatorBlockSyntax)
Structure\Providers\PropertyDeclarationStructureProvider.vb (1)
21Dim block = TryCast(propertyDeclaration.Parent, PropertyBlockSyntax)
Structure\Providers\TypeDeclarationStructureProvider.vb (1)
21Dim block = TryCast(typeDeclaration.Parent, TypeBlockSyntax)
Structure\VisualBasicStructureHelpers.vb (1)
215Dim attributeOwner = firstToken.Parent.Parent
UseNamedArguments\VisualBasicUseNamedArgumentsCodeRefactoringProvider.vb (3)
30If argument.Parent.IsParentKind(SyntaxKind.Attribute) Then 34Return argument.Parent.Parent
Wrapping\SeparatedSyntaxList\VisualBasicArgumentWrapper.vb (1)
83current = current.Parent
Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers (44)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicEnumsShouldHaveZeroValue.Fixer.vb (2)
18If nodeToFix.IsKind(SyntaxKind.EnumStatement) And nodeToFix.Parent IsNot Nothing Then 19Return nodeToFix.Parent
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\BasicIdentifiersShouldNotContainUnderscores.Fixer.vb (1)
32Return node.Parent
Microsoft.CodeQuality.Analyzers\QualityGuidelines\BasicAvoidMultipleEnumerationsAnalyzer.vb (1)
15Dim parent = TryCast(syntax.Parent, ForEachStatementSyntax)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\BasicUseLiteralsWhereAppropriate.Fixer.vb (1)
20syntaxNode = syntaxNode.Parent
Microsoft.NetCore.Analyzers\Performance\BasicDoNotGuardCall.Fixer.vb (3)
26Dim guardedCallInElse = TypeOf childStatementSyntax.Parent Is ElseBlockSyntax 46Dim guardedCallInElse = TypeOf childOperationNode.Parent Is ElseBlockSyntax 58Dim guardedCallInElse = TypeOf childOperationNode.Parent Is SingleLineElseClauseSyntax
Microsoft.NetCore.Analyzers\Performance\BasicPreferDictionaryTryMethodsOverContainsKeyGuardFixer.vb (5)
92If variableDeclarator.Parent.GetType() <> GetType(LocalDeclarationStatementSyntax) Then 96localDeclarationStatement = DirectCast(variableDeclarator.Parent, LocalDeclarationStatementSyntax) 146ifStatement = containsKeyAccess.FirstAncestorOrSelf(Of TernaryConditionalExpressionSyntax)?.Parent 212editor.RemoveNode(dictionaryAddInvocation.Parent, SyntaxRemoveOptions.KeepNoTrivia) 221editor.RemoveNode(dictionaryAddInvocation.Parent, SyntaxRemoveOptions.KeepNoTrivia)
Microsoft.NetCore.Analyzers\Performance\BasicPreferHashDataOverComputeHash.Fixer.vb (3)
37Dim currentCreateNodeParent = currentCreateNode.Parent 41Dim usingBlock = TryCast(usingStatement.Parent, UsingBlockSyntax) 77Dim parent = usingBlock.Parent
Microsoft.NetCore.Analyzers\Performance\BasicPreferLengthCountIsEmptyOverAnyFixer.vb (8)
27Dim unaryParent = TryCast(memberAccess.Parent, UnaryExpressionSyntax) 56Dim unaryParent = TryCast(invocation.Parent, UnaryExpressionSyntax) 88If memberAccess.Parent.IsKind(SyntaxKind.NotExpression) Then 90Return root.ReplaceNode(memberAccess.Parent, binaryExpression.WithTriviaFrom(memberAccess.Parent)) 105If invocation.Parent.IsKind(SyntaxKind.NotExpression) Then 107Return root.ReplaceNode(invocation.Parent, binaryExpression.WithTriviaFrom(invocation.Parent))
Microsoft.NetCore.Analyzers\Performance\BasicRecommendCaseInsensitiveStringComparisonFixer.vb (1)
66actualArgumentNode = actualArgumentNode.Parent
Microsoft.NetCore.Analyzers\Runtime\BasicDetectPreviewFeatureAnalyzer.vb (2)
136Dim typeBlock = TryCast(typeStatement.Parent, TypeBlockSyntax) 328Dim declaration = TryCast(definition.Parent, VariableDeclaratorSyntax)
Microsoft.NetCore.Analyzers\Runtime\BasicForwardCancellationTokenToInvocations.Fixer.vb (4)
26Dim parentSyntax As MemberAccessExpressionSyntax = TryCast(node.Parent, MemberAccessExpressionSyntax) 29operation = model.GetOperation(node.Parent.Parent, ct) 31operation = model.GetOperation(node.Parent, ct)
Microsoft.NetCore.Analyzers\Runtime\BasicMarkAllNonSerializableFields.Fixer.vb (1)
17fieldNode = fieldNode.Parent
Microsoft.NetCore.Analyzers\Runtime\BasicSpecifyCultureForToLowerAndToUpper.Fixer.vb (6)
20Nullable.Equals(node.Parent?.IsKind(SyntaxKind.SimpleMemberAccessExpression), True) 25Dim memberAccess = DirectCast(node.Parent, MemberAccessExpressionSyntax) 27If memberAccess.Parent Is Nothing OrElse Not memberAccess.Parent.IsKind(SyntaxKind.InvocationExpression) Then 31Dim invocation = DirectCast(memberAccess.Parent, InvocationExpressionSyntax) 61Dim memberAccess = DirectCast(node.Parent, MemberAccessExpressionSyntax)
Microsoft.NetCore.Analyzers\Runtime\BasicUseOrdinalStringComparison.Fixer.vb (2)
41node?.Parent?.FirstAncestorOrSelf(Of InvocationExpressionSyntax)() IsNot Nothing 45Dim invokeParent = identifier.Parent?.FirstAncestorOrSelf(Of InvocationExpressionSyntax)()
Microsoft.NetCore.Analyzers\Usage\BasicDoNotPassNonNullableValueToArgumentNullExceptionThrowIfNullFixer.vb (2)
24If invocation.Parent IsNot Nothing Then 25editor.ReplaceNode(invocation.Parent, ifStatement)
Microsoft.NetCore.Analyzers\Usage\BasicPreferGenericOverloads.Fixer.vb (2)
55If TypeOf castExpressionSyntax.Parent Is ParenthesizedExpressionSyntax Then 56Dim parenthesizedExpressionSyntax = CType(castExpressionSyntax.Parent, ParenthesizedExpressionSyntax)
Microsoft.CodeAnalysis.VisualBasic.Workspaces (427)
CaseCorrection\VisualBasicCaseCorrectionService.Rewriter.vb (3)
130Dim nameColonEquals = TryCast(token.Parent?.Parent, NameColonEqualsSyntax) 131If nameColonEquals IsNot Nothing AndAlso TypeOf nameColonEquals.Parent?.Parent Is TupleExpressionSyntax Then
Classification\ClassificationHelpers.vb (16)
218ElseIf TypeOf parent?.Parent Is CatchStatementSyntax AndAlso DirectCast(parent.Parent, CatchStatementSyntax).IdentifierName.Identifier = identifier Then 232Dim parent = identifierSyntax.Parent 235parent = parent.Parent 251parent = parent.Parent?.Parent 282If TypeOf node.Parent Is ParameterSyntax Then 287If TypeOf node.Parent IsNot VariableDeclaratorSyntax Then 291If TypeOf node.Parent.Parent Is LocalDeclarationStatementSyntax Then 292Dim localDeclaration = DirectCast(node.Parent.Parent, LocalDeclarationStatementSyntax) 297If TypeOf node.Parent.Parent Is FieldDeclarationSyntax Then 298Dim localDeclaration = DirectCast(node.Parent.Parent, FieldDeclarationSyntax)
Classification\SyntaxClassification\ImportAliasClauseSyntaxClassifier.vb (1)
29Dim symbolInfo = semanticModel.GetTypeInfo(DirectCast(node.Parent, SimpleImportsClauseSyntax).Name, cancellationToken)
Classification\SyntaxClassification\NameSyntaxClassifier.vb (3)
247modifiedIdentifier.Parent.IsParentKind(SyntaxKind.FieldDeclaration) Then 249If DirectCast(modifiedIdentifier.Parent, VariableDeclaratorSyntax).AsClause Is Nothing AndAlso 250DirectCast(modifiedIdentifier.Parent, VariableDeclaratorSyntax).Initializer Is Nothing Then
Classification\Worker.DocumentationCommentClassifier.vb (4)
150If TypeOf node.Parent Is BaseXmlAttributeSyntax Then 152ElseIf TypeOf node.Parent Is XmlProcessingInstructionSyntax Then 242Dim startTag = TryCast(attribute.Parent, XmlElementStartTagSyntax) 250Dim emptyElement = TryCast(attribute.Parent, XmlEmptyElementSyntax)
Classification\Worker.XmlClassifier.vb (6)
233If TypeOf element.Parent Is XmlAttributeSyntax AndAlso 234DirectCast(element.Parent, XmlAttributeSyntax).Name Is element Then 236ElseIf TypeOf element.Parent Is XmlMemberAccessExpressionSyntax AndAlso 237element.Parent.Kind = SyntaxKind.XmlAttributeAccessExpression AndAlso 238DirectCast(element.Parent, XmlMemberAccessExpressionSyntax).Name Is element Then 258Dim parent = name.Parent
CodeCleanup\Providers\AddMissingTokensCodeCleanupProvider.vb (3)
70If name Is Nothing OrElse TypeOf name.Parent Is NameSyntax Then 87If TypeOf name.Parent Is MemberAccessExpressionSyntax OrElse 88TypeOf name.Parent Is TupleElementSyntax OrElse
CodeCleanup\Providers\FixIncorrectTokensCodeCleanupProvider.vb (1)
115Dim parent = TryCast(node.Parent, QualifiedNameSyntax)
CodeCleanup\Providers\RemoveUnnecessaryLineContinuationCodeCleanupProvider.vb (1)
267node = node.Parent
CodeCleanup\VisualBasicCodeCleanerService.vb (1)
110Return GetMultiLineContainer(node.Parent)
CodeGeneration\VisualBasicSyntaxGenerator.vb (31)
1785If IsChildOf(declaration.Parent, SyntaxKind.FieldDeclaration) And GetDeclarationCount(declaration.Parent.Parent) > 1 Then 1787ElseIf IsChildOf(declaration.Parent, SyntaxKind.LocalDeclarationStatement) And GetDeclarationCount(declaration.Parent.Parent) > 1 Then 1792Dim list = TryCast(declaration.Parent, AttributeListSyntax) 1853Return GetFullDeclaration(declaration.Parent) 1857Return declaration.Parent 1860If declaration.Parent IsNot Nothing Then 1861Return declaration.Parent 1865If declaration.Parent IsNot Nothing Then 1866Return declaration.Parent 1881Dim list = TryCast(declaration.Parent, AttributeListSyntax) 1887Dim stmt = TryCast(declaration.Parent, ImportsStatementSyntax) 2066Dim vd = TryCast(declaration.Parent, VariableDeclaratorSyntax) 2149Dim vd = TryCast(declaration.Parent, VariableDeclaratorSyntax) 3370Return AreSimilarExceptForSubDeclarations(decl1.Parent, decl2.Parent) 3400Return SyntaxFactory.AreEquivalent(vd1.AsClause, vd2.AsClause) AndAlso SyntaxFactory.AreEquivalent(vd2.Initializer, vd1.Initializer) AndAlso AreSimilarExceptForSubDeclarations(decl1.Parent, decl2.Parent) 3563Dim vd = TryCast(node.Parent, VariableDeclaratorSyntax) 3569If IsChildOfVariableDeclaration(node) AndAlso GetDeclarationCount(node.Parent) = 1 Then 3571Return RemoveNodeInternal(root, node.Parent, options) 3575Dim attrStmt = TryCast(attrList.Parent, AttributesStatementSyntax) 3581Dim attrList = TryCast(node.Parent, AttributeListSyntax) 3587If IsChildOf(node, SyntaxKind.ArgumentList) AndAlso IsChildOf(node.Parent, SyntaxKind.Attribute) Then 3588Dim argList = DirectCast(node.Parent, ArgumentListSyntax) 3596Dim imps = DirectCast(node.Parent, ImportsStatementSyntax) 3599Return RemoveNodeInternal(root, node.Parent, options) 3602Dim parent = node.Parent
FindSymbols\VisualBasicDeclaredSymbolInfoFactoryService.vb (3)
379If Not parameterCount.HasValue OrElse parameterCount.Value = 0 OrElse TypeOf node.Parent?.Parent IsNot ModuleBlockSyntax Then 401Return TypeOf node.Parent Is TypeBlockSyntax
ReassignedVariable\VisualBasicReassignedVariableService.vb (3)
37Return TryCast(variable.Parent, VariableDeclaratorSyntax)?.Initializer IsNot Nothing 47current = current.Parent 51Return current.Parent
Rename\VisualBasicRenameRewriterLanguageService.vb (2)
255Dim parent = DirectCast(node.Parent, MultiLineLambdaExpressionSyntax) 402If TypeOf token.Parent Is SimpleNameSyntax AndAlso token.Kind <> SyntaxKind.GlobalKeyword AndAlso token.Parent.Parent.IsKind(SyntaxKind.QualifiedName, SyntaxKind.QualifiedCrefOperatorReference) Then
Simplification\Reducers\VisualBasicInferredMemberNameReducer.Rewriter.vb (2)
53parentNode:=node.Parent, 66parentNode:=node.Parent,
Simplification\Reducers\VisualBasicMiscellaneousReducer.Rewriter.vb (1)
42parentNode:=node.Parent,
Simplification\Reducers\VisualBasicVariableDeclaratorReducer.vb (2)
59Not variableDeclarator.Parent.IsKind( 71Dim parent = variableDeclarator.Parent
Simplification\Simplifiers\AbstractVisualBasicSimplifier.vb (3)
155Dim nameofValueOpt = semanticModel.GetConstantValue(node.Parent.Parent.Parent)
Simplification\Simplifiers\ExpressionSimplifier.vb (2)
278Dim symbolForMemberAccess = semanticModel.GetSymbolInfo(DirectCast(memberAccess.Parent, MemberAccessExpressionSyntax), cancellationToken).Symbol 283Dim parent = DirectCast(memberAccess.Parent, MemberAccessExpressionSyntax)
Simplification\Simplifiers\NameSimplifier.vb (11)
155Not name.Parent.IsKind(SyntaxKind.QualifiedName) AndAlso 156Not name.Parent.IsKind(SyntaxKind.NameOfExpression) Then 269nextNode = nextNode.Parent 314Return TypeOf expression.Parent Is ImportsClauseSyntax AndAlso 325Dim symbolForName = semanticModel.GetSymbolInfo(DirectCast(name.Parent, QualifiedNameSyntax), cancellationToken).Symbol 338Dim parent = DirectCast(name.Parent, QualifiedNameSyntax) 368If name.Parent.Kind = SyntaxKind.Attribute OrElse name.IsRightSideOfDot() Then 437(name.IsParentKind(SyntaxKind.QualifiedName) AndAlso name.Parent?.IsParentKind(SyntaxKind.CrefReference)) OrElse ' cref="System.Nullable(Of T)" 438(name.IsParentKind(SyntaxKind.QualifiedName) AndAlso If(name.Parent?.IsParentKind(SyntaxKind.QualifiedName), False) AndAlso name.Parent.Parent?.IsParentKind(SyntaxKind.CrefReference)) Then ' cref="System.Nullable(Of T).Value"
Simplification\VisualBasicSimplificationService.Expander.vb (3)
301Dim tuple = TryCast(node.Parent, TupleExpressionSyntax) 612Dim parent = originalSimpleName.Parent 750Dim parent = originalNode.Parent
Simplification\VisualBasicSimplificationService.NodesAndTokensToReduceComputer.vb (2)
80node.Parent IsNot Nothing AndAlso node.Parent.Kind() = SyntaxKind.FieldDeclaration
Simplification\VisualBasicSimplificationService.vb (3)
86originalNode.Parent.Kind() = SyntaxKind.FieldDeclaration Then 156Return node IsNot Nothing AndAlso node.Parent IsNot Nothing AndAlso 158TypeOf node.Parent Is FieldDeclarationSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ArgumentSyntaxExtensions.vb (2)
30Dim argumentList = TryCast(argument.Parent, ArgumentListSyntax) 36Dim symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\DirectiveSyntaxExtensions.vb (3)
26While node IsNot Nothing AndAlso (node.Parent IsNot Nothing OrElse TypeOf node Is StructuredTriviaSyntax) 27If node.Parent IsNot Nothing Then 28node = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (33)
16expression = DirectCast(expression.Parent, ExpressionSyntax) 38(expression.IsParentKind(SyntaxKind.QualifiedName) AndAlso DirectCast(expression.Parent, QualifiedNameSyntax).Left Is expression) OrElse 39(expression.IsParentKind(SyntaxKind.SimpleMemberAccessExpression) AndAlso DirectCast(expression.Parent, MemberAccessExpressionSyntax).Expression Is expression) 59DirectCast(expression.Parent, MemberAccessExpressionSyntax).Name Is expression 64Return TypeOf expression?.Parent Is MemberAccessExpressionSyntax AndAlso 65DirectCast(expression.Parent, MemberAccessExpressionSyntax).Name Is expression 81DirectCast(expression.Parent, QualifiedNameSyntax).Right Is expression 87DirectCast(expression.Parent, QualifiedNameSyntax).Left Is expression 156Dim unaryParent = TryCast(expression.WalkUpParentheses().Parent, UnaryExpressionSyntax) 279Dim simpleArgument = TryCast(expression?.Parent, SimpleArgumentSyntax) 290Dim argumentList = TryCast(simpleArgument.Parent, ArgumentListSyntax) 293Dim parent = argumentList.Parent 328expression = TryCast(expression.Parent, ExpressionSyntax) 337Dim assignmentStatement = DirectCast(expression.Parent, AssignmentStatementSyntax) 344expression.Parent.IsParentKind(SyntaxKind.SimpleArgument) Then 372expression = TryCast(expression.Parent, ExpressionSyntax) 380If TypeOf expression.Parent Is AssignmentStatementSyntax Then 381Dim assignmentStatement = DirectCast(expression.Parent, AssignmentStatementSyntax) 392If TypeOf expression.Parent Is MemberAccessExpressionSyntax Then 393Dim memberAccess = DirectCast(expression.Parent, MemberAccessExpressionSyntax) 498If TypeOf expression.Parent Is InvocationExpressionSyntax Then 551If TypeOf expression.Parent Is BinaryExpressionSyntax OrElse 552TypeOf expression.Parent Is AssignmentStatementSyntax OrElse 553TypeOf expression.Parent Is WhileOrUntilClauseSyntax OrElse 554TypeOf expression.Parent Is SingleLineLambdaExpressionSyntax OrElse 555TypeOf expression.Parent Is AwaitExpressionSyntax Then 572If TypeOf expression.Parent Is ExpressionRangeVariableSyntax AndAlso 573TypeOf expression.Parent.Parent Is QueryClauseSyntax Then 574Dim rangeVariable = DirectCast(expression.Parent, ExpressionRangeVariableSyntax) 575Dim selectClause = TryCast(rangeVariable.Parent, SelectClauseSyntax) 584Dim queryExpression = TryCast(selectClause.Parent, QueryExpressionSyntax) 589Dim aggregateClause = TryCast(selectClause.Parent, AggregateClauseSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\InvocationExpressionSyntaxExtensions.vb (1)
60Return DirectCast(invocationExpression.Parent, ConditionalAccessExpressionSyntax).Expression
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\MemberAccessExpressionSyntaxExtensions.vb (8)
50If TypeOf memberAccess.Parent Is InvocationExpressionSyntax Then 51statement = memberAccess.Parent.Parent 54statement = memberAccess.Parent 60DirectCast(statement.Parent, ConstructorBlockSyntax).Statements.First() Is statement 111TypeOf current.Parent Is ObjectCreationExpressionSyntax Then 112Return DirectCast(current.Parent, ExpressionSyntax) 115current = current.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ParenthesizedExpressionSyntaxExtensions.vb (22)
139Dim interpolation = DirectCast(node.Parent, InterpolationSyntax) 158If node.Parent.IsParentKind(SyntaxKind.ObjectCollectionInitializer) AndAlso 159DirectCast(node.Parent.Parent, ObjectCollectionInitializerSyntax).Initializer Is node.Parent Then 166If node.Parent.IsParentKind(SyntaxKind.CollectionInitializer) AndAlso 167node.Parent.Parent.IsParentKind(SyntaxKind.ObjectCollectionInitializer) AndAlso 168DirectCast(node.Parent.Parent.Parent, ObjectCollectionInitializerSyntax).Initializer Is node.Parent.Parent Then 280If TypeOf node.Parent Is ArgumentSyntax Then 284Dim argument = DirectCast(node.Parent, ArgumentSyntax) 301Dim parentInvocation = DirectCast(node.Parent, InvocationExpressionSyntax) 354Dim parentExpression = TryCast(node.Parent, ExpressionSyntax) 455If (node.Parent.Kind = SyntaxKind.InvocationExpression OrElse 456node.Parent.Kind = SyntaxKind.IsExpression OrElse 457node.Parent.Kind = SyntaxKind.TypeOfIsExpression OrElse 458node.Parent.Kind = SyntaxKind.TypeOfIsNotExpression) Then 468node.Parent.Kind = SyntaxKind.XmlEmbeddedExpression Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SemanticModelExtensions.vb (55)
114type.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then 115If type.Parent.Parent.IsParentKind(SyntaxKind.FieldDeclaration) OrElse 116type.Parent.Parent.IsParentKind(SyntaxKind.EventStatement) Then 117Dim variableDeclarator = DirectCast(type.Parent.Parent, VariableDeclaratorSyntax) 128type.Parent.IsParentKind(SyntaxKind.AsNewClause) AndAlso 129type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then 130If type.Parent.Parent.Parent.IsParentKind(SyntaxKind.FieldDeclaration) OrElse 131type.Parent.Parent.Parent.IsParentKind(SyntaxKind.EventStatement) Then 132Dim variableDeclarator = DirectCast(type.Parent.Parent.Parent, VariableDeclaratorSyntax) 141If type.Parent.IsParentKind(SyntaxKind.DelegateFunctionStatement) OrElse 142type.Parent.IsParentKind(SyntaxKind.FunctionStatement) OrElse 143type.Parent.IsParentKind(SyntaxKind.PropertyStatement) OrElse 144type.Parent.IsParentKind(SyntaxKind.EventStatement) OrElse 145type.Parent.IsParentKind(SyntaxKind.OperatorStatement) Then 147type.Parent.Parent, cancellationToken).DeclaredAccessibility 152type.Parent.IsParentKind(SyntaxKind.Parameter) AndAlso 153type.Parent.Parent.IsParentKind(SyntaxKind.ParameterList) Then 154If type.Parent.Parent.Parent.IsParentKind(SyntaxKind.DelegateFunctionStatement) OrElse 155type.Parent.Parent.Parent.IsParentKind(SyntaxKind.FunctionStatement) OrElse 156type.Parent.Parent.Parent.IsParentKind(SyntaxKind.PropertyStatement) OrElse 157type.Parent.Parent.Parent.IsParentKind(SyntaxKind.OperatorStatement) OrElse 158type.Parent.Parent.Parent.IsParentKind(SyntaxKind.SubNewStatement) OrElse 159type.Parent.Parent.Parent.IsParentKind(SyntaxKind.SubStatement) Then 161type.Parent.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility 233If TypeOf topExpression.Parent Is ArgumentSyntax Then 234Dim argument = DirectCast(topExpression.Parent, ArgumentSyntax) 241Dim argumentList = TryCast(argument.Parent, ArgumentListSyntax) 244Dim member = TryCast(semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\StatementSyntaxExtensions.vb (1)
745DirectCast(statement.Parent, ConstructorBlockSyntax).Statements.FirstOrDefault() Is statement Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (24)
20node.Parent.IsKind(kind) 26IsKind(node.Parent, kind1, kind2) 32IsKind(node.Parent, kind1, kind2, kind3) 682singleLineIf = DirectCast(executableBlock.Parent, SingleLineIfStatementSyntax) 731current = singleLineIf.Parent 789DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 795node.Parent.IsAnyAssignmentStatement() AndAlso 796DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 808node.Parent.IsCompoundAssignmentStatement() AndAlso 809DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 987node = DirectCast(node.Parent, ExpressionSyntax) 996TypeOf node.Parent IsNot ConditionalAccessExpressionSyntax 998node = TryCast(node.Parent, ExpressionSyntax) 1028If TypeOf node?.Parent Is ConditionalAccessExpressionSyntax AndAlso 1029DirectCast(node.Parent, ConditionalAccessExpressionSyntax).Expression Is node Then 1031node = DirectCast(node.Parent, ExpressionSyntax) 1034If TypeOf node?.Parent Is ConditionalAccessExpressionSyntax AndAlso 1035DirectCast(node.Parent, ConditionalAccessExpressionSyntax).WhenNotNull Is node Then 1037node = DirectCast(node.Parent, ExpressionSyntax) 1051While TypeOf node?.Parent Is ConditionalAccessExpressionSyntax 1052Dim conditionalParent = DirectCast(node.Parent, ConditionalAccessExpressionSyntax) 1096current = current.Parent 1219Dim parent As SyntaxNode = node.Parent 1260Dim parent As SyntaxNode = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxTreeExtensions.vb (2)
71current = current.Parent 92node = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\VariableDeclaratorSyntaxExtensions.vb (1)
54Not DirectCast(variableDeclarator.Parent, FieldDeclarationSyntax).Modifiers.Any(SyntaxKind.ConstKeyword) Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\DefaultOperationProvider.vb (12)
84If previousToken.Parent.Parent IsNot Nothing AndAlso TypeOf previousToken.Parent.Parent Is ParameterSyntax Then 95currentToken.Parent.Parent IsNot Nothing AndAlso TypeOf currentToken.Parent.Parent Is ParameterSyntax Then 137Dim [imports] = DirectCast(previousImports.Parent, CompilationUnitSyntax).Imports 185TypeOf xmlDeclaration.Parent Is XmlDocumentSyntax AndAlso 186TypeOf xmlDeclaration.Parent.Parent IsNot XmlNodeSyntax Then 193TypeOf startTag.Parent Is XmlElementSyntax AndAlso 194TypeOf startTag.Parent.Parent IsNot XmlNodeSyntax Then 201TypeOf emptyTag.Parent IsNot XmlNodeSyntax Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\FormattingHelpers.vb (6)
201If token.Parent.Parent Is Nothing Then 207token.Parent.Parent.Kind = SyntaxKind.XmlElement Then 208Dim xmlElement = DirectCast(token.Parent.Parent, XmlElementSyntax) 218token.Parent.Parent.Kind = SyntaxKind.XmlElement Then 219Dim xmlElement = DirectCast(token.Parent.Parent, XmlElementSyntax) 278If token.Parent.Parent Is Nothing Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Rules\ElasticTriviaFormattingRule.vb (7)
117currentToken.Parent.Parent.Kind = SyntaxKind.ObjectCollectionInitializer Then 151previousToken.Parent.Parent.Kind = SyntaxKind.ObjectCollectionInitializer Then 159previousToken.Parent.Parent.Kind = SyntaxKind.ObjectCollectionInitializer Then 167currentToken.Parent.Parent.Kind = SyntaxKind.CollectionInitializer Then 180currentToken.Parent.Parent.Kind = SyntaxKind.ObjectCollectionInitializer Then 188If attributeNode IsNot Nothing AndAlso TypeOf attributeNode.Parent Is StatementSyntax AndAlso 258Return TryCast(node, TStatement) IsNot Nothing AndAlso TryCast(node.Parent, TBlock) IsNot Nothing
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Rules\NodeBasedFormattingRule.vb (6)
208outerBlock = outerBlock.Parent 229If TypeOf node.Parent IsNot XmlNodeSyntax Then 244If TypeOf xmlNode.Parent IsNot XmlNodeSyntax Then 249If TypeOf xmlNode.Parent IsNot XmlNodeSyntax Then 255If TypeOf xmlNode.Parent Is XmlEmbeddedExpressionSyntax Then 267Dim element = TryCast(xmlNode.Parent, XmlElementSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\RefactoringHelpers\VisualBasicRefactoringHelpers.vb (9)
74Yield node.Parent 79If TypeOf node Is ForEachStatementSyntax And TypeOf node.Parent Is ForEachBlockSyntax Then 81Yield foreachStatement.Parent 84If TypeOf node Is ForStatementSyntax And TypeOf node.Parent Is ForBlockSyntax Then 86Yield forStatement.Parent 91If TypeOf declarator.Parent Is LocalDeclarationStatementSyntax Then 92Dim localDeclarationStatement = CType(declarator.Parent, LocalDeclarationStatementSyntax) 103Return (TypeOf node Is ModifiedIdentifierSyntax) AndAlso (TypeOf node.Parent Is ParameterSyntax) AndAlso (CType(node.Parent, ParameterSyntax).Identifier Is node)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (5)
247TypeOf argument.Parent Is ArgumentListSyntax AndAlso 248TypeOf argument.Parent.Parent Is AttributeSyntax Then 321Dim parent As SyntaxNode = node.Parent 331parent = current.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SyntaxFacts\VisualBasicAccessibilityFacts.vb (5)
60Not declaration.Parent.IsKind(SyntaxKind.ModuleBlock) 64CanHaveAccessibility(declaration.Parent), 69CanHaveAccessibility(declaration.Parent), 155Return GetModifierTokens(declaration.Parent) 161Return GetModifierTokens(declaration.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SyntaxFacts\VisualBasicBlockFacts.vb (2)
24Return If(IsExecutableBlock(statement.Parent), statement.Parent, Nothing)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SyntaxFacts\VisualBasicSyntaxFacts.vb (47)
169Dim memberAccess = TryCast(node?.Parent, MemberAccessExpressionSyntax) 200DirectCast(node.Parent, SimpleImportsClauseSyntax).Name Is node 247Dim memberAccess = TryCast(token.Parent.Parent, MemberAccessExpressionSyntax) 256Dim memberAccess = TryCast(token.Parent.Parent, MemberAccessExpressionSyntax) 633identifierName.Parent.IsParentKind(SyntaxKind.SimpleArgument) AndAlso 634identifierName.Parent.Parent.IsParentKind(SyntaxKind.ArgumentList) AndAlso 635identifierName.Parent.Parent.Parent.IsParentKind(SyntaxKind.Attribute) 650Dim parent = node.Parent 657node = node.Parent 672initializedInstance = identifier.Parent.Parent.Parent 681Dim namedFieldInit = TryCast(identifier?.Parent, NamedFieldInitializerSyntax) 683Return TypeOf namedFieldInit?.Parent Is AnonymousObjectCreationExpressionSyntax AndAlso 689If TypeOf node.Parent Is ArrayCreationExpressionSyntax Then 690creationExpression = node.Parent 692ElseIf TypeOf node.Parent Is ObjectCollectionInitializerSyntax AndAlso 693TypeOf node.Parent.Parent Is ObjectCreationExpressionSyntax Then 694creationExpression = node.Parent.Parent 718If TypeOf node Is MethodBlockBaseSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 722If TypeOf node Is MethodBaseSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 726If TypeOf node Is PropertyStatementSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 730If TypeOf node Is EventStatementSyntax AndAlso TypeOf node.Parent IsNot EventBlockSyntax Then 751If TypeOf node Is MethodBlockBaseSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 755If TypeOf node Is MethodBaseSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 783node = node.Parent 796If TypeOf node Is MethodStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 800If TypeOf node Is SubNewStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 804If TypeOf node Is OperatorStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 808If TypeOf node Is PropertyStatementSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 812If TypeOf node Is EventStatementSyntax AndAlso TypeOf node.Parent IsNot EventBlockSyntax Then 901Dim parent = node.Parent 904parent = parent.Parent 912parent = parent.Parent 1035Dim parent = node.Parent 1121Return IsLeftSideOfDot(node) AndAlso TryCast(node.Parent.Parent, ImplementsClauseSyntax) IsNot Nothing 1247If (node.Parent.IsKind(SyntaxKind.FieldDeclaration)) Then 1373Return node IsNot Nothing AndAlso TryCast(node.Parent, ForEachStatementSyntax)?.Expression Is node 1453Return node IsNot Nothing AndAlso TryCast(node.Parent, PropertyStatementSyntax)?.Initializer Is node 1578Return node.Parent IsNot Nothing AndAlso node.Parent.IsKind(kind)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Simplification\VisualBasicInferredMemberNameSimplifier.vb (2)
20If RemovalCausesAmbiguity(DirectCast(node.Parent, TupleExpressionSyntax).Arguments, node) Then 35Dim parentMemberInitializer As ObjectMemberInitializerSyntax = DirectCast(node.Parent, ObjectMemberInitializerSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\CastAnalyzer.vb (4)
35Dim argument = TryCast(_castNode.WalkUpParentheses().Parent, ArgumentSyntax) 59Dim parent = expression.Parent 75Dim returnedType = AsTypeInVariableDeclarator(parentEqualsValue.Parent, semanticModel) 362Dim parentNode = expression.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\SpeculationAnalyzer.vb (2)
339Debug.Assert(previousOriginalNode Is Nothing OrElse previousOriginalNode.Parent Is currentOriginalNode) 340Debug.Assert(previousReplacedNode Is Nothing OrElse previousReplacedNode.Parent Is currentReplacedNode)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationHelpers.vb (2)
216Dim variableDeclarator = TryCast(modifiedIdentifierNode.Parent, VariableDeclaratorSyntax) 218Dim fieldDecl = TryCast(variableDeclarator.Parent, FieldDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicDeclarationComparer.vb (3)
325declaration = declaration.Parent 328Dim node = declaration.Parent 345node = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\SyntaxTreeExtensions.vb (7)
323TypeOf targetToken.Parent.Parent Is NewExpressionSyntax Then 325Dim symbolInfo = semanticModel.GetSymbolInfo(DirectCast(targetToken.Parent.Parent, NewExpressionSyntax).Type(), cancellationToken) 444TypeOf targetToken.Parent.Parent Is LambdaHeaderSyntax Then 471targetToken.Parent.Parent.IsKind(SyntaxKind.Attribute) Then 691ancestor = ancestor.Parent.Parent 709ancestor = ancestor.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\VisualBasicSyntaxContext.vb (10)
148Dim methodStatement = TryCast(asClause?.Parent, MethodBaseSyntax) 219If TypeOf collectionRange.Parent Is FromClauseSyntax AndAlso TypeOf collectionRange.Parent.Parent Is QueryExpressionSyntax Then 220Dim fromClause = DirectCast(collectionRange.Parent, FromClauseSyntax) 221Dim queryExpression = DirectCast(collectionRange.Parent.Parent, QueryExpressionSyntax) 226If fromClause.Variables.FirstOrDefault() Is collectionRange AndAlso queryExpression.Clauses.FirstOrDefault() Is collectionRange.Parent Then 229ElseIf TypeOf collectionRange.Parent Is SimpleJoinClauseSyntax OrElse TypeOf collectionRange.Parent Is GroupJoinClauseSyntax Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (3)
201Return DirectCast(statement.Parent, ConstructorBlockSyntax).Statements(0) Is statement 206Dim simpleArgument = TryCast(expression.Parent, SimpleArgumentSyntax) 253Return TypeOf expression?.Parent Is MemberAccessExpressionSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ParameterSyntaxExtensions.vb (2)
16parameter.Parent.Parent.IsKind(SyntaxKind.FunctionLambdaHeader, SyntaxKind.SubLambdaHeader) Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\SimpleNameSyntaxExtensions.vb (3)
15Return DirectCast(name.Parent, MemberAccessExpressionSyntax).Expression 17Return DirectCast(name.Parent, QualifiedNameSyntax).Left 37Dim invocationExpression = DirectCast(simpleName.Parent, InvocationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Indentation\VisualBasicIndentationService.vb (2)
104currentNode = currentNode.Parent 114currentNode = currentNode.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\InitializeParameter\VisualBasicInitializeParameterService.vb (1)
29Return TryCast(TryCast(reference, AccessorStatementSyntax)?.Parent, AccessorBlockSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (26)
58Dim parent = node.Parent 159Function(nameColonEquals As NameColonEqualsSyntax) InferTypeInArgumentList(TryCast(nameColonEquals.Parent.Parent, ArgumentListSyntax), DirectCast(nameColonEquals.Parent, ArgumentSyntax)), 178Return If(parameterList.Parent IsNot Nothing, 179InferTypeInLambda(TryCast(parameterList.Parent.Parent, LambdaExpressionSyntax)), 185If TypeOf argument.Parent Is ArgumentListSyntax Then 187DirectCast(argument.Parent, ArgumentListSyntax), argument, previousToken) 190If TypeOf argument.Parent Is TupleExpressionSyntax Then 192DirectCast(argument.Parent, TupleExpressionSyntax), 232If argumentList.Parent IsNot Nothing Then 237Dim invocation = TryCast(argumentList.Parent, InvocationExpressionSyntax) 275ElseIf invocation.Parent.IsKind(SyntaxKind.ConditionalAccessExpression) Then 276targetExpression = DirectCast(invocation.Parent, ConditionalAccessExpressionSyntax).Expression 292Dim creation = TryCast(argumentList.Parent, ObjectCreationExpressionSyntax) 317Dim attribute = TryCast(argumentList.Parent, AttributeSyntax) 603Dim variableDeclarator = DirectCast(equalsValue.Parent, VariableDeclaratorSyntax) 627Dim propertySyntax = CType(equalsValue.Parent, PropertyStatementSyntax) 799If TypeOf switchStatementSyntax.Parent Is SelectBlockSyntax Then 800Dim firstCase = DirectCast(switchStatementSyntax.Parent, SelectBlockSyntax).CaseBlocks.SelectMany(Function(c) c.CaseStatement.Cases).OfType(Of SimpleCaseClauseSyntax).FirstOrDefault() 913memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression) Then 914Return InferTypes(DirectCast(memberAccessExpression.Parent, ExpressionSyntax)) 933Dim invocation = DirectCast(memberAccessExpression.Parent, InvocationExpressionSyntax) 1065Dim objectInitializer = TryCast(collectionInitializer.Parent, ObjectCollectionInitializerSyntax) 1066Dim objectCreation = TryCast(objectInitializer?.Parent, ObjectCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\SemanticModelReuse\VisualBasicSemanticModelReuseLanguageService.vb (2)
28Dim container = accessor.Parent 49node = 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\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Microsoft.DotNet.CodeAnalysis (3)
Analyzers\AppContextDefaultsAnalyzer.cs (3)
88if (!(containingIfStatement.Parent.IsKind(SyntaxKind.SwitchSection) || 89containingIfStatement.Parent.Parent.IsKind(SyntaxKind.SwitchSection)))
Microsoft.DotNet.GenFacades (15)
NotSupportedAssemblyGenerator.cs (5)
201if (node.Parent is NamespaceDeclarationSyntax parentNamespace) 207parent = GetFullyQualifiedName((TypeDeclarationSyntax)node.Parent); 215private string GetMethodDefinition(MethodDeclarationSyntax node) => GetFullyQualifiedName((TypeDeclarationSyntax)node.Parent) + "." + node.Identifier.ValueText; 217private string GetPropertyDefinition(PropertyDeclarationSyntax node) => GetFullyQualifiedName((TypeDeclarationSyntax)node.Parent) + "." + node.Identifier.ValueText; 219private string GetEventDefinition(EventDeclarationSyntax node) => GetFullyQualifiedName((TypeDeclarationSyntax)node.Parent) + "." + node.Identifier.ValueText;
TypeParser.cs (10)
79if (item.Parent is NamespaceDeclarationSyntax parent) 85fullyQualifiedName = GetFullyQualifiedName((BaseTypeDeclarationSyntax)item.Parent, item.Identifier.ValueText.Trim()); 96if (node.Parent is NamespaceDeclarationSyntax parent) 102return GetFullyQualifiedName((BaseTypeDeclarationSyntax)node.Parent, string.IsNullOrEmpty(nested) ? typeName : typeName + "." + nested); 155if (token.Parent == null || token.Parent is NamespaceDeclarationSyntax) 158return HasPublicModifier(token.Modifiers) && HasPublicModifier((BaseTypeDeclarationSyntax)(token.Parent)); 163if (token.Parent == null || token.Parent is NamespaceDeclarationSyntax) 166return HasPublicModifier(token.Modifiers) && HasPublicModifier((BaseTypeDeclarationSyntax)(token.Parent));
Microsoft.Extensions.Logging.Generators (6)
LoggerMessageGenerator.Parser.cs (5)
546SyntaxNode? potentialNamespaceParent = classDec.Parent; 554potentialNamespaceParent = potentialNamespaceParent.Parent; 566namespaceParent = namespaceParent.Parent as NamespaceDeclarationSyntax; 588var parentLoggerClass = (classDec.Parent as TypeDeclarationSyntax); 606parentLoggerClass = (parentLoggerClass.Parent as TypeDeclarationSyntax);
LoggerMessageGenerator.Roslyn4.0.cs (1)
37var classDeclaration = context.TargetNode.Parent as ClassDeclarationSyntax;
Microsoft.Extensions.Options.SourceGeneration (2)
Parser.cs (2)
126var parent = syntax.Parent as TypeDeclarationSyntax; 131parent = parent.Parent as TypeDeclarationSyntax;
Microsoft.Gen.BuildMetadata (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.ComplianceReports (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.ContextualOptions (2)
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.Logging (9)
LoggingGenerator.cs (2)
22(syntaxNode, _) => syntaxNode.Parent is TypeDeclarationSyntax, 23(context, _) => (TypeDeclarationSyntax)context.TargetNode.Parent!);
Parsing\Parser.cs (5)
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)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.MetadataExtractor (7)
src\Generators\Microsoft.Gen.Metrics\Parser.cs (5)
108SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 113potentialNamespaceParent = potentialNamespaceParent.Parent; 122ns = ns.Parent as NamespaceDeclarationSyntax; 147var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 170parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.Metrics (8)
MetricsGenerator.cs (1)
29GeneratorUtilities.Initialize(context, _attributeNames, m => m.Parent as TypeDeclarationSyntax, HandleAnnotatedTypes);
Parser.cs (5)
108SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 113potentialNamespaceParent = potentialNamespaceParent.Parent; 122ns = ns.Parent as NamespaceDeclarationSyntax; 147var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 170parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Gen.MetricsReports (7)
src\Generators\Microsoft.Gen.Metrics\Parser.cs (5)
108SyntaxNode? potentialNamespaceParent = typeDeclaration.Parent; 113potentialNamespaceParent = potentialNamespaceParent.Parent; 122ns = ns.Parent as NamespaceDeclarationSyntax; 147var parentMetricClass = typeDeclaration.Parent as TypeDeclarationSyntax; 170parentMetricClass = parentMetricClass.Parent as TypeDeclarationSyntax;
src\Generators\Shared\GeneratorUtilities.cs (2)
112var node = attributeSyntax.Parent?.Parent;
Microsoft.Interop.ComInterfaceGenerator (6)
Analyzers\ComInterfaceGeneratorDiagnosticsAnalyzer.cs (2)
300if (attrSyntax.Parent?.Parent is InterfaceDeclarationSyntax ifaceSyntax)
Analyzers\VtableIndexStubDiagnosticsAnalyzer.cs (2)
120for (SyntaxNode? parentNode = methodSyntax.Parent; parentNode is TypeDeclarationSyntax typeDecl; parentNode = parentNode.Parent)
src\runtime\src\libraries\System.Runtime.InteropServices\gen\Common\ConvertToSourceGeneratedInteropFixer.cs (2)
230for (SyntaxNode? node = syntax.Parent; node is not null; node = node.Parent)
Microsoft.Interop.JavaScript.JSImportGenerator (1)
Analyzers\JSImportExportDiagnosticsAnalyzer.cs (1)
170if (methodSyntax.Parent is TypeDeclarationSyntax typeDecl && !typeDecl.IsInPartialContext(out var nonPartialIdentifier))
Microsoft.Interop.LibraryImportGenerator (12)
Analyzers\ConvertToLibraryImportFixer.cs (9)
315{ Parent: InvocationExpressionSyntax invocationInScope } => invocationInScope, 316{ Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocationOnType } } => invocationOnType, 334else if (invocation.Parent.IsKind(SyntaxKind.ExpressionStatement)) 354else if (invocation.Parent.IsKind(SyntaxKind.EqualsValueClause)) 387else if (invocation.Parent.IsKind(SyntaxKind.SimpleAssignmentExpression) && invocation.Parent.Parent.IsKind(SyntaxKind.ExpressionStatement)) 389editor.ReplaceNode(invocation.Parent,
Analyzers\LibraryImportDiagnosticsAnalyzer.cs (1)
331if (methodSyntax.Parent is TypeDeclarationSyntax typeDecl && !typeDecl.IsInPartialContext(out var nonPartialIdentifier))
src\runtime\src\libraries\System.Runtime.InteropServices\gen\Common\ConvertToSourceGeneratedInteropFixer.cs (2)
230for (SyntaxNode? node = syntax.Parent; node is not null; node = node.Parent)
Microsoft.Interop.LibraryImportGenerator.Downlevel (1)
DownlevelLibraryImportDiagnosticsAnalyzer.cs (1)
335if (methodSyntax.Parent is TypeDeclarationSyntax typeDecl && !typeDecl.IsInPartialContext(out var nonPartialIdentifier))
Microsoft.Interop.SourceGeneration (6)
ContainingSyntaxContext.cs (3)
54for (SyntaxNode? parent = memberDeclaration.Parent; parent is TypeDeclarationSyntax typeDeclaration; parent = parent.Parent) 70for (SyntaxNode? parent = memberDeclaration.FirstAncestorOrSelf<BaseNamespaceDeclarationSyntax>(); parent is BaseNamespaceDeclarationSyntax ns; parent = parent.Parent)
MarshalAsParser.cs (2)
302Parent.Parent: ParameterSyntax parameterSyntax
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))
QuarantineTools.Tests (4)
ActiveIssueTests.cs (2)
325for (var current = node.Parent; current != null; current = current.Parent)
QuarantineScriptTests.cs (2)
269for (var current = node.Parent; current != null; current = current.Parent)
Roslyn.Diagnostics.Analyzers (70)
SpecializedEnumerableCreationAnalyzer.cs (1)
147addDiagnostic(name.Parent.CreateDiagnostic(UseEmptyEnumerableRule));
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (3)
182while (declSyntax.Parent != null && Equals(model.GetDeclaredSymbol(declSyntax.Parent, context.CancellationToken), declaredSymbol)) 184declSyntax = declSyntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IMethodSymbolExtensions.cs (1)
447syntax = syntax.Parent;
src\roslyn\src\RoslynAnalyzers\Utilities\Workspaces\SyntaxGeneratorExtensions.cs (1)
448node = generator.GetDeclaration(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (13)
60while (syntaxFacts.IsQualifiedName(topNameNode.Parent)) 61topNameNode = topNameNode.Parent; 63var parent = topNameNode?.Parent; 94while (syntaxFacts.IsQualifiedName(node.Parent)) 95node = node.Parent; 97if (syntaxFacts.IsTypeArgumentList(node.Parent)) 101else if (syntaxFacts.IsTypeConstraint(node.Parent)) 105else if (syntaxFacts.IsBaseTypeList(node.Parent) || 106syntaxFacts.IsBaseTypeList(node.Parent?.Parent)) 194while (syntaxFacts.IsMemberAccessExpression(node?.Parent)) 195node = node.Parent; 221return syntaxFacts.IsLeftSideOfDot(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (6)
24=> node.Parent ?? throw new InvalidOperationException("Node's parent was null"); 34var current = node.Parent; 47var current = node.Parent; 62var current = node.Parent; 131if (node?.Parent is not T parentNode) 795var parent = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\BottomUpBaseIndentationFinder.cs (4)
242current = current.Parent; 261currentNode = currentNode.Parent; 272currentNode = currentNode.Parent; 295currentNode = currentNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.InitialContextFinder.cs (2)
100node = node.Parent; 163currentIndentationNode = currentIndentationNode.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\FormattingExtensions.cs (4)
23if (node.Parent == null) 28if (node.Parent.Span != node.Span) 30return node.Parent; 33return GetParentWithBiggerSpan(node.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\BlockFacts\IBlockFactsExtensions.cs (3)
15for (var current = node; current is not null; current = current.Parent) 17if (blockFacts.IsStatementContainer(current.Parent)) 18return current.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (8)
302leftNode = leftNode?.Parent; 341rightNode = rightNode?.Parent; 396selectionNode = selectionNode.Parent; 427if (syntaxFacts.IsLocalDeclarationStatement(node) || syntaxFacts.IsLocalDeclarationStatement(node.Parent)) 429var localDeclarationStatement = syntaxFacts.IsLocalDeclarationStatement(node) ? node : node.Parent!; 489if (syntaxFacts.IsExpressionStatement(node.Parent)) 491yield return node.Parent; 567ancestor = ancestor.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (2)
68.Where(m => m.Parent is TTypeDeclarationSyntax) 81var containingType = (TTypeDeclarationSyntax)firstMember.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SyntaxFacts\ISyntaxFactsExtensions.cs (10)
300while (syntaxFacts.IsParenthesizedExpression(node?.Parent)) 301node = node.Parent; 618var parent = node?.Parent; 627var parent = node?.Parent; 637var parent = node?.Parent; 647if (!syntaxFacts.IsAttribute(node?.Parent)) 650syntaxFacts.GetPartsOfAttribute(node.Parent, out var name, out _); 656var parent = node?.Parent; 666var parent = node?.Parent; 676var parent = node?.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (6)
544RoslynDebug.AssertNotNull(currentOriginalNode.Parent); 545RoslynDebug.AssertNotNull(currentReplacedNode.Parent); 549currentOriginalNode = currentOriginalNode.Parent; 550currentReplacedNode = currentReplacedNode.Parent; 573Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 574Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (1)
340node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxEditorExtensions.cs (2)
206n.Parent == null, 214n.Parent == null,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\AddImports\AbstractAddImportsService.cs (1)
194var node = usingDirective != null ? usingDirective.Parent! : contextNode;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\SemanticModelReuse\AbstractSemanticModelReuseLanguageService.cs (2)
153var parent = current.Parent; 170parent = current.Parent;
Roslyn.Diagnostics.CSharp.Analyzers (504)
CSharpImportingConstructorShouldBeObsoleteCodeFixProvider.cs (1)
27typeDeclaration = attributeName.GetAncestor<AttributeListSyntax>()?.Parent;
CSharpSpecializedEnumerableCreationAnalyzer.cs (1)
101AnalyzeArrayLength(initializer.Expressions.Count, initializer.Parent, addDiagnostic);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\CSharpVirtualCharService.cs (1)
38if (token.Parent?.Parent is InterpolatedStringExpressionSyntax { StringStartToken.RawKind: (int)SyntaxKind.InterpolatedMultiLineRawStringStartToken })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ArgumentSyntaxExtensions.cs (3)
45if (argument.Parent is not BaseArgumentListSyntax argumentList || 46argumentList.Parent is null) 52var symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\AttributeArgumentSyntaxExtensions.cs (2)
33if (argument.Parent is not AttributeArgumentListSyntax argumentList) 36if (argumentList.Parent is not AttributeSyntax invocableExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DefaultExpressionSyntaxExtensions.cs (4)
40if (defaultExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 70equalsValueClause.Parent?.Parent is VariableDeclarationSyntax declaration) 74else if (equalsValueClause?.Parent is ParameterSyntax parameter)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\DirectiveSyntaxExtensions.cs (2)
20while (node.Parent != null || node is StructuredTriviaSyntax) 22node = node.Parent ?? node.ParentTrivia.Token.GetRequiredParent();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (55)
22while (expression?.Parent is ParenthesizedExpressionSyntax parentExpr) 45=> expression is { Parent: NameMemberCrefSyntax { Parent: QualifiedCrefSyntax } }; 48=> expression?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == expression; 55return expression == (expression.Parent as MemberAccessExpressionSyntax)?.Name || 60=> expression?.Parent is MemberBindingExpressionSyntax memberBinding && 64=> expression?.Parent is QualifiedNameSyntax qualifiedName && qualifiedName.Right == expression; 67=> expression?.Parent is AliasQualifiedNameSyntax aliasName && aliasName.Name == expression; 98=> (expression?.Parent) is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && 103(expression.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Expression == expression); 106=> (expression?.Parent) is QualifiedNameSyntax qualifiedName && qualifiedName.Left == expression; 112=> expression?.Parent is InvocationExpressionSyntax invocation && 197=> expression?.Parent is ArgumentSyntax { RefOrOutKeyword: SyntaxToken(SyntaxKind.OutKeyword) } argument && 209while (expression?.Parent is ParenthesizedExpressionSyntax or PostfixUnaryExpressionSyntax(SyntaxKind.SuppressNullableWarningExpression)) 210expression = (ExpressionSyntax)expression.Parent; 212if (expression?.Parent is RefExpressionSyntax or 215refParent = expression.Parent; 224=> expression?.Parent is ArgumentSyntax { RefKindKeyword: SyntaxToken(SyntaxKind.InKeyword) }; 248if (expression.Parent != null) 282var parent = expr.Parent; 291if (parent.Parent?.Kind() == SyntaxKind.TupleExpression) 293expr = (TupleExpressionSyntax)parent.Parent; 337if (refParent.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type: { } variableDeclarationType } } }) 355if (expression.Parent.IsKind(SyntaxKind.AddressOfExpression)) 366if (expression.Parent is MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccess && 384if (expression.Parent is ArgumentSyntax) 399var nameEquals = expression?.Parent as NameEqualsSyntax; 405if (expression?.Parent is SyntaxNode parent) 421=> expression is IdentifierNameSyntax { Parent: NameColonSyntax }; 517return expression is { Parent.RawKind: not (int)SyntaxKind.ConditionalAccessExpression }; 520if (expression.Parent == null) 523switch (expression.Parent.Kind()) 553var parentConditionalAccessExpression = (ConditionalAccessExpressionSyntax)expression.Parent; 555!parentConditionalAccessExpression.Parent.IsKind(SyntaxKind.ConditionalAccessExpression); 560var isOrAsExpression = (BinaryExpressionSyntax)expression.Parent; 596if (expression.Parent is PrefixUnaryExpressionSyntax) 606while (topExpression.Parent is TypeSyntax typeSyntax) 620if (expression.Parent is PostfixUnaryExpressionSyntax or 639if ((expression.IsParentKind(SyntaxKind.NameEquals) && expression.Parent.IsParentKind(SyntaxKind.AttributeArgument)) || 649=> expression is { Parent: ArgumentSyntax { Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocation } } } && 901=> expression?.Parent is MemberAccessExpressionSyntax; 912var parent = topExpression.Parent; 944if (argument.Parent is TupleExpressionSyntax tupleExpression) 973for (SyntaxNode? current = returnStatement; current != null; current = current.Parent) 988if (equalsValue.Parent is VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax { Type.IsVar: true } }) 1058if (initializerExpression.Parent is ArrayCreationExpressionSyntax arrayCreation) 1062if (initializerExpression.Parent is ImplicitArrayCreationExpressionSyntax) 1074if (initializerExpression.Parent is EqualsValueClauseSyntax equalsValue) 1078if (initializerExpression.Parent is StackAllocArrayCreationExpressionSyntax or ImplicitStackAllocArrayCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (22)
27var nodeParent = node.Parent; 39? nodeParent.Parent as ExpressionSyntax 70if (nodeParent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax { Parent: VariableDeclarationSyntax varDecl } }) 368if (node.Parent is not ConstantPatternSyntax { Parent: IsPatternExpressionSyntax }) 548if (node?.Parent is CastExpressionSyntax castExpression) 606if (node.Parent is BinaryExpressionSyntax binaryExpression && 608(binaryExpression.IsParentKind(SyntaxKind.Argument) || binaryExpression.Parent is InitializerExpressionSyntax)) 660if (node.Parent is ArgumentSyntax argument) 662if (argument.Parent is ArgumentListSyntax argumentList) 671else if (node.Parent is InitializerExpressionSyntax initializer) 695if (node.Parent is ArgumentSyntax argument) 697if (argument.Parent is ArgumentListSyntax argumentList) 706else if (node.Parent is InitializerExpressionSyntax initializer) 744if (pattern is DiscardPatternSyntax && node.Parent is IsPatternExpressionSyntax) 759if (node.Parent is ParenthesizedPatternSyntax) 763if (node.Parent is IsPatternExpressionSyntax) 767if (node.Parent is SwitchExpressionArmSyntax) 771if (node.Parent is SubpatternSyntax) 775if (node.Parent is CasePatternSwitchLabelSyntax) 781return node.Parent is PatternSyntax patternParent &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SemanticModelExtensions.cs (29)
207if (type.Parent is BaseTypeSyntax { Parent: BaseListSyntax baseList } baseType && 215else if (baseList.Types[0] == type.Parent) 224if (type?.Parent is VariableDeclarationSyntax variableDeclaration && 233type.Parent.IsParentKind(SyntaxKind.EqualsValueClause) && 234type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) && 235type.Parent.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclaration, out variableDeclaration) && 251if (type.Parent.Kind() 260type.Parent, cancellationToken).DeclaredAccessibility; 273if (type.IsParentKind(SyntaxKind.Parameter) && type.Parent.IsParentKind(SyntaxKind.ParameterList)) 275if (type.Parent.Parent.Parent?.Kind() 282type.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility; 285if (type.Parent.Parent.IsParentKind(SyntaxKind.ConstructorDeclaration)) 287var symbol = semanticModel.GetDeclaredSymbol(type.Parent.Parent.Parent, cancellationToken); 380if (current.Parent is ForEachStatementSyntax foreachStatement && 387if (current.Parent is AnonymousObjectMemberDeclaratorSyntax { NameEquals: { } nameEquals } anonymousObjectMemberDeclarator && 432if (topExpression?.Parent is ArgumentSyntax argument) 439if (argument.Parent is BaseArgumentListSyntax argumentList) 442if (semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol is IMethodSymbol member && index < member.Parameters.Length)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SimpleNameSyntaxExtensions.cs (6)
19return ((MemberAccessExpressionSyntax)name.Parent).Expression; 27return ((QualifiedNameSyntax)name.Parent).Left; 31return ((QualifiedCrefSyntax)name.Parent.Parent).Container; 52if (simpleName?.Parent is InvocationExpressionSyntax invocation && 59if (simpleName?.Parent is ElementAccessExpressionSyntax elementAccess &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\StatementSyntaxExtensions.cs (4)
40if (first.Parent.IsKind(SyntaxKind.GlobalStatement)) 41return second.Parent.IsKind(SyntaxKind.GlobalStatement); 43return first.Parent == second.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\SyntaxNodeExtensions.cs (23)
45=> CodeAnalysis.CSharpExtensions.IsKind(node?.Parent, kind); 52result = (TNode)node.Parent!; 186if ((current?.Parent is MemberAccessExpressionSyntax(SyntaxKind.SimpleMemberAccessExpression) memberAccess && memberAccess.Name == current) || 187(current?.Parent is MemberBindingExpressionSyntax memberBinding && memberBinding.Name == current)) 189current = current.Parent; 203current.Parent is not ConditionalAccessExpressionSyntax) 205current = current.Parent; 235if (current?.Parent is ConditionalAccessExpressionSyntax conditional1 && 241if (current?.Parent is ConditionalAccessExpressionSyntax conditional2 && 261while (current?.Parent is ConditionalAccessExpressionSyntax conditional && 288=> node?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment && 292=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Left == node; 295=> node?.Parent is AssignmentExpressionSyntax assignment && assignment.Right == node; 299return node?.Parent != null && 300node.Parent.IsCompoundAssignExpression() && 301((AssignmentExpressionSyntax)node.Parent).Left == node; 337for (var current = node; current != null; current = current.Parent) 360return !current.Parent.IsKind(SyntaxKind.CompilationUnit); 676=> node?.Parent is EqualsValueClauseSyntax { Parent: VariableDeclaratorSyntax } equalsValue && 692current = current.Parent; 794for (var current = node; current != null; current = current.Parent) 842for (var current = node; current != null; current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\VariableDeclaratorExtensions.cs (1)
15if (declarator.Parent is VariableDeclarationSyntax variableDeclaration)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.DocumentationCommentExteriorCommentRewriter.cs (1)
85currentParent = currentParent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\FormattingHelpers.cs (14)
110if (token.Parent.IsKind(SyntaxKind.PositionalPatternClause) && token.Parent.Parent.IsKind(SyntaxKind.RecursivePattern)) 113return token.Parent.Parent.GetFirstToken() != token; 126=> token.Kind() == SyntaxKind.OpenParenToken && token.Parent.IsKind(SyntaxKind.ParameterList) && token.Parent.Parent.IsKind(SyntaxKind.ParenthesizedLambdaExpression); 135return node.Parent?.Kind() is SyntaxKind.SimpleLambdaExpression or SyntaxKind.ParenthesizedLambdaExpression; 204&& statementOrElse.Parent != null 205&& statementOrElse.Parent.IsEmbeddedStatementOwner(); 282token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration); 382token.Parent?.Parent is QueryExpressionSyntax queryExpression && 390var parent = initializer.Parent; 414return anonymousObjectInitializer.Parent is AnonymousObjectCreationExpressionSyntax; 426var parent = initializer.Parent; 446var parent = anonymousObjectInitializer.Parent; 482return token.Parent.Parent is LabeledStatementSyntax; 527return currentToken.Kind() == SyntaxKind.OpenParenToken && currentToken is { Parent: ParenthesizedVariableDesignationSyntax, Parent.Parent: DeclarationExpressionSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\AnchorIndentationFormattingRule.cs (2)
36if (block.Parent is null or BlockSyntax) 44block.Parent.GetFirstToken(includeZeroWidth: true),
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\BaseFormattingRule.cs (2)
167RoslynDebug.AssertNotNull(node.Parent); 170firstTokenOfNode = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\ElasticTriviaFormattingRule.cs (1)
406if (parent.Parent is ParameterSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (10)
63if (node is TypeParameterConstraintClauseSyntax { Parent: { } declaringNode }) 103RoslynDebug.AssertNotNull(node.Parent); 104var switchStatement = (SwitchStatementSyntax)node.Parent; 183if (propertyPatternClause.Parent is RecursivePatternSyntax { Parent: { } recursivePatternParent }) 228if (node.IsKind(SyntaxKind.ArrayInitializerExpression) && node.Parent != null && node.Parent.IsKind(SyntaxKind.ArrayCreationExpression)) 262if (node.Parent != null && node.Kind() is SyntaxKind.ListPattern or SyntaxKind.CollectionExpression) 378for (var current = node; current != null; current = current.Parent) 380if (current.Parent is SwitchExpressionArmSyntax arm && arm.Pattern == current)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (7)
49var parentKind = node.Parent?.Kind(); 85&& previousToken.Parent!.Parent == currentToken.Parent.Parent) 165var currentTokenParentParent = currentToken.Parent.Parent; 280|| previousToken.Parent!.Parent != currentToken.Parent.Parent) 369var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (3)
133var constructorDeclarationNode = constructorInitializerNode.Parent as ConstructorDeclarationSyntax; 378if (initializer?.Parent != null) 380AddInitializerSuppressOperations(list, initializer.Parent, initializer.Expressions);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\TokenBasedFormattingRule.cs (3)
205var attributeOwner = previousToken.Parent?.Parent; 231RoslynDebug.AssertNotNull(currentUsing.Parent); 233if (AreUsingsProperlyGrouped(GetUsings(currentUsing.Parent)))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\WrappingFormattingRule.cs (1)
146firstTokenOfNode = node.Parent!.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (1)
73endToken.Parent.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.DoStatement;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\RefactoringHelpers\CSharpRefactoringHelpers.cs (2)
98var declaration = declarator.Parent; 99if (declaration?.Parent is LocalDeclarationStatementSyntax localDeclarationStatement)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SemanticFacts\CSharpSemanticFacts.cs (6)
351case IdentifierNameSyntax { Parent: PrimaryConstructorBaseTypeSyntax baseType }: 410SimpleNameSyntax { Parent: InvocationExpressionSyntax invocation } => invocation.ArgumentList, 412SimpleNameSyntax { Parent: MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberAccess } when memberAccess.Name == node => invocation.ArgumentList, 414SimpleNameSyntax { Parent: MemberBindingExpressionSyntax { Parent: InvocationExpressionSyntax invocation } memberBinding } when memberBinding.Name == node => invocation.ArgumentList,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpAccessibilityFacts.cs (3)
43return declaration.Parent is BaseFieldDeclarationSyntax; 46return declaration.Parent is VariableDeclarationSyntax { Parent: BaseFieldDeclarationSyntax };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpBlockFacts.cs (2)
28=> statement.Parent switch 32GlobalStatementSyntax globalStatement => globalStatement.Parent,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (29)
173=> node?.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node; 204=> node?.Parent is UsingDirectiveSyntax usingDirective && 254return node.Parent is BaseMethodDeclarationSyntax or 528if (semanticModel != null && token.Parent is BracketedArgumentListSyntax { Parent: ElementAccessExpressionSyntax elementAccessExpression }) 637node.Parent.IsParentKind(SyntaxKind.Subpattern); 649if (identifier.Parent.IsParentKind(SyntaxKind.WithInitializerExpression)) 651var withInitializer = identifier.Parent.GetRequiredParent(); 655else if (identifier.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression)) 657var objectInitializer = identifier.Parent.GetRequiredParent(); 658if (objectInitializer.Parent is BaseObjectCreationExpressionSyntax) 660initializedInstance = objectInitializer.Parent; 663else if (objectInitializer?.Parent is AssignmentExpressionSyntax(SyntaxKind.SimpleAssignmentExpression) assignment) 675=> expression is IdentifierNameSyntax { Parent: NameEqualsSyntax { Parent: AnonymousObjectMemberDeclaratorSyntax } nameEquals } identifier && 682Parent: BaseObjectCreationExpressionSyntax or ArrayCreationExpressionSyntax or ImplicitArrayCreationExpressionSyntax 685creationExpression = node.Parent; 731node = node.Parent; 772var parent = node.GetAncestor<TypeDeclarationSyntax>() ?? node.Parent; 776parent = parent.Parent; 785parent = parent.Parent; 955var parent = node.Parent; 1091=> node?.Parent?.Kind() is SyntaxKind.PostIncrementExpression or SyntaxKind.PreIncrementExpression; 1094=> node?.Parent?.Kind() is SyntaxKind.PostDecrementExpression or SyntaxKind.PreDecrementExpression; 1155node.Parent is AttributeListSyntax attributeList && 1184return node.Parent?.Parent?.Kind() is SyntaxKind.FieldDeclaration or SyntaxKind.EventFieldDeclaration; 1266=> node?.Parent is ForEachStatementSyntax foreachStatement && foreachStatement.Expression == node; 1309=> ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)node).Parent!).Type; 1315=> node?.Parent is PropertyDeclarationSyntax propertyDeclaration && propertyDeclaration.Initializer == node;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\CSharpInferredMemberNameSimplifier.cs (3)
14if (node.NameColon == null || !node.Parent.IsKind(SyntaxKind.TupleExpression)) 24if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node)) 45if (RemovalCausesAmbiguity(((AnonymousObjectCreationExpressionSyntax)node.Parent!).Initializers, node))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (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 && 741if (castNode.WalkUpParentheses().Parent is not MemberAccessExpressionSyntax { Parent: InvocationExpressionSyntax } memberAccessExpression) 863static parentExpression => parentExpression.Parent is ConditionalExpressionSyntax conditionalExpression && conditionalExpression.Condition != parentExpression 888static parentExpression => parentExpression.Parent is SwitchExpressionArmSyntax { Parent: SwitchExpressionSyntax switchExpression } 1062if (expression.WalkUpParentheses().Parent 1180if (parent.Parent is ConditionalExpressionSyntax conditionalExpression) 1250if (castNode.Parent is AssignmentExpressionSyntax assignmentExpression && 1257else if (castNode.Parent is InitializerExpressionSyntax(SyntaxKind.ArrayInitializerExpression) arrayInitializer) 1263else if (castNode.Parent is EqualsValueClauseSyntax equalsValue && 1265equalsValue.Parent is VariableDeclaratorSyntax variableDeclarator) 1289for (SyntaxNode? current = expression; current != null; current = current.Parent) 1304for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1306currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1360for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1362currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1389for (SyntaxNode? currentOld = castNode.WalkUpParentheses().Parent, currentNew = rewrittenExpression.WalkUpParentheses().Parent; 1391currentOld = currentOld.Parent, currentNew = currentNew.Parent) 1665if (castNode.WalkUpParentheses().Parent is InterpolationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\FormattingRangeHelper.cs (9)
167var containerOfList = parent.Parent; 183var parentOfParent = parent.Parent; 317RoslynDebug.AssertNotNull(previousToken.Parent?.Parent); 318var labelNode = previousToken.Parent.Parent; 361RoslynDebug.AssertNotNull(node.Parent); 363node = node.Parent; 370node = node.Parent; 380node = node.Parent; 422return token.Parent.Parent as MemberDeclarationSyntax;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\SpeculationAnalyzer.cs (6)
297Debug.Assert(previousOriginalNode == null || previousOriginalNode.Parent == currentOriginalNode); 298Debug.Assert(previousReplacedNode == null || previousReplacedNode.Parent == currentReplacedNode); 441var oldSwitchStatement = (SwitchStatementSyntax)originalCaseSwitchLabel.Parent.Parent; 442var newSwitchStatement = (SwitchStatementSyntax)newCaseSwitchLabel.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpTypeStyleHelper.cs (2)
83var isSupportedParentKind = variableDeclaration.Parent is (kind: 99switch (declaration.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseExplicitTypeHelper.cs (7)
65if (typeName.Parent is DeclarationExpressionSyntax declExpression && 78if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 91if ((variableDeclaration.Parent as LocalDeclarationStatementSyntax)?.IsConst == true) 96else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 106else if (typeName.Parent is DeclarationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (10)
104if (typeName is { Parent: VariableDeclarationSyntax variableDeclaration, Parent.Parent: (kind: SyntaxKind.LocalDeclarationStatement or SyntaxKind.ForStatement or SyntaxKind.UsingStatement) }) 107if (variableDeclaration.Parent is LocalDeclarationStatementSyntax { IsConst: true }) 130else if (typeName.Parent is ForEachStatementSyntax foreachStatement && 139else if (typeName.Parent is DeclarationExpressionSyntax declarationExpression && 201if (declarationExpression.Parent is not ArgumentSyntax 203Parent: ArgumentListSyntax { Parent: InvocationExpressionSyntax invocationExpression } 277if (n.Parent is MemberAccessExpressionSyntax memberAccessParent && memberAccessParent.Expression == n)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpCodeGenerationHelpers.cs (3)
281&& reusableSyntaxNode.Parent is VariableDeclarationSyntax variableDeclarationNode 282&& reusableSyntaxNode.Parent.Parent is FieldDeclarationSyntax fieldDeclarationNode)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\CodeGeneration\CSharpDeclarationComparer.cs (5)
345for (var node = parent; node != null; node = node.Parent) 388var xAccessibility = GetAccessibilityPrecedence(xModifiers, x.Parent ?? y.Parent); 389var yAccessibility = GetAccessibilityPrecedence(yModifiers, y.Parent ?? x.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\CSharpSyntaxContext.cs (7)
215targetToken.Parent.Parent is (kind: SyntaxKind.ClassDeclaration or SyntaxKind.RecordDeclaration); 378token.Parent.Parent is ParameterSyntax { Parent: ParameterListSyntax { Parent: RecordDeclarationSyntax record } }) 394token.Parent.Parent is StatementSyntax) 491FromClauseSyntax { Parent: QueryExpressionSyntax queryExpression } fromClause => queryExpression.FromClause == fromClause, 548return attributeList?.Parent switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTokenExtensions.cs (20)
126if (token.Parent.Parent is StatementSyntax) 135if (token.Parent.Parent.Kind() is not SyntaxKind.TryStatement and not SyntaxKind.DoStatement) 138else if (token.Parent.Parent?.Kind() 180var container = token.Parent.Parent; 261var container = token.Parent.Parent; 262if (container is IncompleteMemberSyntax && container.Parent is CompilationUnitSyntax) 451targetToken.Parent.Parent.IsKind(SyntaxKind.Argument) && 452targetToken.Parent.Parent.Parent.IsKind(SyntaxKind.ArgumentList)) 454var owner = targetToken.Parent.Parent.Parent.Parent; 469if (targetToken.Parent?.Parent?.Kind() 590targetToken.Parent.Parent is AccessorDeclarationSyntax) 605targetToken.Parent.Parent is AccessorDeclarationSyntax) 617if (node?.Parent is TypeDeclarationSyntax(SyntaxKind.InterfaceDeclaration) typeDecl) 619else if (node?.Parent is DelegateDeclarationSyntax delegateDecl) 650targetToken.Parent.Parent.IsKind(SyntaxKind.TypeParameter) && 651IsGenericInterfaceOrDelegateTypeParameterList(targetToken.Parent.Parent.Parent))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (76)
100parent = attributeList.Parent; 180token.Parent.Parent is BaseTypeDeclarationSyntax) 197token.Parent.Parent is BaseTypeDeclarationSyntax) 209token.Parent.Parent is MemberDeclarationSyntax) 229var container = token.Parent.Parent?.Parent; 313member.Parent is BaseTypeDeclarationSyntax; 493token.Parent.Parent is MemberDeclarationSyntax) 520var container = token.Parent?.Parent?.Parent; 597var container = token.Parent?.Parent; 786token.Parent is BaseListSyntax { Parent: not EnumDeclarationSyntax }) 841token.Parent.Parent.IsParentKind(SyntaxKind.BaseList)) 957{ Parent: TypeSyntax { Parent.RawKind: (int)SyntaxKind.FunctionPointerParameter } } => true, 1016name.Parent?.Parent is ConditionalExpressionSyntax conditional && 1018conditional.Parent.IsParentKind(SyntaxKind.GlobalStatement)) 1106token.Parent.Parent is ParameterSyntax parameter3 && 1107parameter3.Parent is ParameterListSyntax parameterList3 && 1122parameter4 = scopedIdentifierName.Parent as ParameterSyntax; 1126if (parameter4 is { Parent: ParameterListSyntax parameterList4 } && 1136=> parameterList.Parent switch 1275parent = token.Parent.Parent; 1277else if (token.IsKind(SyntaxKind.IdentifierToken) && token is { Text: "scoped", Parent: IdentifierNameSyntax scopedIdentifierName } && scopedIdentifierName.Parent.IsKind(SyntaxKind.Parameter)) 1279parent = scopedIdentifierName.Parent.Parent; 1358leftToken.Parent.Parent is (kind: SyntaxKind.QualifiedName or SyntaxKind.SimpleMemberAccessExpression)) 1360var possibleCommaOrParen = FindTokenOnLeftOfNode(leftToken.Parent.Parent); 1442leftToken.Parent is SingleVariableDesignationSyntax { Parent: DeclarationPatternSyntax }; 1528while (typeSyntax.Parent is TypeSyntax parentTypeSyntax) 1533if (typeSyntax.Parent is BinaryExpressionSyntax binaryExpressionSyntax && 1564if (node is CaseSwitchLabelSyntax { Parent: SwitchSectionSyntax }) 1592possibleCommaOrParen.Parent?.Parent is ParenthesizedLambdaExpressionSyntax parenthesizedLambda) 1660if (outer.Parent is ForEachStatementSyntax @foreach) 1681if (node.Parent.IsKind(SyntaxKind.ParenthesizedExpression)) 1683node = node.Parent; 1687if (node.Parent.IsKind(SyntaxKind.Argument) && node.Parent.Parent.IsKind(SyntaxKind.TupleExpression)) 1689node = node.Parent.Parent; 1701leftToken.Parent?.Parent is InvocationExpressionSyntax invocation) 1809parent.Parent?.Parent is (kind: 1817if (parent.Parent is (kind: SyntaxKind.ForEachStatement or SyntaxKind.ForEachVariableStatement)) 1873if (token.IsKind(SyntaxKind.IdentifierToken) && token.Text == "scoped" && token.Parent.IsKind(SyntaxKind.IdentifierName) && token.Parent.Parent is VariableDeclarationSyntax or ExpressionStatementSyntax or IncompleteMemberSyntax) 2086equalsValue.Parent.IsParentKind(SyntaxKind.VariableDeclaration)) 2356type.Parent?.Parent is LocalDeclarationStatementSyntax declStatement) 2509token.Parent?.Parent is ObjectCreationExpressionSyntax objectCreation) 2746=> token.Parent?.Parent is InvocationExpressionSyntax invocation && 2763while (parentMemberAccess.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression)) 2765parentMemberAccess = parentMemberAccess.Parent; 2768if (parentMemberAccess.Parent.IsKind(SyntaxKind.Argument) && 2769parentMemberAccess.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2771token = ((ArgumentListSyntax)parentMemberAccess.Parent.Parent!).OpenParenToken; 2779while (parentQualifiedName.Parent.IsKind(SyntaxKind.QualifiedName)) 2781parentQualifiedName = parentQualifiedName.Parent; 2784if (parentQualifiedName.Parent.IsKind(SyntaxKind.Argument) && 2785parentQualifiedName.Parent.IsChildNode<ArgumentListSyntax>(a => a.Arguments.FirstOrDefault())) 2787token = ((ArgumentListSyntax)parentQualifiedName.Parent.Parent!).OpenParenToken; 2796token.Parent.Parent is InvocationExpressionSyntax invocationExpression && 2865nameExpr = (ExpressionSyntax)nameExpr.Parent!; 2876token.Parent.Parent is (kind: SyntaxKind.ObjectInitializerExpression or SyntaxKind.CollectionInitializerExpression)) 2885if (token.Parent.Parent is ArgumentSyntax { RefOrOutKeyword.RawKind: (int)SyntaxKind.OutKeyword }) 2921if (name.Parent != null) 2923switch (name.Parent.Kind()) 2926return ((QualifiedNameSyntax)name.Parent).Right == name; 2928return ((AliasQualifiedNameSyntax)name.Parent).Name == name; 2930return ((MemberAccessExpressionSyntax)name.Parent).Name == name; 2964block.Parent?.Kind() is SyntaxKind.TryStatement or SyntaxKind.CatchClause) 3008targetToken.Parent is BaseListSyntax { Parent: TypeDeclarationSyntax }; 3041token.Parent?.Parent is BinaryExpressionSyntax(SyntaxKind.IsExpression) binaryExpression && 3048token.Parent?.Parent is DeclarationPatternSyntax declarationExpression &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\NameSyntaxExtensions.cs (1)
35if (nameSyntax.Parent?.Kind()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\WithElementSyntaxExtensions.cs (1)
20if (withElement?.Parent is not CollectionExpressionSyntax collectionExpression)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\CSharpSyntaxFormattingService.cs (1)
353var currentTokenParentParent = currentToken.Parent.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Formatting\TypingFormattingRule.cs (2)
69if (!SomeParentHasMissingCloseBrace(node.Parent)) 112node = node.Parent;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.cs (3)
132!argument.Parent.IsKind(SyntaxKind.ThisConstructorInitializer) && 193RoslynDebug.AssertNotNull(node.Parent); 196var baseToken = node.Parent.GetFirstToken(includeZeroWidth: true);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Indentation\CSharpIndentationService.Indenter.cs (9)
220token.Parent?.Parent is StatementSyntax or ElseClauseSyntax); 222var embeddedStatementOwner = token.Parent.Parent; 225RoslynDebug.AssertNotNull(embeddedStatementOwner.Parent); 229if (embeddedStatementOwner.Parent is LabeledStatementSyntax) 232embeddedStatementOwner = embeddedStatementOwner.Parent; 254token.Parent.Parent.IsKind(SyntaxKind.PropertyDeclaration)) 406if (queryExpressionClause.Parent is not QueryBodySyntax queryBody) 429RoslynDebug.AssertNotNull(queryBody.Parent); 430return indenter.GetIndentationOfToken(queryBody.Parent.GetFirstToken(includeZeroWidth: true));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpReplaceDiscardDeclarationsWithAssignmentsService.cs (2)
100declarationPattern.Parent is IsPatternExpressionSyntax isPatternExpression) 208if (_localDeclarationStatement.Parent is BlockSyntax or SwitchSectionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSemanticFactsService.cs (1)
46if (container.Parent is LocalFunctionStatementSyntax or TypeDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (54)
134var parent = node.Parent; 281if (argument is { Parent.Parent: ConstructorInitializerSyntax initializer }) 287if (argument is { Parent.Parent: InvocationExpressionSyntax invocation }) 293if (argument is { Parent.Parent: BaseObjectCreationExpressionSyntax creation }) 304if (argument is { Parent.Parent: PrimaryConstructorBaseTypeSyntax primaryConstructorBaseType }) 311if (argument is { Parent.Parent: ElementAccessExpressionSyntax elementAccess }) 322if (argument is { Parent: TupleExpressionSyntax tupleExpression }) 327if (argument.Parent.IsParentKind(SyntaxKind.ImplicitElementAccess) && 328argument.Parent.Parent.IsParentKind(SyntaxKind.SimpleAssignmentExpression) && 329argument.Parent.Parent.Parent.IsParentKind(SyntaxKind.ObjectInitializerExpression) && 330argument.Parent.Parent.Parent.Parent?.Parent is BaseObjectCreationExpressionSyntax objectCreation) 381if (argument.Parent != null) 383if (argument.Parent.Parent is AttributeSyntax attribute) 521switch (argumentList.Parent) 551if (attributeArgumentList.Parent is AttributeSyntax attribute) 747var argumentCount = argumentOpt?.Parent is BaseArgumentListSyntax baseArgumentList ? baseArgumentList.Arguments.Count : -1; 900if (bracketedArgumentList.Parent is ElementAccessExpressionSyntax elementAccess) 1218if (equalsValue?.Parent is VariableDeclaratorSyntax varDecl) 1221if (equalsValue?.Parent is PropertyDeclarationSyntax propertyDecl) 1225SemanticModel.GetDeclaredSymbol(equalsValue.Parent, CancellationToken) is IParameterSymbol parameter) 1243if (expressionElement.Parent is CollectionExpressionSyntax collectionExpression) 1434if (initializerExpression?.Parent is ImplicitArrayCreationExpressionSyntax implicitArray) 1462else if (initializerExpression?.Parent is EqualsValueClauseSyntax equalsValueClause) 1472else if (initializerExpression?.Parent is ArrayCreationExpressionSyntax arrayCreation) 1482else if (initializerExpression?.Parent is ObjectCreationExpressionSyntax objectCreation) 1506var assignExpression = (AssignmentExpressionSyntax)initializerExpression.Parent; 1575if (singleVariableDesignation.Parent is DeclarationPatternSyntax declarationPattern) 1713if (memberDeclarator is { NameEquals: not null, Parent: AnonymousObjectCreationExpressionSyntax anonymousObject }) 1738return nameColon.Parent switch 1754return expressionColon.Parent switch 1806memberAccessExpression?.Parent is InvocationExpressionSyntax invocation && 1807memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression)) 1929if (nameColon.Parent is SubpatternSyntax subpattern) 1939if (expressionColon.Parent is SubpatternSyntax subpattern) 1956if (nameEquals.Parent is AttributeArgumentSyntax attributeArgumentSyntax) 2114=> InferTypeInMethodLikeDeclaration(arrowClause.Parent); 2150if (arm.Parent is SwitchExpressionSyntax switchExpression) 2198var switchStatement = (SwitchStatementSyntax)switchLabel.Parent.Parent; 2264variableDeclarator.Parent is not VariableDeclarationSyntax variableDeclaration) 2332var inferredFutureUsage = InferTypeBasedOnLaterUsage(symbol, afterNode: left.Parent);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\InitializeParameter\InitializeParameterHelpers.cs (1)
120if (node is IdentifierNameSyntax { Parent: not NameColonSyntax } identifierName &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\SemanticModelReuse\CSharpSemanticModelReuseLanguageService.cs (6)
31Contract.ThrowIfFalse(accessor.Parent is AccessorListSyntax); 32Contract.ThrowIfFalse(accessor.Parent.Parent is BasePropertyDeclarationSyntax); 33return (BasePropertyDeclarationSyntax)accessor.Parent.Parent; 41for (SyntaxNode? previous = null, current = node; current != null; previous = current, current = current.Parent)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Utilities\CSharpSimplificationHelpers.cs (1)
33var parent = parentOfToken.Parent;
Roslyn.Diagnostics.VisualBasic.Analyzers (287)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ArgumentSyntaxExtensions.vb (2)
30Dim argumentList = TryCast(argument.Parent, ArgumentListSyntax) 36Dim symbolInfo = semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (33)
16expression = DirectCast(expression.Parent, ExpressionSyntax) 38(expression.IsParentKind(SyntaxKind.QualifiedName) AndAlso DirectCast(expression.Parent, QualifiedNameSyntax).Left Is expression) OrElse 39(expression.IsParentKind(SyntaxKind.SimpleMemberAccessExpression) AndAlso DirectCast(expression.Parent, MemberAccessExpressionSyntax).Expression Is expression) 59DirectCast(expression.Parent, MemberAccessExpressionSyntax).Name Is expression 64Return TypeOf expression?.Parent Is MemberAccessExpressionSyntax AndAlso 65DirectCast(expression.Parent, MemberAccessExpressionSyntax).Name Is expression 81DirectCast(expression.Parent, QualifiedNameSyntax).Right Is expression 87DirectCast(expression.Parent, QualifiedNameSyntax).Left Is expression 156Dim unaryParent = TryCast(expression.WalkUpParentheses().Parent, UnaryExpressionSyntax) 279Dim simpleArgument = TryCast(expression?.Parent, SimpleArgumentSyntax) 290Dim argumentList = TryCast(simpleArgument.Parent, ArgumentListSyntax) 293Dim parent = argumentList.Parent 328expression = TryCast(expression.Parent, ExpressionSyntax) 337Dim assignmentStatement = DirectCast(expression.Parent, AssignmentStatementSyntax) 344expression.Parent.IsParentKind(SyntaxKind.SimpleArgument) Then 372expression = TryCast(expression.Parent, ExpressionSyntax) 380If TypeOf expression.Parent Is AssignmentStatementSyntax Then 381Dim assignmentStatement = DirectCast(expression.Parent, AssignmentStatementSyntax) 392If TypeOf expression.Parent Is MemberAccessExpressionSyntax Then 393Dim memberAccess = DirectCast(expression.Parent, MemberAccessExpressionSyntax) 498If TypeOf expression.Parent Is InvocationExpressionSyntax Then 551If TypeOf expression.Parent Is BinaryExpressionSyntax OrElse 552TypeOf expression.Parent Is AssignmentStatementSyntax OrElse 553TypeOf expression.Parent Is WhileOrUntilClauseSyntax OrElse 554TypeOf expression.Parent Is SingleLineLambdaExpressionSyntax OrElse 555TypeOf expression.Parent Is AwaitExpressionSyntax Then 572If TypeOf expression.Parent Is ExpressionRangeVariableSyntax AndAlso 573TypeOf expression.Parent.Parent Is QueryClauseSyntax Then 574Dim rangeVariable = DirectCast(expression.Parent, ExpressionRangeVariableSyntax) 575Dim selectClause = TryCast(rangeVariable.Parent, SelectClauseSyntax) 584Dim queryExpression = TryCast(selectClause.Parent, QueryExpressionSyntax) 589Dim aggregateClause = TryCast(selectClause.Parent, AggregateClauseSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\InvocationExpressionSyntaxExtensions.vb (1)
60Return DirectCast(invocationExpression.Parent, ConditionalAccessExpressionSyntax).Expression
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\MemberAccessExpressionSyntaxExtensions.vb (8)
50If TypeOf memberAccess.Parent Is InvocationExpressionSyntax Then 51statement = memberAccess.Parent.Parent 54statement = memberAccess.Parent 60DirectCast(statement.Parent, ConstructorBlockSyntax).Statements.First() Is statement 111TypeOf current.Parent Is ObjectCreationExpressionSyntax Then 112Return DirectCast(current.Parent, ExpressionSyntax) 115current = current.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ParenthesizedExpressionSyntaxExtensions.vb (22)
139Dim interpolation = DirectCast(node.Parent, InterpolationSyntax) 158If node.Parent.IsParentKind(SyntaxKind.ObjectCollectionInitializer) AndAlso 159DirectCast(node.Parent.Parent, ObjectCollectionInitializerSyntax).Initializer Is node.Parent Then 166If node.Parent.IsParentKind(SyntaxKind.CollectionInitializer) AndAlso 167node.Parent.Parent.IsParentKind(SyntaxKind.ObjectCollectionInitializer) AndAlso 168DirectCast(node.Parent.Parent.Parent, ObjectCollectionInitializerSyntax).Initializer Is node.Parent.Parent Then 280If TypeOf node.Parent Is ArgumentSyntax Then 284Dim argument = DirectCast(node.Parent, ArgumentSyntax) 301Dim parentInvocation = DirectCast(node.Parent, InvocationExpressionSyntax) 354Dim parentExpression = TryCast(node.Parent, ExpressionSyntax) 455If (node.Parent.Kind = SyntaxKind.InvocationExpression OrElse 456node.Parent.Kind = SyntaxKind.IsExpression OrElse 457node.Parent.Kind = SyntaxKind.TypeOfIsExpression OrElse 458node.Parent.Kind = SyntaxKind.TypeOfIsNotExpression) Then 468node.Parent.Kind = SyntaxKind.XmlEmbeddedExpression Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SemanticModelExtensions.vb (55)
114type.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then 115If type.Parent.Parent.IsParentKind(SyntaxKind.FieldDeclaration) OrElse 116type.Parent.Parent.IsParentKind(SyntaxKind.EventStatement) Then 117Dim variableDeclarator = DirectCast(type.Parent.Parent, VariableDeclaratorSyntax) 128type.Parent.IsParentKind(SyntaxKind.AsNewClause) AndAlso 129type.Parent.Parent.IsParentKind(SyntaxKind.VariableDeclarator) Then 130If type.Parent.Parent.Parent.IsParentKind(SyntaxKind.FieldDeclaration) OrElse 131type.Parent.Parent.Parent.IsParentKind(SyntaxKind.EventStatement) Then 132Dim variableDeclarator = DirectCast(type.Parent.Parent.Parent, VariableDeclaratorSyntax) 141If type.Parent.IsParentKind(SyntaxKind.DelegateFunctionStatement) OrElse 142type.Parent.IsParentKind(SyntaxKind.FunctionStatement) OrElse 143type.Parent.IsParentKind(SyntaxKind.PropertyStatement) OrElse 144type.Parent.IsParentKind(SyntaxKind.EventStatement) OrElse 145type.Parent.IsParentKind(SyntaxKind.OperatorStatement) Then 147type.Parent.Parent, cancellationToken).DeclaredAccessibility 152type.Parent.IsParentKind(SyntaxKind.Parameter) AndAlso 153type.Parent.Parent.IsParentKind(SyntaxKind.ParameterList) Then 154If type.Parent.Parent.Parent.IsParentKind(SyntaxKind.DelegateFunctionStatement) OrElse 155type.Parent.Parent.Parent.IsParentKind(SyntaxKind.FunctionStatement) OrElse 156type.Parent.Parent.Parent.IsParentKind(SyntaxKind.PropertyStatement) OrElse 157type.Parent.Parent.Parent.IsParentKind(SyntaxKind.OperatorStatement) OrElse 158type.Parent.Parent.Parent.IsParentKind(SyntaxKind.SubNewStatement) OrElse 159type.Parent.Parent.Parent.IsParentKind(SyntaxKind.SubStatement) Then 161type.Parent.Parent.Parent.Parent, cancellationToken).DeclaredAccessibility 233If TypeOf topExpression.Parent Is ArgumentSyntax Then 234Dim argument = DirectCast(topExpression.Parent, ArgumentSyntax) 241Dim argumentList = TryCast(argument.Parent, ArgumentListSyntax) 244Dim member = TryCast(semanticModel.GetSymbolInfo(argumentList.Parent, cancellationToken).Symbol, IMethodSymbol)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\StatementSyntaxExtensions.vb (1)
745DirectCast(statement.Parent, ConstructorBlockSyntax).Statements.FirstOrDefault() Is statement Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\SyntaxNodeExtensions.vb (24)
20node.Parent.IsKind(kind) 26IsKind(node.Parent, kind1, kind2) 32IsKind(node.Parent, kind1, kind2, kind3) 682singleLineIf = DirectCast(executableBlock.Parent, SingleLineIfStatementSyntax) 731current = singleLineIf.Parent 789DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 795node.Parent.IsAnyAssignmentStatement() AndAlso 796DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 808node.Parent.IsCompoundAssignmentStatement() AndAlso 809DirectCast(node.Parent, AssignmentStatementSyntax).Left Is node 987node = DirectCast(node.Parent, ExpressionSyntax) 996TypeOf node.Parent IsNot ConditionalAccessExpressionSyntax 998node = TryCast(node.Parent, ExpressionSyntax) 1028If TypeOf node?.Parent Is ConditionalAccessExpressionSyntax AndAlso 1029DirectCast(node.Parent, ConditionalAccessExpressionSyntax).Expression Is node Then 1031node = DirectCast(node.Parent, ExpressionSyntax) 1034If TypeOf node?.Parent Is ConditionalAccessExpressionSyntax AndAlso 1035DirectCast(node.Parent, ConditionalAccessExpressionSyntax).WhenNotNull Is node Then 1037node = DirectCast(node.Parent, ExpressionSyntax) 1051While TypeOf node?.Parent Is ConditionalAccessExpressionSyntax 1052Dim conditionalParent = DirectCast(node.Parent, ConditionalAccessExpressionSyntax) 1096current = current.Parent 1219Dim parent As SyntaxNode = node.Parent 1260Dim parent As SyntaxNode = node.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\VariableDeclaratorSyntaxExtensions.vb (1)
54Not DirectCast(variableDeclarator.Parent, FieldDeclarationSyntax).Modifiers.Any(SyntaxKind.ConstKeyword) Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\DefaultOperationProvider.vb (12)
84If previousToken.Parent.Parent IsNot Nothing AndAlso TypeOf previousToken.Parent.Parent Is ParameterSyntax Then 95currentToken.Parent.Parent IsNot Nothing AndAlso TypeOf currentToken.Parent.Parent Is ParameterSyntax Then 137Dim [imports] = DirectCast(previousImports.Parent, CompilationUnitSyntax).Imports 185TypeOf xmlDeclaration.Parent Is XmlDocumentSyntax AndAlso 186TypeOf xmlDeclaration.Parent.Parent IsNot XmlNodeSyntax Then 193TypeOf startTag.Parent Is XmlElementSyntax AndAlso 194TypeOf startTag.Parent.Parent IsNot XmlNodeSyntax Then 201TypeOf emptyTag.Parent IsNot XmlNodeSyntax Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\FormattingHelpers.vb (6)
201If token.Parent.Parent Is Nothing Then 207token.Parent.Parent.Kind = SyntaxKind.XmlElement Then 208Dim xmlElement = DirectCast(token.Parent.Parent, XmlElementSyntax) 218token.Parent.Parent.Kind = SyntaxKind.XmlElement Then 219Dim xmlElement = DirectCast(token.Parent.Parent, XmlElementSyntax) 278If token.Parent.Parent Is Nothing Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Rules\ElasticTriviaFormattingRule.vb (2)
188If attributeNode IsNot Nothing AndAlso TypeOf attributeNode.Parent Is StatementSyntax AndAlso 258Return TryCast(node, TStatement) IsNot Nothing AndAlso TryCast(node.Parent, TBlock) IsNot Nothing
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Rules\NodeBasedFormattingRule.vb (6)
208outerBlock = outerBlock.Parent 229If TypeOf node.Parent IsNot XmlNodeSyntax Then 244If TypeOf xmlNode.Parent IsNot XmlNodeSyntax Then 249If TypeOf xmlNode.Parent IsNot XmlNodeSyntax Then 255If TypeOf xmlNode.Parent Is XmlEmbeddedExpressionSyntax Then 267Dim element = TryCast(xmlNode.Parent, XmlElementSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\RefactoringHelpers\VisualBasicRefactoringHelpers.vb (4)
81Yield foreachStatement.Parent 86Yield forStatement.Parent 91If TypeOf declarator.Parent Is LocalDeclarationStatementSyntax Then 92Dim localDeclarationStatement = CType(declarator.Parent, LocalDeclarationStatementSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SemanticFacts\VisualBasicSemanticFacts.vb (5)
247TypeOf argument.Parent Is ArgumentListSyntax AndAlso 248TypeOf argument.Parent.Parent Is AttributeSyntax Then 321Dim parent As SyntaxNode = node.Parent 331parent = current.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SyntaxFacts\VisualBasicBlockFacts.vb (2)
24Return If(IsExecutableBlock(statement.Parent), statement.Parent, Nothing)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Services\SyntaxFacts\VisualBasicSyntaxFacts.vb (47)
169Dim memberAccess = TryCast(node?.Parent, MemberAccessExpressionSyntax) 200DirectCast(node.Parent, SimpleImportsClauseSyntax).Name Is node 247Dim memberAccess = TryCast(token.Parent.Parent, MemberAccessExpressionSyntax) 256Dim memberAccess = TryCast(token.Parent.Parent, MemberAccessExpressionSyntax) 633identifierName.Parent.IsParentKind(SyntaxKind.SimpleArgument) AndAlso 634identifierName.Parent.Parent.IsParentKind(SyntaxKind.ArgumentList) AndAlso 635identifierName.Parent.Parent.Parent.IsParentKind(SyntaxKind.Attribute) 650Dim parent = node.Parent 657node = node.Parent 672initializedInstance = identifier.Parent.Parent.Parent 681Dim namedFieldInit = TryCast(identifier?.Parent, NamedFieldInitializerSyntax) 683Return TypeOf namedFieldInit?.Parent Is AnonymousObjectCreationExpressionSyntax AndAlso 689If TypeOf node.Parent Is ArrayCreationExpressionSyntax Then 690creationExpression = node.Parent 692ElseIf TypeOf node.Parent Is ObjectCollectionInitializerSyntax AndAlso 693TypeOf node.Parent.Parent Is ObjectCreationExpressionSyntax Then 694creationExpression = node.Parent.Parent 718If TypeOf node Is MethodBlockBaseSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 722If TypeOf node Is MethodBaseSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 726If TypeOf node Is PropertyStatementSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 730If TypeOf node Is EventStatementSyntax AndAlso TypeOf node.Parent IsNot EventBlockSyntax Then 751If TypeOf node Is MethodBlockBaseSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 755If TypeOf node Is MethodBaseSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 783node = node.Parent 796If TypeOf node Is MethodStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 800If TypeOf node Is SubNewStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 804If TypeOf node Is OperatorStatementSyntax AndAlso TypeOf node.Parent IsNot MethodBlockBaseSyntax Then 808If TypeOf node Is PropertyStatementSyntax AndAlso TypeOf node.Parent IsNot PropertyBlockSyntax Then 812If TypeOf node Is EventStatementSyntax AndAlso TypeOf node.Parent IsNot EventBlockSyntax Then 901Dim parent = node.Parent 904parent = parent.Parent 912parent = parent.Parent 1035Dim parent = node.Parent 1121Return IsLeftSideOfDot(node) AndAlso TryCast(node.Parent.Parent, ImplementsClauseSyntax) IsNot Nothing 1247If (node.Parent.IsKind(SyntaxKind.FieldDeclaration)) Then 1373Return node IsNot Nothing AndAlso TryCast(node.Parent, ForEachStatementSyntax)?.Expression Is node 1453Return node IsNot Nothing AndAlso TryCast(node.Parent, PropertyStatementSyntax)?.Initializer Is node 1578Return node.Parent IsNot Nothing AndAlso node.Parent.IsKind(kind)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Simplification\VisualBasicInferredMemberNameSimplifier.vb (2)
20If RemovalCausesAmbiguity(DirectCast(node.Parent, TupleExpressionSyntax).Arguments, node) Then 35Dim parentMemberInitializer As ObjectMemberInitializerSyntax = DirectCast(node.Parent, ObjectMemberInitializerSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Utilities\CastAnalyzer.vb (4)
35Dim argument = TryCast(_castNode.WalkUpParentheses().Parent, ArgumentSyntax) 59Dim parent = expression.Parent 75Dim returnedType = AsTypeInVariableDeclarator(parentEqualsValue.Parent, semanticModel) 362Dim parentNode = expression.Parent
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\CodeGeneration\VisualBasicCodeGenerationHelpers.vb (2)
216Dim variableDeclarator = TryCast(modifiedIdentifierNode.Parent, VariableDeclaratorSyntax) 218Dim fieldDecl = TryCast(variableDeclarator.Parent, FieldDeclarationSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ContextQuery\VisualBasicSyntaxContext.vb (10)
148Dim methodStatement = TryCast(asClause?.Parent, MethodBaseSyntax) 219If TypeOf collectionRange.Parent Is FromClauseSyntax AndAlso TypeOf collectionRange.Parent.Parent Is QueryExpressionSyntax Then 220Dim fromClause = DirectCast(collectionRange.Parent, FromClauseSyntax) 221Dim queryExpression = DirectCast(collectionRange.Parent.Parent, QueryExpressionSyntax) 226If fromClause.Variables.FirstOrDefault() Is collectionRange AndAlso queryExpression.Clauses.FirstOrDefault() Is collectionRange.Parent Then 229ElseIf TypeOf collectionRange.Parent Is SimpleJoinClauseSyntax OrElse TypeOf collectionRange.Parent Is GroupJoinClauseSyntax Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb (3)
201Return DirectCast(statement.Parent, ConstructorBlockSyntax).Statements(0) Is statement 206Dim simpleArgument = TryCast(expression.Parent, SimpleArgumentSyntax) 253Return TypeOf expression?.Parent Is MemberAccessExpressionSyntax
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\ParameterSyntaxExtensions.vb (2)
16parameter.Parent.Parent.IsKind(SyntaxKind.FunctionLambdaHeader, SyntaxKind.SubLambdaHeader) Then
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Extensions\SimpleNameSyntaxExtensions.vb (3)
15Return DirectCast(name.Parent, MemberAccessExpressionSyntax).Expression 17Return DirectCast(name.Parent, QualifiedNameSyntax).Left 37Dim invocationExpression = DirectCast(simpleName.Parent, InvocationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\InitializeParameter\VisualBasicInitializeParameterService.vb (1)
29Return TryCast(TryCast(reference, AccessorStatementSyntax)?.Parent, AccessorBlockSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\LanguageServices\VisualBasicTypeInferenceService.TypeInferrer.vb (26)
58Dim parent = node.Parent 159Function(nameColonEquals As NameColonEqualsSyntax) InferTypeInArgumentList(TryCast(nameColonEquals.Parent.Parent, ArgumentListSyntax), DirectCast(nameColonEquals.Parent, ArgumentSyntax)), 178Return If(parameterList.Parent IsNot Nothing, 179InferTypeInLambda(TryCast(parameterList.Parent.Parent, LambdaExpressionSyntax)), 185If TypeOf argument.Parent Is ArgumentListSyntax Then 187DirectCast(argument.Parent, ArgumentListSyntax), argument, previousToken) 190If TypeOf argument.Parent Is TupleExpressionSyntax Then 192DirectCast(argument.Parent, TupleExpressionSyntax), 232If argumentList.Parent IsNot Nothing Then 237Dim invocation = TryCast(argumentList.Parent, InvocationExpressionSyntax) 275ElseIf invocation.Parent.IsKind(SyntaxKind.ConditionalAccessExpression) Then 276targetExpression = DirectCast(invocation.Parent, ConditionalAccessExpressionSyntax).Expression 292Dim creation = TryCast(argumentList.Parent, ObjectCreationExpressionSyntax) 317Dim attribute = TryCast(argumentList.Parent, AttributeSyntax) 603Dim variableDeclarator = DirectCast(equalsValue.Parent, VariableDeclaratorSyntax) 627Dim propertySyntax = CType(equalsValue.Parent, PropertyStatementSyntax) 799If TypeOf switchStatementSyntax.Parent Is SelectBlockSyntax Then 800Dim firstCase = DirectCast(switchStatementSyntax.Parent, SelectBlockSyntax).CaseBlocks.SelectMany(Function(c) c.CaseStatement.Cases).OfType(Of SimpleCaseClauseSyntax).FirstOrDefault() 913memberAccessExpression.Parent.IsParentKind(SyntaxKind.AwaitExpression) Then 914Return InferTypes(DirectCast(memberAccessExpression.Parent, ExpressionSyntax)) 933Dim invocation = DirectCast(memberAccessExpression.Parent, InvocationExpressionSyntax) 1065Dim objectInitializer = TryCast(collectionInitializer.Parent, ObjectCollectionInitializerSyntax) 1066Dim objectCreation = TryCast(objectInitializer?.Parent, ObjectCreationExpressionSyntax)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\SemanticModelReuse\VisualBasicSemanticModelReuseLanguageService.vb (1)
28Dim container = accessor.Parent
VisualBasicCreateTestAccessor.vb (1)
30Return reportedNode.FirstAncestorOrSelf(Of TypeStatementSyntax)()?.Parent
VisualBasicExposeMemberForTesting.vb (1)
36Return reportedNode.FirstAncestorOrSelf(Of TypeStatementSyntax)()?.Parent
System.Text.Json.SourceGeneration (1)
JsonSourceGenerator.Parser.cs (1)
194for (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; 229var parent = typeDec.Parent as TypeDeclarationSyntax; 239parent = parent.Parent as TypeDeclarationSyntax;