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