926 references to Parent
Microsoft.CodeAnalysis.CSharp (346)
Binder\Binder.IdentifierUsedAsValueFinder.cs (6)
51switch (id.Parent) 69assignment.Parent?.Kind() is SyntaxKind.ObjectInitializerExpression or SyntaxKind.WithInitializerExpression) 77!(id.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 157!(expression.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 221switch (id.Parent) 237case FromClauseSyntax { Parent: QueryExpressionSyntax query } fromClause when query.FromClause == fromClause && fromClause.Expression == id:
Binder\Binder_Crefs.cs (5)
937Debug.Assert(parameterListSyntax.Parent is object); 938TypeSymbol type = BindCrefParameterOrReturnType(parameter.Type, (MemberCrefSyntax)parameterListSyntax.Parent, diagnostics); 975Debug.Assert(typeSyntax.Parent is object); 977if (typeSyntax.Parent.Kind() == SyntaxKind.ConversionOperatorMemberCref) 1021SyntaxNode? parentSyntax = syntax.Parent; // Could be null when speculating.
Binder\Binder_Deconstruct.cs (8)
39switch (node.Parent?.Kind()) 50if (((ForStatementSyntax)node.Parent).Initializers.Contains(node)) 178var parent = left.Parent; 186var grandParent = parent.Parent; 760else if (node.Parent is not ArgumentSyntax) 818if (discarded.Parent is DeclarationExpressionSyntax declExpr && declExpr.Designation == discarded) 875if (designation.Parent is DeclarationExpressionSyntax declExpr && declExpr.Designation == designation) 926if (designation.Parent is DeclarationExpressionSyntax declExpr && declExpr.Designation == designation)
Binder\Binder_Expressions.cs (22)
853var parent = node.Parent; 1679CSharpSyntaxNode parent = node.Parent; 2310else if (this.ContainingType is null || node.Parent is null || (node.Parent.Kind() != SyntaxKind.SimpleMemberAccessExpression && node.Parent.Kind() != SyntaxKind.ElementAccessExpression)) 3779(initSyntax.Parent == null || 3780initSyntax.Parent.Kind() != SyntaxKind.EqualsValueClause || 3781((EqualsValueClauseSyntax)initSyntax.Parent).Value != initSyntax) 4144initializerArgumentListOpt.Parent.Kind() != SyntaxKind.ThisConstructorInitializer; 4167syntax: initializerArgumentListOpt.Parent, 4178syntax: initializerArgumentListOpt.Parent, 4187Debug.Assert(initializerArgumentListOpt.Parent.Kind() == SyntaxKind.ThisConstructorInitializer); 4194switch (initializerArgumentListOpt?.Parent) 4221syntax: initializerArgumentListOpt.Parent, 4254(initializerArgumentListOpt != null && initializerArgumentListOpt.Parent.Kind() == SyntaxKind.ThisConstructorInitializer)); 4802Debug.Assert(syntax.Parent.Parent.Kind() != SyntaxKind.WithInitializerExpression); 6368Debug.Assert((left.Parent is MemberAccessExpressionSyntax { RawKind: (int)SyntaxKind.SimpleMemberAccessExpression } memberAccess && memberAccess.Expression == left) || 6369(left.Parent is QualifiedNameSyntax qualifiedName && qualifiedName.Left == left) || 6370(left.Parent is FromClauseSyntax { Parent: QueryExpressionSyntax query } fromClause && query.FromClause == fromClause && fromClause.Expression == left)); 9377CSharpSyntaxNode parent = node.Parent;
Binder\Binder_Operators.cs (1)
885binary = (BinaryExpressionSyntax)child.Parent;
Binder\Binder_Patterns.cs (4)
1355Debug.Assert(node.Parent is { }); 1357node.Parent.Kind() == SyntaxKind.VarPattern ? node.Parent : node, // for `var x` use whole pattern, otherwise use designation for the syntax 1592if (!hasErrors && !CheckValueKind(node: memberName.Parent, expr: boundMember, valueKind: BindValueKind.RValue,
Binder\Binder_QueryErrors.cs (4)
136for (CSharpSyntaxNode parent = node.Parent; parent != null; parent = parent.Parent) 152for (CSharpSyntaxNode parent = node.Parent; parent != null; parent = parent.Parent)
Binder\Binder_Statements.cs (7)
358switch (node.Parent.Kind()) 831if (declarationNode.Parent.Kind() == SyntaxKind.LocalDeclarationStatement && 1891hasUnsafeModifier: node.Parent?.Kind() == SyntaxKind.UnsafeStatement, 3259: (filter.Parent.Parent is TryStatementSyntax s && s.Catches.Count == 1 && s.Finally == null) 3446var messageId = expressionBody.Parent switch 3459_ => throw ExceptionUtilities.UnexpectedValue(expressionBody.Parent.Kind()),
Binder\Binder_Symbols.cs (9)
485if (refTypeSyntax.Parent is UsingDirectiveSyntax) 863var errorResult = CreateErrorIfLookupOnTypeParameter(node.Parent, qualifierOpt, identifierValueText, 0, diagnostics); 932if (node.Parent == null) 936if (node.Parent.Kind() == SyntaxKind.Attribute) 943if (node.Parent is UsingDirectiveSyntax { Alias: not null }) 998switch (node.Parent) 1014parent.Parent?.Parent is InvocationExpressionSyntax invocation && 1266var errorResult = CreateErrorIfLookupOnTypeParameter(node.Parent, qualifierOpt, plainName, arity, diagnostics);
Binder\BinderFactory.BinderFactoryVisitor.cs (44)
103var compilationUnit = (CompilationUnitSyntax)node.Parent; 115SynthesizedSimpleProgramEntryPointSymbol simpleProgram = SynthesizedSimpleProgramEntryPointSymbol.GetSimpleProgramEntryPoint(compilation, (CompilationUnitSyntax)node.Parent, fallbackToMainEntryPoint: false); 135return VisitCore(methodDecl.Parent); 159var parentType = methodDecl.Parent as TypeDeclarationSyntax; 166resultBinder = VisitCore(methodDecl.Parent); 195return VisitCore(parent.Parent); 205resultBinder = VisitCore(parent.Parent); 234return VisitCore(parent.Parent); 243resultBinder = VisitCore(parent.Parent); 261return VisitCore(parent.Parent); 271resultBinder = VisitCore(parent.Parent); 275var propertyOrEventDecl = parent.Parent.Parent; 324return VisitCore(parent.Parent); 334resultBinder = VisitCore(parent.Parent); 362return VisitCore(parent.Parent).WithUnsafeRegionIfNecessary(parent.Modifiers); 367return VisitCore(parent.Parent).WithUnsafeRegionIfNecessary(parent.Modifiers); 372return VisitCore(parent.Parent).WithUnsafeRegionIfNecessary(parent.Modifiers); 379return VisitCore(parent.Parent).WithUnsafeRegionIfNecessary(parent.Modifiers); 389return VisitCore(parent.Parent).WithUnsafeRegionIfNecessary(parent.Modifiers); 402resultBinder = VisitCore(parent.Parent).WithUnsafeRegionIfNecessary(parent.Modifiers); 424if (node.Parent.Kind() == SyntaxKind.CompilationUnit && syntaxTree.Options.Kind != SourceCodeKind.Regular) 642return VisitCore(parent.Parent); 650Binder outer = VisitCore(parent.Parent); // a binder for the body of the enclosing type or namespace 677return VisitCore(parent.Parent); 685Binder outer = VisitCore(parent.Parent); // a binder for the body of the type enclosing this type 705return VisitCore(parent.Parent); 747resultBinder = VisitCore(parent.Parent); 802return VisitCore(parent.Parent); 818return VisitCore(parent.Parent); 840var container = parent.Parent; 851outer = _factory.GetBinder(parent.Parent, position); 1110return VisitCore(parent.Parent); 1133? MakeCrefBinderInternal(crefSyntax, VisitCore(parent.Parent), inParameterOrReturnType) 1146return VisitCore(parent.Parent); 1218Binder outerBinder = VisitCore(memberSyntax.Parent); 1240Binder outerBinder = VisitCore(memberSyntax.Parent); 1262Binder outerBinder = VisitCore(memberSyntax.Parent); 1285Binder outerBinder = VisitCore(memberSyntax.Parent); 1299Binder outerBinder = VisitCore(memberSyntax.Parent); 1311Binder outerBinder = VisitCore(memberSyntax.Parent); 1318Binder outerBinder = VisitCore(memberSyntax.Parent); 1406curr = curr.Parent; 1418for (; !SyntaxFacts.IsDocumentationCommentTrivia(curr.Kind()); curr = curr.Parent)
Binder\ExpressionVariableFinder.cs (4)
55Debug.Assert(node.Parent is ConstructorInitializerSyntax || node.Parent is PrimaryConstructorBaseTypeSyntax); 353var argumentSyntax = node.Parent as ArgumentSyntax; 354var argumentListSyntaxOpt = argumentSyntax?.Parent as BaseArgumentListSyntax;
Binder\LockOrUsingBinder.cs (3)
44Debug.Assert(targetExpressionSyntax.Parent.Kind() == SyntaxKind.LockStatement || 45targetExpressionSyntax.Parent.Kind() == SyntaxKind.UsingStatement); 57originalBinder: GetBinder(targetExpressionSyntax.Parent));
Binder\SwitchBinder_Patterns.cs (3)
143Debug.Assert(this.SwitchSyntax == node.Parent.Parent); 150sectionBinder: GetBinder(node.Parent),
Compilation\AttributeSemanticModel.cs (2)
70var parent = node.Parent; 73parent = parent.Parent;
Compilation\CSharpSemanticModel.cs (28)
93if (!isSpeculative && node.Parent != null && node.Parent.Kind() == SyntaxKind.NameEquals && node.Parent.Parent.Kind() == SyntaxKind.UsingDirective) 612if (expression.Parent != null && expression.Parent.Kind() == SyntaxKind.CollectionInitializerExpression) 616InitializerExpressionSyntax initializer = (InitializerExpressionSyntax)expression.Parent; 619while (initializer.Parent != null && 620initializer.Parent.Kind() == SyntaxKind.SimpleAssignmentExpression && 621((AssignmentExpressionSyntax)initializer.Parent).Right == initializer && 622initializer.Parent.Parent != null && 623initializer.Parent.Parent.Kind() == SyntaxKind.ObjectInitializerExpression) 625initializer = (InitializerExpressionSyntax)initializer.Parent.Parent; 628if (initializer.Parent is BaseObjectCreationExpressionSyntax objectCreation && 632return GetCollectionInitializerSymbolInfoWorker((InitializerExpressionSyntax)expression.Parent, expression, cancellationToken); 1618if (parentExpr != null && !(parentExpr.Parent is XmlNameAttributeSyntax) && !SyntaxFacts.IsInTypeOnlyContext(parentExpr) && !binder.IsInsideNameof) 2391var parent = expression.Parent; 3295CSharpSyntaxNode catchClause = catchDeclaration.Parent; //Syntax->Binder map is keyed on clause, not decl 4471var parent3 = identifierNameSyntax.Parent.Parent.Parent; 4474var tupleArgument = (ArgumentSyntax)identifierNameSyntax.Parent.Parent; 4484CSharpSyntaxNode containingInvocation = parent3.Parent; 5131if (declarationSyntax.Parent is TupleTypeSyntax tupleTypeSyntax)
Compilation\InitializerSemanticModel.cs (1)
196this.Root == node.Parent /*field initializer*/;
Compilation\MemberSemanticModel.cs (18)
824var simpleLambda = parameter.Parent as SimpleLambdaExpressionSyntax; 830var paramList = parameter.Parent as ParameterListSyntax; 831if (paramList == null || paramList.Parent == null) 836if (paramList.Parent.IsAnonymousFunction()) 838return GetLambdaParameterSymbol(parameter, (ExpressionSyntax)paramList.Parent, cancellationToken); 840else if (paramList.Parent.Kind() == SyntaxKind.LocalFunctionStatement) 842var localFunction = GetDeclaredSymbol((LocalFunctionStatementSyntax)paramList.Parent, cancellationToken).GetSymbol<MethodSymbol>(); 1066var anonymousObjectCreation = (AnonymousObjectCreationExpressionSyntax)declaratorSyntax.Parent; 1107var tupleLiteral = declaratorSyntax?.Parent as TupleExpressionSyntax; 1545if (current.Parent == null || current.Parent.Kind() != SyntaxKind.LocalFunctionStatement) 2153return node.Parent; 2185var parent = node.Parent; 2210var grandparent = parent.Parent; 2254CSharpSyntaxNode parent = node.Parent; 2275var pp = parent.Parent; 2292if ((bindableParent.Kind() == SyntaxKind.SimpleMemberAccessExpression) && (bindableParent.Parent.Kind() == SyntaxKind.InvocationExpression)) 2294bindableParent = bindableParent.Parent;
Compilation\MethodBodySemanticModel.cs (1)
244Root.FindToken(position).Parent?.AncestorsAndSelf().OfType<ConstructorInitializerSyntax>().FirstOrDefault()?.Parent == Root)
Compilation\PublicSemanticModel.cs (2)
23Symbol? attributeTarget = getAttributeTarget(attribute.Parent?.Parent);
Compilation\SpeculativeSemanticModelWithMemberModel.cs (1)
59attributedNode = attributedNode?.FirstAncestorOrSelf<AttributeListSyntax>()?.Parent;
Compilation\SyntaxTreeSemanticModel.cs (62)
243else if (node.Parent.Kind() == SyntaxKind.XmlNameAttribute && (attrSyntax = (XmlNameAttributeSyntax)node.Parent).Identifier == node) 501for (; expression != null && expression.Parent != null; expression = expression.Parent as TypeSyntax) 503var parent = expression.Parent; 504if (parent is BaseTypeSyntax baseType && parent.Parent != null && parent.Parent.Kind() == SyntaxKind.BaseList && baseType.Type == expression) 507var decl = (BaseTypeDeclarationSyntax)parent.Parent.Parent; 936return GetOrAddModel((CompilationUnitSyntax)memberDecl.Parent); 958return GetMemberModel(memberDecl.Parent); 973MemberSemanticModel containing = attribute.Parent != null ? GetMemberModel(attribute.Parent) : null; 1003MemberSemanticModel containing = paramDecl.Parent != null ? GetMemberModel(paramDecl.Parent) : null; 1112ExceptionUtilities.UnexpectedValue(node.Parent); 1116switch (node.Parent.Kind()) 1120var variableDecl = (VariableDeclaratorSyntax)node.Parent; 1133var propertyDecl = (PropertyDeclarationSyntax)node.Parent; 1146ParameterSyntax parameterDecl = (ParameterSyntax)node.Parent; 1161var enumDecl = (EnumMemberDeclarationSyntax)node.Parent; 1173throw ExceptionUtilities.UnexpectedValue(node.Parent.Kind()); 1182if (node.Parent is BasePropertyDeclarationSyntax) 1189ExceptionUtilities.UnexpectedValue(node.Parent); 1204var parent = node.Parent; 1269switch (variableDecl.Parent.Parent.Kind()) 1332if (declarationSyntax.Parent.Kind() == SyntaxKind.CompilationUnit) 1338container = GetDeclaredNamespaceOrType(declarationSyntax.Parent); 1583var propertyOrEventDecl = declarationSyntax.Parent.Parent; 1607var containingMemberSyntax = declarationSyntax.Parent; 1824var field = declarationSyntax.Parent == null ? null : declarationSyntax.Parent.Parent as BaseFieldDeclarationSyntax; 1913Binder binder = _binderFactory.GetInNamespaceBinder(declarationSyntax.Parent); 1946var binder = _binderFactory.GetInNamespaceBinder(declarationSyntax.Parent); 1999var paramList = parameter.Parent as ParameterListSyntax; 2005var memberDecl = paramList.Parent as MemberDeclarationSyntax; 2038var paramList = parameter.Parent as BracketedParameterListSyntax; 2044var memberDecl = paramList.Parent as MemberDeclarationSyntax; 2065var paramList = parameter.Parent as ParameterListSyntax; 2071var memberDecl = paramList.Parent as DelegateDeclarationSyntax; 2138if (typeParameter.Parent is TypeParameterListSyntax typeParamList) 2141switch (typeParamList.Parent) 2150throw ExceptionUtilities.UnexpectedValue(typeParameter.Parent.Kind()); 2211bool isGlobalStatement = firstStatement.Parent is GlobalStatementSyntax; 2212if (isGlobalStatement && (lastStatement.Parent is not GlobalStatementSyntax || firstStatement.Parent.Parent != lastStatement.Parent.Parent)) 2218if (!isGlobalStatement && (firstStatement.Parent == null || firstStatement.Parent != lastStatement.Parent)) 2296if (memberDeclaration.Parent.Kind() == SyntaxKind.CompilationUnit) 2320var container = GetDeclaredNamespaceOrType(memberDeclaration.Parent); 2494case PrimaryConstructorBaseTypeSyntax { Parent: BaseListSyntax { Parent: TypeDeclarationSyntax typeDeclaration } } baseType 2503case ParameterSyntax param when declaredSymbol.Kind == SymbolKind.Property && param.Parent?.Parent is RecordDeclarationSyntax recordDeclaration && recordDeclaration.ParameterList == param.Parent:
Compiler\MethodCompiler.cs (7)
2090!(expression.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 2104switch (id.Parent) 2122assignment.Parent?.Kind() is SyntaxKind.ObjectInitializerExpression or SyntaxKind.WithInitializerExpression) 2130!(id.Parent is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression && 2168var parent = child.Parent; 2173parent = child.Parent; 2181if (id.Parent is InvocationExpressionSyntax invocation && invocation.Expression == id && invocation.MayBeNameofOperator())
Declarations\DeclarationTreeBuilder.cs (6)
168syntaxReference: firstGlobalStatement.SyntaxTree.GetReference(firstGlobalStatement.Parent), 446if (node.Parent is FileScopedNamespaceDeclarationSyntax) 453else if (node.Parent is NamespaceDeclarationSyntax) 474Debug.Assert(node.Parent is CompilationUnitSyntax); 475var compilationUnit = (CompilationUnitSyntax)node.Parent; 488if (node.Parent is FileScopedNamespaceDeclarationSyntax)
DocumentationComments\SourceDocumentationCommentUtils.cs (1)
53curr = curr.Parent;
Lowering\Instrumentation\DebugInfoInjector.cs (2)
70Debug.Assert(init.Parent is object); 71return new BoundSequencePointWithSpan(init, rewritten, CreateSpanForConstructorInitializer((ConstructorDeclarationSyntax)init.Parent));
Lowering\Instrumentation\DebugInfoInjector_SequencePoints.cs (12)
108Debug.Assert(declaratorSyntax.Parent != null); 109var declarationSyntax = (VariableDeclarationSyntax)declaratorSyntax.Parent; 110Debug.Assert(declarationSyntax.Parent != null); 114switch (declarationSyntax.Parent.Kind()) 119var modifiers = ((BaseFieldDeclarationSyntax)declarationSyntax.Parent).Modifiers; 126var parent = (LocalDeclarationStatementSyntax)declarationSyntax.Parent; 148throw ExceptionUtilities.UnexpectedValue(declarationSyntax.Parent.Kind()); 163Debug.Assert(declaratorSyntax.Parent != null); 165var declarationSyntax = (VariableDeclarationSyntax)declaratorSyntax.Parent; 167Debug.Assert(declarationSyntax.Parent != null); 177end = declarationSyntax.Parent.Span.End; 187node = declarationSyntax.Parent;
Lowering\LocalRewriter\LocalRewriter.cs (3)
748if (syntax is ExpressionSyntax { Parent: { } parent } && parent.Kind() == SyntaxKind.EqualsValueClause) // Should be the initial value. 750Debug.Assert(parent.Parent is { }); 751switch (parent.Parent.Kind())
Lowering\LocalRewriter\LocalRewriter_BasePatternSwitchLocalRewriter.cs (1)
30SyntaxNode? sectionSyntax = whenClauseSyntax is SwitchLabelSyntax l ? l.Parent : whenClauseSyntax;
Parser\LanguageParser.cs (4)
139return node != null ? node.Parent : null; 2096return (this.CurrentNode.Parent is Syntax.CompilationUnitSyntax); 4265CSharp.CSharpSyntaxNode parent = parameter.Parent; 4273CSharp.CSharpSyntaxNode grandparent = parent.Parent;
SourceGeneration\CSharpSyntaxHelper.cs (1)
45var container = attributeList.Parent;
SymbolDisplay\SymbolDisplayVisitor_Minimal.cs (6)
197startNode = usingDirective.Parent.Parent; 255fromClause.Parent as QueryBodySyntax ?? ((QueryExpressionSyntax)fromClause.Parent).Body, 257letClause.Parent as QueryBodySyntax, 259joinClause.Parent as QueryBodySyntax,
Symbols\Source\SourceComplexParameterSymbol.cs (4)
1035.Parent // AttributeListSyntax 1036.Parent // ParameterSyntax 1037.Parent as ParameterListSyntax; // ParameterListSyntax 1039var methDecl = paramList.Parent as MethodDeclarationSyntax;
Symbols\Source\SourceEventSymbol.cs (4)
142Debug.Assert(syntax.Parent!.Parent is object); 143return ((EventFieldDeclarationSyntax)syntax.Parent.Parent).AttributeLists;
Symbols\Source\SourceFieldLikeEventSymbol.cs (2)
31Debug.Assert(declaratorSyntax.Parent is object); 36var declarationSyntax = (VariableDeclarationSyntax)declaratorSyntax.Parent;
Symbols\Source\SourceMemberFieldSymbol.cs (2)
401return (BaseFieldDeclarationSyntax)declarator.Parent.Parent;
Symbols\Source\SourceMemberMethodSymbol.cs (2)
615Debug.Assert(arrowExpression.Parent.Kind() == SyntaxKind.PropertyDeclaration || 616arrowExpression.Parent.Kind() == SyntaxKind.IndexerDeclaration ||
Symbols\Source\SourceMethodSymbolWithAttributes.cs (2)
50Debug.Assert(arrowExpression.Parent!.Kind() == SyntaxKind.PropertyDeclaration || 51arrowExpression.Parent.Kind() == SyntaxKind.IndexerDeclaration);
Symbols\Source\SourceNamedTypeSymbol_Bases.cs (1)
624var name = GetName(bases.Parent);
Symbols\Source\SourceOrdinaryMethodSymbol.cs (1)
247var typeDecl = syntax.Parent as TypeDeclarationSyntax;
Syntax\CSharpSyntaxNode.cs (3)
71var parent = node.Parent; 425curr = curr.Parent; 542var parent = this.Parent;
Syntax\LambdaUtilities.cs (6)
161return arrowExpressionClause.Expression == node && arrowExpressionClause.Parent is LocalFunctionStatementSyntax; 165return fromClause.Expression == node && fromClause.Parent is QueryBodySyntax; 228Debug.Assert(selectOrGroupClause.Parent!.Parent is object); 229var containingQueryOrContinuation = selectOrGroupClause.Parent.Parent;
Syntax\NamespaceDeclarationSyntaxReference.cs (1)
37node = node.Parent;
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 } }
Syntax\SyntaxExtensions.cs (9)
133Debug.Assert(attributeSyntax.Parent is object); 134CSharpSyntaxNode parentSyntax = attributeSyntax.Parent; 262return node.Parent != null && IsInContextWhichNeedsDynamicAttribute(node.Parent); 354var parent = expr.Parent; 360if (parent.Parent?.Kind() == SyntaxKind.TupleExpression) 362expr = (TupleExpressionSyntax)parent.Parent; 386return p.Parent?.Kind() == SyntaxKind.Argument 387&& ((ArgumentSyntax)p.Parent).RefOrOutKeyword.Kind() == SyntaxKind.OutKeyword;
Syntax\SyntaxFactory.cs (6)
2056var parent = node.Parent as ExpressionSyntax; 2129CSharpSyntaxNode? parent = node.Parent; 2176CSharpSyntaxNode? grandparent = parent.Parent; 2217if (parent.Parent.IsKind(SyntaxKind.Subpattern)) 2219return parent.Parent; 2242currentNode = currentNode.Parent;
Syntax\SyntaxFacts.cs (6)
57var inv = node.Parent as InvocationExpressionSyntax; 67var indexer = node.Parent as ElementAccessExpressionSyntax; 73var parent = node.Parent as AliasQualifiedNameSyntax; 85var parent = node.Parent; 245var parent = node.Parent; 520return syntax?.Parent?.IsKind(SyntaxKind.CompilationUnit) == true;
Syntax\SyntaxNodeExtensions.cs (9)
116CSharpSyntaxNode? parent = expression?.Parent; 261if (current.Parent is ScopedTypeSyntax scopedType) 266(current.Parent is ParenthesizedLambdaExpressionSyntax lambda && lambda.ReturnType == current) || 267(current.Parent is LocalFunctionStatementSyntax localFunction && localFunction.ReturnType == current) || 268(current.Parent is MethodDeclarationSyntax method && method.ReturnType == current) || 269(current.Parent is BasePropertyDeclarationSyntax property && property.Type == current) || 270(current.Parent is DelegateDeclarationSyntax delegateDeclaration && delegateDeclaration.ReturnType == current) || 271(current.Parent is VariableDeclarationSyntax { Parent: LocalDeclarationStatementSyntax } variableDeclaration && variableDeclaration.Type == current));
Syntax\SyntaxNormalizer.cs (6)
314=> node is AccessorListSyntax { Parent: PropertyDeclarationSyntax { Initializer: not null } }; 498if (propPattern.Parent is RecursivePatternSyntax rps) 558if (posPattern.Parent is RecursivePatternSyntax rps) 1336node is AssignmentExpressionSyntax { Parent: InitializerExpressionSyntax }) 1354if (node is UsingStatementSyntax { Parent: UsingStatementSyntax }) 1357if (node is FixedStatementSyntax { Parent: FixedStatementSyntax })
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (3)
RefactoringHelpers\RefactoringHelpersTests.cs (3)
1230await TestMissingAsync<ArgumentSyntax>(testText, n => n.Parent is TupleExpressionSyntax); 1262await TestAsync<ArgumentSyntax>(testText, n => n.Parent is TupleExpressionSyntax); 1680await TestAsync<ArgumentSyntax>(testText, predicate: n => n.Parent is TupleExpressionSyntax);
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (93)
CodeGen\CodeGenDeconstructTests.cs (61)
1511Assert.Equal("(x, y) = new C(1)", tuple1.Parent.ToString()); 1516Assert.Equal("(x, y) = new C(2)", tuple2.Parent.ToString()); 1564Assert.Equal("(x, y) = new C()", tuple.Parent.ToString()); 3630return (decl.Parent as DeclarationExpressionSyntax)?.Type; 3757var x34Var = (DeclarationExpressionSyntax)x3.Parent.Parent; 3851var x12Var = (DeclarationExpressionSyntax)x1.Parent.Parent; 4036var x12Var = (DeclarationExpressionSyntax)x1.Parent.Parent; 4144var x12Var = (DeclarationExpressionSyntax)x1.Parent.Parent; 4227var x12Var = (DeclarationExpressionSyntax)x1.Parent.Parent; 4338var x12Var = (DeclarationExpressionSyntax)x1.Parent.Parent; 4459var x23Var = (DeclarationExpressionSyntax)x2.Parent.Parent; 4605var x23Var = (DeclarationExpressionSyntax)x2.Parent.Parent; 5192var x23Var = (DeclarationExpressionSyntax)x2.Parent.Parent; 5739var x123Var = (DeclarationExpressionSyntax)x1.Parent.Parent; 5781var x123Var = (DeclarationExpressionSyntax)x1.Parent.Parent; 5911var declaration1 = (DeclarationExpressionSyntax)discard1.Parent; 5919var declaration2 = (DeclarationExpressionSyntax)discard2.Parent; 5925var declaration3 = (DeclarationExpressionSyntax)discard3.Parent.Parent; 6255Assert.Equal("(_, var x)", discard.Parent.Parent.ToString()); 6309var tuple1 = (TupleExpressionSyntax)discard1.Parent.Parent; 6339var tuple1 = (DeclarationExpressionSyntax)discard1.Parent.Parent; 6368Assert.Equal("(_, x)", discard.Parent.Parent.ToString()); 6398var declaration1 = (DeclarationExpressionSyntax)discard1.Parent.Parent; 6404Assert.Equal("(_, (var y, int z))", discard2.Parent.Parent.ToString()); 6444var tuple = (TupleExpressionSyntax)refs.ElementAt(0).Parent.Parent; 6861var declaration1 = (DeclarationExpressionSyntax)discard1.Parent; 6867var declaration2 = (DeclarationExpressionSyntax)discard2.Parent; 6872var tuple = (TupleExpressionSyntax)declaration1.Parent.Parent; 6933var nestedDeclaration = (DeclarationExpressionSyntax)discard2.Parent.Parent; 6940var tuple = (TupleExpressionSyntax)discard2.Parent.Parent.Parent.Parent; 6979var declaration1 = (DeclarationExpressionSyntax)discard1.Parent; 6988var declaration2 = (DeclarationExpressionSyntax)discard2.Parent; 6994Assert.Equal("_", discard3.Parent.ToString()); 7007var nestedDeclaration = (DeclarationExpressionSyntax)discard4.Parent.Parent; 8651Assert.Equal("((short, short))((int, int))(1L, 2L)", node.Parent.ToString()); 8653compilation.VerifyOperationTree(node.Parent, expectedOperationTree:
CodeGen\CodeGenTupleTest.cs (32)
8358Assert.Equal("(System.Int16 c, System.String d)?", model.GetTypeInfo(node.Parent).Type.ToTestDisplayString()); 8359Assert.Equal("(System.Int16 a, System.String b)?", model.GetTypeInfo(node.Parent).ConvertedType.ToTestDisplayString()); 8360Assert.Equal(Conversion.Identity, model.GetConversion(node.Parent)); 8463Assert.Equal("(System.Int16 c, System.String d)", model.GetTypeInfo(node.Parent).Type.ToTestDisplayString()); 8464Assert.Equal("(System.Int16 a, System.String b)?", model.GetTypeInfo(node.Parent).ConvertedType.ToTestDisplayString()); 8465Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node.Parent).Kind); 8490var node = nodes.OfType<ParenthesizedExpressionSyntax>().Single().Parent; 8524var node = nodes.OfType<ParenthesizedExpressionSyntax>().Single().Parent; 8607Assert.Equal("(System.Int32 c, System.String d)?", model.GetTypeInfo(node.Parent).Type.ToTestDisplayString()); 8608Assert.Equal("(System.Int32 a, System.String b)?", model.GetTypeInfo(node.Parent).ConvertedType.ToTestDisplayString()); 8609Assert.Equal(Conversion.Identity, model.GetConversion(node.Parent)); 8642Assert.Equal("(System.Int32 c, System.String d)", model.GetTypeInfo(node.Parent).Type.ToTestDisplayString()); 8643Assert.Equal("(System.Int32 a, System.String b)?", model.GetTypeInfo(node.Parent).ConvertedType.ToTestDisplayString()); 8644Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node.Parent).Kind); 8785Assert.Equal("(System.Int16 c, System.String d)", model.GetTypeInfo(node.Parent).Type.ToTestDisplayString()); 8786Assert.Equal("(System.Int16 a, System.String b)", model.GetTypeInfo(node.Parent).ConvertedType.ToTestDisplayString()); 8787Assert.Equal(Conversion.Identity, model.GetConversion(node.Parent)); 8858Assert.Equal("(System.Int16 c, System.String d)", model.GetTypeInfo(node.Parent).Type.ToTestDisplayString()); 8859Assert.Equal("(System.Int16 a, System.String b)", model.GetTypeInfo(node.Parent).ConvertedType.ToTestDisplayString()); 8860Assert.Equal(Conversion.Identity, model.GetConversion(node.Parent)); 8968Assert.Equal("(System.Int16 c, System.String d)", model.GetTypeInfo(node.Parent).Type.ToTestDisplayString()); 8969Assert.Equal("(System.Int16 a, System.String b)", model.GetTypeInfo(node.Parent).ConvertedType.ToTestDisplayString()); 8970Assert.Equal(Conversion.Identity, model.GetConversion(node.Parent)); 13981var nameofArg = ((InvocationExpressionSyntax)nameofNode.Parent).ArgumentList.Arguments.Single().Expression; 24222Assert.Equal("tuple.elem2 = 23", nodes[0].Parent.Parent.ToString()); 24225Assert.Equal("elem2 = 10", nodes[1].Parent.ToString()); 24228Assert.Equal("(tuple.elem2)", nodes[2].Parent.Parent.Parent.ToString()); 24231Assert.Equal("(elem2)", nodes[3].Parent.Parent.ToString());
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (32)
FlowAnalysis\FlowTestBase.cs (2)
185if (firstStatement != null && stmt.Span.End <= end && stmt.Parent == firstStatement.Parent)
Semantics\PatternMatchingTestBase.cs (9)
37return tree.GetRoot().DescendantNodes().OfType<SingleVariableDesignationSyntax>().Where(p => p.Parent.Kind() == SyntaxKind.DeclarationPattern || p.Parent.Kind() == SyntaxKind.VarPattern); 99switch (designation.Parent) 151switch (designation.Parent) 266switch (designation.Parent) 292var inFieldDeclaratorArgumentlist = declarator != null && declarator.Parent.Parent.Kind() != SyntaxKind.LocalDeclarationStatement && 377if (designation.Parent is DeclarationPatternSyntax decl) 398else if (designation.Parent is VarPatternSyntax varp)
Semantics\PatternMatchingTests.cs (4)
4293var declaration1 = (DeclarationPatternSyntax)discard1.Parent; 4301var declaration2 = (VarPatternSyntax)discard2.Parent; 4307var declaration3 = (DeclarationPatternSyntax)discard3.Parent; 4314var declaration4 = (VarPatternSyntax)discard4.Parent;
Semantics\PatternMatchingTests_Global.cs (4)
6323Assert.True(x1Decl.Parent is VarPatternSyntax); 6352Assert.True(x1Decl.Parent is VarPatternSyntax); 6376var x1 = (DeclarationPatternSyntax)x1Decl.Parent; 6399var x1 = (DeclarationPatternSyntax)x1Decl.Parent;
Semantics\PatternMatchingTests_ListPatterns.cs (5)
3690Assert.Equal(syntax, clause.Parent.Parent.ToString()); 3692var typeInfo = model.GetTypeInfo(clause.Parent); // inner {} pattern 3735typeInfo = model.GetTypeInfo(itemDesignation.Parent); 3750typeInfo = model.GetTypeInfo(sliceDesignation.Parent);
Semantics\PatternMatchingTests2.cs (8)
2961checkType((CastExpressionSyntax)expr.Parent.Parent, "C", "C", ConversionKind.Identity); 2968checkType((CastExpressionSyntax)expr.Parent.Parent, "D", "D", ConversionKind.Identity); 2975checkType((CastExpressionSyntax)expr.Parent.Parent, "D", "D", ConversionKind.Identity); 2982checkType((CastExpressionSyntax)expr.Parent.Parent, "D", "D", ConversionKind.Identity);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (389)
Semantics\BindingTests.cs (12)
2693.First(x => x.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression) && x.Identifier.ValueText.Equals("M0")); 2695Assert.Equal("A.B<string>.M0", identifierNameM0.Parent.ToString()); 2705.First(x => x.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression) && x.Identifier.ValueText.Equals("M1")); 2707Assert.Equal("A.B<string>.M1", identifierNameM1.Parent.ToString()); 2753Assert.Equal("(MyDelegate<int>)MyMethod", identifiers[0].Parent.ToString()); 2756Assert.Equal("(MyDelegate<long>)MyMethod", identifiers[1].Parent.ToString()); 2759Assert.Equal("(MyDelegate<float>)MyMethod", identifiers[2].Parent.ToString()); 2762Assert.Equal("(MyDelegate<double>)MyMethod", identifiers[3].Parent.ToString()); 2804.First(x => x.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression) && x.Identifier.ValueText.Equals("M0")); 2806Assert.Equal("b.M0", identifierNameM0.Parent.ToString()); 2816.First(x => x.Parent.IsKind(SyntaxKind.SimpleMemberAccessExpression) && x.Identifier.ValueText.Equals("M1")); 2818Assert.Equal("b.M1", identifierNameM1.Parent.ToString());
Semantics\ColorColorTests.cs (17)
596var parentExpr = (ExpressionSyntax)expr.Parent; 643var parentExpr = (ExpressionSyntax)expr.Parent; 1072var parentExpr = (ExpressionSyntax)expr.Parent; 1118var parentExpr = (ExpressionSyntax)expr.Parent; 1164var parentExpr = (ExpressionSyntax)expr.Parent; 1209var parentExpr = (ExpressionSyntax)expr.Parent; 1253var parentExpr = (ExpressionSyntax)expr.Parent; 1287var parentExpr = (ExpressionSyntax)expr.Parent; 1850var parentExpr = (ExpressionSyntax)expr.Parent; 1891var node2 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(n => n.Identifier.Text == "E" && (n.Parent is EqualsValueClauseSyntax)).Single(); 1893Assert.Equal("= E", node2.Parent.ToString()); 1948var node2 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(n => n.Identifier.Text == "E" && (n.Parent is EqualsValueClauseSyntax)).Single(); 1950Assert.Equal("= E", node2.Parent.ToString()); 2005var node2 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(n => n.Identifier.Text == "E" && (n.Parent is EqualsValueClauseSyntax)).Single(); 2007Assert.Equal("= E", node2.Parent.ToString()); 2054var node2 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(n => n.Identifier.Text == "E" && (n.Parent is EqualsValueClauseSyntax)).Single(); 2056Assert.Equal("= E", node2.Parent.ToString());
Semantics\ConditionalOperatorTests.cs (4)
1320var access = (ConditionalAccessExpressionSyntax)memberBinding.Parent!; 1374var invocation = (InvocationExpressionSyntax)memberBinding.Parent!; 1375var access = (ConditionalAccessExpressionSyntax)invocation.Parent!; 1421var access = (ConditionalAccessExpressionSyntax)memberBinding.Parent!;
Semantics\DeconstructionTests.cs (5)
6000var argument = (ArgumentSyntax)mainCall.Parent; 6043var argument = (ArgumentSyntax)mainCall.Parent; 6083var argument = (ArgumentSyntax)mainCall.Parent; 6125var argument = (ArgumentSyntax)two.Parent; 6165var argument = (ArgumentSyntax)mainCall.Parent;
Semantics\FunctionPointerTests.cs (4)
3200FunctionPointerUtilities.VerifyFunctionPointerSemanticInfo(model, invocations[2].Parent!.Parent!, 3206VerifyOperationTreeForNode(comp, model, invocations[2].Parent!.Parent!, expectedOperationTree: @"
Semantics\ImplicitObjectCreationTests.cs (8)
3218Assert.Equal("(o, new())", first.Parent.Parent.ToString()); 3222Assert.Equal("(new(), o)", second.Parent.Parent.ToString()); 3226Assert.Equal("(c, new())", third.Parent.Parent.ToString()); 3230Assert.Equal("(new(), c)", fourth.Parent.Parent.ToString());
Semantics\LambdaTests.cs (4)
1511Assert.Equal("a.", node.Parent.ToString().Trim()); 1546Assert.Equal("a.", node.Parent.ToString().Trim()); 1580Assert.Equal("a.", node.Parent.ToString().Trim()); 1612Assert.Equal("a.", node.Parent.ToString().Trim());
Semantics\MethodTypeInferenceTests.cs (1)
843var declaration = (DeclarationExpressionSyntax)discard.Parent;
Semantics\NonTrailingNamedArgumentsTests.cs (2)
51Assert.Equal("a: 1", firstNamedArgA.Parent.ToString()); 63Assert.Equal("a: 4", secondNamedArgA.Parent.ToString());
Semantics\NullableReferenceTypesTests.cs (1)
63436Assert.Equal("object?", object2.Parent.ToString());
Semantics\OutVarTests.cs (39)
916Assert.Null(model.GetDeclaredSymbol((ArgumentSyntax)x2Ref.Parent)); 1090var dataFlowParent = decl.Parent.Parent.Parent as ExpressionSyntax; 1094if (isExecutableCode || !(decl.Parent.Parent.Parent is VariableDeclaratorSyntax)) 1096Assert.IsAssignableFrom<ConstructorInitializerSyntax>(decl.Parent.Parent.Parent); 1183var parent1 = ((VariableDeclarationSyntax)((VariableDeclaratorSyntax)parent).Parent).Parent; 1224switch (reference.Parent.Kind()) 1227if (((ArgumentSyntax)reference.Parent).RefOrOutKeyword.Kind() != SyntaxKind.OutKeyword) 1244if (((AssignmentExpressionSyntax)reference.Parent).Left != reference) 1290((methodDeclParent = containingReturnOrThrow.Parent.Parent as MethodDeclarationSyntax) == null || 1333switch (reference.Parent.Kind()) 1336if (((ArgumentSyntax)reference.Parent).RefOrOutKeyword.Kind() != SyntaxKind.None) 1353if (((AssignmentExpressionSyntax)reference.Parent).Left == reference) 1413Assert.Null(model.GetDeclaredSymbol((ArgumentSyntax)x2Ref.Parent)); 1648Assert.Null(model.GetDeclaredSymbol((ArgumentSyntax)x2Ref.Parent)); 20041Assert.Equal("System.Console.WriteLine(y)", yRef[2].Parent.Parent.Parent.ToString()); 32697var inFieldDeclaratorArgumentlist = declarator != null && declarator.Parent.Parent.Kind() != SyntaxKind.LocalDeclarationStatement && 32728var dataFlowParent = (ExpressionSyntax)decl.Parent.Parent.Parent; 32923var declaration1 = (DeclarationExpressionSyntax)discard1.Parent; 32932var declaration2 = (DeclarationExpressionSyntax)discard2.Parent; 33007var declaration1 = (DeclarationExpressionSyntax)discard1.Parent; 33023var declaration2 = (DeclarationExpressionSyntax)discard2.Parent; 33079var declaration1 = (DeclarationExpressionSyntax)discard1.Parent; 33121var declaration1 = (DeclarationExpressionSyntax)discard1.Parent; 33137var declaration2 = (DeclarationExpressionSyntax)discard2.Parent; 33185var declaration1 = (DeclarationExpressionSyntax)discard1.Parent; 33201var declaration2 = (DeclarationExpressionSyntax)discard2.Parent;
Semantics\PrimaryConstructorTests.cs (70)
900Assert.Equal("= X", x.Parent.ToString()); 965Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 1020Assert.Null(model.GetOperation(baseWithargs.Parent)); 1021Assert.Same(operation.Parent.Parent, model.GetOperation(baseWithargs.Parent.Parent)); 1022Assert.Equal(SyntaxKind.ClassDeclaration, baseWithargs.Parent.Parent.Kind()); 1121model.VerifyOperationTree(baseWithargs.Parent, 1193Assert.Equal("Test(X, out var y)", x.Parent.Parent.Parent.ToString()); 1204Assert.Equal("y", y.Parent.ToString()); 1205Assert.Equal("(Test(X, out var y), y)", y.Parent.Parent.ToString()); 1206Assert.Equal("Base(Test(X, out var y), y)", y.Parent.Parent.Parent.ToString()); 1217Assert.Equal("(Test(X, out var y), y)", test.Parent.Parent.Parent.ToString()); 1258Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 1304Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 1364Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 1422Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 1433Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 1511Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 1522Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 1707Assert.Equal("Base(X)", x.Parent.Parent.Parent.ToString()); 1747Assert.Equal("Base(X)", x.Parent.Parent.Parent.ToString()); 1790Assert.Equal("Base(X)", x.Parent.Parent.Parent.ToString()); 1860Assert.Equal("Base(X, Y)", x.Parent.Parent.Parent.ToString()); 2068var otherBasePosition = ((BaseListSyntax)baseWithargs.Parent).Types[1].SpanStart; 2220var otherBasePosition = ((BaseListSyntax)baseWithargs.Parent).Types[1].SpanStart; 2318Assert.Equal("Base(X)", x.Parent.Parent.Parent.ToString()); 2534Assert.Equal("= X + 1", x.Parent.Parent.ToString()); 2572Assert.Equal("= X + 1", x.Parent.Parent.ToString()); 2609Assert.Equal("= X + 1", x.Parent.Parent.ToString()); 2645Assert.Equal("() => X + 1", x.Parent.Parent.ToString()); 3332switch (identifier.Parent.ToString()) 3340Assert.Equal(SyntaxKind.SimpleBaseType, identifier.Parent.Kind());
Semantics\QueryTests.cs (1)
2246var e2 = e.Parent as ExpressionSyntax; // w+1
Semantics\RecordStructTests.cs (8)
2595Assert.Equal("= X + 1", x.Parent!.Parent!.ToString()); 2630Assert.Equal("= X + 1", x.Parent!.Parent!.ToString()); 2664Assert.Equal("= X + 1", x.Parent!.Parent!.ToString()); 2699Assert.Equal("() => X + 1", x.Parent!.Parent!.ToString());
Semantics\RecordTests.cs (69)
21156Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 21212Assert.Null(model.GetOperation(baseWithargs.Parent)); 21213Assert.Same(operation.Parent.Parent, model.GetOperation(baseWithargs.Parent.Parent)); 21214Assert.Equal(SyntaxKind.RecordDeclaration, baseWithargs.Parent.Parent.Kind()); 21314model.VerifyOperationTree(baseWithargs.Parent, 21386Assert.Equal("Test(X, out var y)", x.Parent!.Parent!.Parent!.ToString()); 21397Assert.Equal("y", y.Parent!.ToString()); 21398Assert.Equal("(Test(X, out var y), y)", y.Parent!.Parent!.ToString()); 21399Assert.Equal("Base(Test(X, out var y), y)", y.Parent!.Parent!.Parent!.ToString()); 21410Assert.Equal("(Test(X, out var y), y)", test.Parent!.Parent!.Parent!.ToString()); 21451Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 21497Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 21557Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 21615Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 21626Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 21704Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 21715Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 21900Assert.Equal("Base(X)", x.Parent!.Parent!.Parent!.ToString()); 21937Assert.Equal("Base(X)", x.Parent!.Parent!.Parent!.ToString()); 21977Assert.Equal("Base(X)", x.Parent!.Parent!.Parent!.ToString()); 22012Assert.Equal("Base(X)", x.Parent!.Parent!.Parent!.ToString()); 22091Assert.Equal("Base(X, Y)", x.Parent!.Parent!.Parent!.ToString()); 22299var otherBasePosition = ((BaseListSyntax)baseWithargs.Parent!).Types[1].SpanStart; 22451var otherBasePosition = ((BaseListSyntax)baseWithargs.Parent!).Types[1].SpanStart; 24655Assert.Equal("= X + 1", x.Parent!.Parent!.ToString()); 24690Assert.Equal("= X + 1", x.Parent!.Parent!.ToString()); 24724Assert.Equal("= X + 1", x.Parent!.Parent!.ToString()); 24759Assert.Equal("() => X + 1", x.Parent!.Parent!.ToString()); 26366switch (identifier.Parent!.ToString()) 26374Assert.Equal(SyntaxKind.SimpleBaseType, identifier.Parent.Kind());
Semantics\RefEscapingTests.cs (8)
4424Assert.Equal(@"(global, s) = (local, """")", tuple2.Parent.ToString()); 4430Assert.Equal(@"(global, s) = (local, null)", tuple3.Parent.ToString()); 4436Assert.Equal(@"(c, s) = (local, """")", tuple6.Parent.ToString()); 4442Assert.Equal("(c, s) = (local, null)", tuple7.Parent.ToString()); 4524Assert.Equal(@"(global, s) = (local, """")", tuple2.Parent.ToString()); 4530Assert.Equal(@"(global, s) = (local, null)", tuple3.Parent.ToString()); 4536Assert.Equal(@"(c, s) = (local, """")", tuple6.Parent.ToString()); 4542Assert.Equal("(c, s) = (local, null)", tuple7.Parent.ToString());
Semantics\RefFieldTests.cs (26)
11580var type = ((VariableDeclarationSyntax)decl.Parent).Type; 11648var type = ((VariableDeclarationSyntax)decl.Parent).Type; 11714var type = ((VariableDeclarationSyntax)decl.Parent).Type; 11903var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 11935var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 12087var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 12115var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 12314var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 12348var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 12494var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 12522var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 12960var type = ((VariableDeclarationSyntax)decl.Parent).Type; 13024var type = ((VariableDeclarationSyntax)decl.Parent).Type; 13101var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 13171var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 13868var type = ((VariableDeclarationSyntax)decls[0].Parent).Type; 13910var type = ((VariableDeclarationSyntax)decls[0].Parent).Type; 14362var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 14390var type = ((DeclarationExpressionSyntax)decl.Parent).Type; 26301var type = ((VariableDeclarationSyntax)decl.Parent).Type; 26391var type = ((VariableDeclarationSyntax)decl.Parent).Type; 26662var type = ((VariableDeclarationSyntax)decl.Parent).Type; 26722var type = ((VariableDeclarationSyntax)decl.Parent).Type; 26944var type = ((VariableDeclarationSyntax)decls[0].Parent).Type; 26992var type = ((VariableDeclarationSyntax)decls[0].Parent).Type; 28094var symbol = model.GetDeclaredSymbol(fieldInitializerSyntax.Parent);
Semantics\TargetTypedDefaultTests.cs (9)
1632Assert.Equal("s += default", defaultLiteral.Parent.ToString()); 2415Assert.Equal("(o, default)", first.Parent.Parent.ToString()); 2420Assert.Equal("(default, o)", second.Parent.Parent.ToString()); 2425Assert.Equal("(s, default)", third.Parent.Parent.ToString()); 2430Assert.Equal("(default, s)", fourth.Parent.Parent.ToString());
Semantics\TopLevelStatementsTests.cs (99)
200var operation1 = model1.GetOperation(localRef.Parent); 328var operation1 = model1.GetOperation(localRef.Parent); 1697Assert.Equal("System.Console.WriteLine(Test)", nameRef.Parent.Parent.Parent.ToString()); 1705Assert.Equal("using alias1 = Test;", nameRef.Parent.ToString()); 1721Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 1727Assert.Equal("System.Console.WriteLine(Test)", nameRef.Parent.Parent.Parent.ToString()); 1732Assert.Equal("using alias2 = Test;", nameRef.Parent.ToString()); 1737Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 1743Assert.Equal("System.Console.WriteLine(Test)", nameRef.Parent.Parent.Parent.ToString()); 1873Assert.Equal("using alias1 = Test;", nameRef.Parent.ToString()); 1889Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 1895Assert.Equal("System.Console.WriteLine(Test)", nameRef.Parent.Parent.Parent.ToString()); 1900Assert.Equal("using alias2 = Test;", nameRef.Parent.ToString()); 1905Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 1911Assert.Equal("System.Console.WriteLine(Test)", nameRef.Parent.Parent.Parent.ToString()); 2091Assert.Equal("using alias1 = Test;", nameRef.Parent.ToString()); 2104Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 2109Assert.Equal("System.Console.WriteLine(Test())", nameRef.Parent.Parent.Parent.Parent.ToString()); 2114Assert.Equal("using alias2 = Test;", nameRef.Parent.ToString()); 2119Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 2124Assert.Equal("System.Console.WriteLine(Test())", nameRef.Parent.Parent.Parent.Parent.ToString()); 2257Assert.Equal("using alias1 = Test;", nameRef.Parent.ToString()); 2270Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 2275Assert.Equal("System.Console.WriteLine(Test())", nameRef.Parent.Parent.Parent.Parent.ToString()); 2280Assert.Equal("using alias2 = Test;", nameRef.Parent.ToString()); 2285Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 2290Assert.Equal("System.Console.WriteLine(Test())", nameRef.Parent.Parent.Parent.Parent.ToString()); 2437Assert.Equal("using alias1 = Test;", nameRef.Parent.ToString()); 2452Assert.Equal("goto Test;", nameRef.Parent.ToString()); 2467Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 2472Assert.Equal("goto Test;", nameRef.Parent.ToString()); 2477Assert.Equal("using alias2 = Test;", nameRef.Parent.ToString()); 2482Assert.Equal(": Test", nameRef.Parent.Parent.ToString()); 2488Assert.Equal("goto Test;", nameRef.Parent.ToString()); 2907var nameRef = tree1.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(id => id.Identifier.ValueText == "alias1" && !id.Parent.IsKind(SyntaxKind.NameEquals)).Single(); 2929nameRef = tree2.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(id => id.Identifier.ValueText == "alias2" && !id.Parent.IsKind(SyntaxKind.NameEquals)).Single(); 3932Assert.Equal("using alias1 = args;", nameRef.Parent.ToString()); 3944Assert.Equal("System.Console.WriteLine(args)", nameRef.Parent.Parent.Parent.ToString()); 3963Assert.Equal(": args", nameRef.Parent.Parent.ToString()); 3968Assert.Equal("System.Console.WriteLine(args)", nameRef.Parent.Parent.Parent.ToString()); 3973Assert.Equal("using alias2 = args;", nameRef.Parent.ToString()); 3978Assert.Equal(": args", nameRef.Parent.Parent.ToString()); 3983Assert.Equal("System.Console.WriteLine(args)", nameRef.Parent.Parent.Parent.ToString()); 4081Assert.Equal("using alias1 = args;", nameRef.Parent.ToString()); 4093Assert.Equal(": args", nameRef.Parent.Parent.ToString()); 4098Assert.Equal("System.Console.WriteLine(args)", nameRef.Parent.Parent.Parent.ToString()); 4103Assert.Equal("using alias2 = args;", nameRef.Parent.ToString()); 4108Assert.Equal(": args", nameRef.Parent.Parent.ToString()); 4113Assert.Equal("System.Console.WriteLine(args)", nameRef.Parent.Parent.Parent.ToString()); 6444Assert.True(syntaxTreeModel.TestOnlyMemberModels.ContainsKey(globalStatement.Parent)); 6446MemberSemanticModel mm = syntaxTreeModel.TestOnlyMemberModels[globalStatement.Parent]; 9695model.TryGetSpeculativeSemanticModel(root.DescendantNodes().Single(n => n is ExpressionStatementSyntax { Parent: GlobalStatementSyntax }).Span.End, nodeToSpeculate, out var speculativeModelInTopLevel); 9700model.TryGetSpeculativeSemanticModel(root.DescendantNodes().Single(n => n is ExpressionStatementSyntax { Parent: BlockSyntax }).Span.End, nodeToSpeculate, out var speculativeModelOutsideTopLevel);
Semantics\UnsafeTests.cs (2)
5012var callSyntax = syntax.Parent; 5079var callSyntax = syntax.Parent;
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (32)
Compilation\GetSemanticInfoTests.cs (4)
3640var cast = (CastExpressionSyntax)literal.Parent; 3673var cast = (CastExpressionSyntax)literal.Parent; 3709var cast1 = (CastExpressionSyntax)literal.Parent; 3721var cast2 = (CastExpressionSyntax)cast1.Parent;
Compilation\SemanticModelAPITests.cs (2)
3751var expr = identifier.FirstAncestorOrSelf<ArgumentSyntax>().Parent.Parent;
DocumentationComments\CrefTests.cs (1)
5799if (typeSyntax.Parent.Kind() == SyntaxKind.NameMemberCref)
Symbols\CheckedUserDefinedOperatorsTests.cs (13)
7213Assert.Equal("System.Int64 C0.op_CheckedExplicit(C0 x)", model.GetSymbolInfo(xNode.Parent).Symbol.ToTestDisplayString()); 7214Assert.Equal("System.Int64 C0.op_CheckedExplicit(C0 x)", model.GetSymbolInfo(yNode.Parent).Symbol.ToTestDisplayString()); 7216var int64 = ((IMethodSymbol)model.GetSymbolInfo(xNode.Parent).Symbol).ReturnType; 7285Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.GetSymbolInfo(xNode.Parent).Symbol.ToTestDisplayString()); 7286Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.GetSymbolInfo(yNode.Parent).Symbol.ToTestDisplayString()); 7288var int64 = ((IMethodSymbol)model.GetSymbolInfo(xNode.Parent).Symbol).ReturnType; 7356Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.GetSymbolInfo(xNode.Parent).Symbol.ToTestDisplayString()); 7357Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.GetSymbolInfo(yNode.Parent).Symbol.ToTestDisplayString()); 7359var int64 = ((IMethodSymbol)model.GetSymbolInfo(xNode.Parent).Symbol).ReturnType; 7429Assert.Equal("C0 C0.op_CheckedUnaryNegation(C0 a)", model.GetSymbolInfo(xNode.Parent).Symbol.ToTestDisplayString()); 7430Assert.Equal("C0 C0.op_CheckedUnaryNegation(C0 a)", model.GetSymbolInfo(yNode.Parent).Symbol.ToTestDisplayString()); 7493Assert.Equal("C0 C0.op_UnaryNegation(C0 a)", model.GetSymbolInfo(xNode.Parent).Symbol.ToTestDisplayString()); 7494Assert.Equal("C0 C0.op_UnaryNegation(C0 a)", model.GetSymbolInfo(yNode.Parent).Symbol.ToTestDisplayString());
Symbols\ExtensionMethodTests.cs (5)
3018var call = (ExpressionSyntax)memberAccess.Parent; 3873Assert.Equal("Instance.SetMember", instance.Parent.ToString()); 3920Assert.Equal("Instance.SetMember", instance.Parent.ToString()); 3965Assert.Equal("Instance.SetMember", instance.Parent.ToString()); 4015Assert.Equal("Instance.SetMember", instance.Parent.ToString());
Symbols\FunctionPointerTypeSymbolTests.cs (2)
1168VerifyOperationTreeForNode(comp, model, functionPointerTypeSyntax.Parent, expectedOperationTree: @" 1274VerifyOperationTreeForNode(comp, model, functionPointerTypeSyntax.Parent, expectedOperationTree: @"
Symbols\Source\NullablePublicAPITests.cs (3)
1953var typeInfo = model.GetTypeInfoAndVerifyIOperation(((VariableDeclarationSyntax)variable.Parent).Type); 2294var typeInfo = model.GetTypeInfoAndVerifyIOperation(((DeclarationExpressionSyntax)variable.Parent).Type); 2564var type = ((DeclarationExpressionSyntax)variable.Parent).Type;
Symbols\Source\UsingAliasTests.cs (2)
698Assert.Equal("Short.MyClass", node.Parent.ToString()); 741Assert.Equal("Short.MyClass", node.Parent.ToString());
Microsoft.CodeAnalysis.CSharp.Test.Utilities (2)
CompilationTestUtils.cs (2)
543case IdentifierNameSyntax id when id.Parent is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node: 546case ExpressionSyntax expr when expr.Parent is ConditionalAccessExpressionSyntax cond && cond.WhenNotNull == node:
Microsoft.CodeAnalysis.Test.Utilities (27)
Compilation\ControlFlowGraphVerifier.cs (27)
551parent = parent.Parent; 556assignment.Parent?.Kind() == CSharp.SyntaxKind.ObjectInitializerExpression && 649if (syntax.Parent is CSharp.Syntax.SwitchStatementSyntax switchStmt && switchStmt.Expression == syntax) 654if (syntax.Parent is CSharp.Syntax.SwitchExpressionSyntax switchExpr && switchExpr.GoverningExpression == syntax) 692if (syntax.Parent is CSharp.Syntax.CommonForEachStatementSyntax forEach && forEach.Expression == syntax) 874if (syntax.Parent is CSharp.Syntax.ConditionalAccessExpressionSyntax access && 906return referenceSyntax.Parent is AssignmentExpressionSyntax conditionalAccess && 919return referenceSyntax.Parent is CSharp.Syntax.AssignmentExpressionSyntax 922Parent: InitializerExpressionSyntax { Parent: CSharp.Syntax.ObjectCreationExpressionSyntax }, 1087if (syntax.Parent is CSharp.Syntax.ConditionalAccessExpressionSyntax access && 1148if (syntax.Parent is CSharp.Syntax.WithExpressionSyntax withExpr 1157if (syntax.Parent?.Parent is CSharp.Syntax.UsingStatementSyntax usingStmt && 1158usingStmt.Declaration == syntax.Parent) 1163CSharpSyntaxNode parent = syntax.Parent; 1176if ((parent = parent.Parent)?.Kind() == CSharp.SyntaxKind.BracketedArgumentList && 1177(parent = parent.Parent)?.Kind() == CSharp.SyntaxKind.ImplicitElementAccess && 1178parent.Parent is AssignmentExpressionSyntax assignment && assignment.Kind() == CSharp.SyntaxKind.SimpleAssignmentExpression && 1180assignment.Parent?.Kind() == CSharp.SyntaxKind.ObjectInitializerExpression && 1189if (((LockStatementSyntax)syntax.Parent).Expression == syntax) 1196if (((CSharp.Syntax.UsingStatementSyntax)syntax.Parent).Expression == syntax) 1203if (((CSharp.Syntax.SwitchStatementSyntax)syntax.Parent).Expression == syntax) 1210if (((CSharp.Syntax.SwitchExpressionSyntax)syntax.Parent).GoverningExpression == syntax) 1217if (((AssignmentExpressionSyntax)syntax.Parent).Left == syntax) 1309while (syntax.Parent is CSharp.Syntax.ParenthesizedExpressionSyntax or 1312syntax = syntax.Parent;
Microsoft.CodeAnalysis.UnitTests (2)
CommonSyntaxTests.cs (2)
223Assert.Equal(CSharp.SyntaxKind.ParenthesizedExpression, CSharp.CSharpExtensions.Kind(trackedB.Parent)); 246Assert.Equal(CSharp.SyntaxKind.ParenthesizedExpression, CSharp.CSharpExtensions.Kind(trackedB.Parent));