1090 references to Parent
Microsoft.CodeAnalysis.CSharp (359)
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)
1140
Debug.Assert(parameterListSyntax.
Parent
is object);
1141
TypeSymbol type = BindCrefParameterOrReturnType(parameter.Type, (MemberCrefSyntax)parameterListSyntax.
Parent
, diagnostics);
1178
Debug.Assert(typeSyntax.
Parent
is object);
1180
if (typeSyntax.
Parent
.Kind() == SyntaxKind.ConversionOperatorMemberCref)
1225
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
;
761
else if (node.
Parent
is not ArgumentSyntax)
819
if (discarded.
Parent
is DeclarationExpressionSyntax declExpr && declExpr.Designation == discarded)
878
if (designation.
Parent
is DeclarationExpressionSyntax declExpr && declExpr.Designation == designation)
929
if (designation.
Parent
is DeclarationExpressionSyntax declExpr && declExpr.Designation == designation)
Binder\Binder_Expressions.cs (22)
896
var parent = node.
Parent
;
1874
CSharpSyntaxNode parent = node.
Parent
;
2570
else if (this.ContainingType is null || node.
Parent
is null || (node.
Parent
.Kind() != SyntaxKind.SimpleMemberAccessExpression && node.
Parent
.Kind() != SyntaxKind.ElementAccessExpression))
4498
(initSyntax.
Parent
== null ||
4499
initSyntax.
Parent
.Kind() != SyntaxKind.EqualsValueClause ||
4500
((EqualsValueClauseSyntax)initSyntax.
Parent
).Value != initSyntax)
4862
initializerArgumentListOpt.
Parent
.Kind() != SyntaxKind.ThisConstructorInitializer;
4885
syntax: initializerArgumentListOpt.
Parent
,
4896
syntax: initializerArgumentListOpt.
Parent
,
4905
Debug.Assert(initializerArgumentListOpt.
Parent
.Kind() == SyntaxKind.ThisConstructorInitializer);
4912
switch (initializerArgumentListOpt?.
Parent
)
4939
syntax: initializerArgumentListOpt.
Parent
,
5012
(initializerArgumentListOpt != null && initializerArgumentListOpt.
Parent
.Kind() == SyntaxKind.ThisConstructorInitializer));
5662
Debug.Assert(syntax.
Parent
.
Parent
.Kind() != SyntaxKind.WithInitializerExpression);
7493
Debug.Assert((left.
Parent
is MemberAccessExpressionSyntax { RawKind: (int)SyntaxKind.SimpleMemberAccessExpression } memberAccess && memberAccess.Expression == left) ||
7494
(left.
Parent
is QualifiedNameSyntax qualifiedName && qualifiedName.Left == left) ||
7495
(left.
Parent
is FromClauseSyntax {
Parent
: QueryExpressionSyntax query } fromClause && query.FromClause == fromClause && fromClause.Expression == left));
11390
CSharpSyntaxNode parent = node.
Parent
;
Binder\Binder_Operators.cs (1)
1369
binary = (BinaryExpressionSyntax)child.
Parent
;
Binder\Binder_Patterns.cs (4)
1365
Debug.Assert(node.
Parent
is { });
1367
node.
Parent
.Kind() == SyntaxKind.VarPattern ? node.
Parent
: node, // for `var x` use whole pattern, otherwise use designation for the syntax
1602
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)
361
switch (node.
Parent
.Kind())
830
if (declarationNode.
Parent
.Kind() == SyntaxKind.LocalDeclarationStatement &&
1938
hasUnsafeModifier: node.
Parent
?.Kind() == SyntaxKind.UnsafeStatement,
3399
: (filter.
Parent
.
Parent
is TryStatementSyntax s && s.Catches.Count == 1 && s.Finally == null)
3586
var messageId = expressionBody.
Parent
switch
3599
_ => throw ExceptionUtilities.UnexpectedValue(expressionBody.
Parent
.Kind()),
Binder\Binder_Symbols.cs (9)
495
if (refTypeSyntax.
Parent
is UsingDirectiveSyntax)
873
var errorResult = CreateErrorIfLookupOnTypeParameter(node.
Parent
, qualifierOpt, identifierValueText, 0, diagnostics);
942
if (node.
Parent
== null)
946
if (node.
Parent
.Kind() == SyntaxKind.Attribute)
953
if (node.
Parent
is UsingDirectiveSyntax { Alias: not null })
1008
switch (node.
Parent
)
1024
parent.
Parent
?.
Parent
is InvocationExpressionSyntax invocation &&
1276
var errorResult = CreateErrorIfLookupOnTypeParameter(node.
Parent
, qualifierOpt, plainName, arity, diagnostics);
Binder\BinderFactory.BinderFactoryVisitor.cs (44)
107
var compilationUnit = (CompilationUnitSyntax)node.
Parent
;
119
SynthesizedSimpleProgramEntryPointSymbol simpleProgram = SynthesizedSimpleProgramEntryPointSymbol.GetSimpleProgramEntryPoint(compilation, (CompilationUnitSyntax)node.
Parent
, fallbackToMainEntryPoint: false);
139
return VisitCore(methodDecl.
Parent
);
163
var parentType = methodDecl.
Parent
as TypeDeclarationSyntax;
170
resultBinder = VisitCore(methodDecl.
Parent
);
201
return VisitCore(parent.
Parent
);
211
resultBinder = VisitCore(parent.
Parent
);
240
return VisitCore(parent.
Parent
);
249
resultBinder = VisitCore(parent.
Parent
);
267
return VisitCore(parent.
Parent
);
277
resultBinder = VisitCore(parent.
Parent
);
281
var propertyOrEventDecl = parent.
Parent
.
Parent
;
335
return VisitCore(parent.
Parent
);
345
resultBinder = VisitCore(parent.
Parent
);
375
return VisitCore(parent.
Parent
).SetOrClearUnsafeRegionIfNecessary(parent.Modifiers);
380
return VisitCore(parent.
Parent
).SetOrClearUnsafeRegionIfNecessary(parent.Modifiers);
385
return VisitCore(parent.
Parent
).SetOrClearUnsafeRegionIfNecessary(parent.Modifiers);
392
return VisitCore(parent.
Parent
).SetOrClearUnsafeRegionIfNecessary(parent.Modifiers);
402
return VisitCore(parent.
Parent
).SetOrClearUnsafeRegionIfNecessary(parent.Modifiers);
415
resultBinder = VisitCore(parent.
Parent
).SetOrClearUnsafeRegionIfNecessary(parent.Modifiers);
441
if (node.
Parent
.Kind() == SyntaxKind.CompilationUnit && syntaxTree.Options.Kind != SourceCodeKind.Regular)
657
return VisitCore(parent.
Parent
);
665
Binder outer = VisitCore(parent.
Parent
); // a binder for the body of the enclosing type or namespace
692
return VisitCore(parent.
Parent
);
700
Binder outer = VisitCore(parent.
Parent
); // a binder for the body of the type enclosing this type
720
return VisitCore(parent.
Parent
);
762
resultBinder = VisitCore(parent.
Parent
);
825
return VisitCore(parent.
Parent
);
841
return VisitCore(parent.
Parent
);
863
var container = parent.
Parent
;
874
outer = _factory.GetBinder(parent.
Parent
, position);
1133
return VisitCore(parent.
Parent
);
1156
? MakeCrefBinderInternal(crefSyntax, VisitCore(parent.
Parent
), inParameterOrReturnType)
1169
return VisitCore(parent.
Parent
);
1241
Binder outerBinder = VisitCore(memberSyntax.
Parent
);
1276
Binder outerBinder = VisitCore(memberSyntax.
Parent
);
1305
Binder outerBinder = VisitCore(memberSyntax.
Parent
);
1328
Binder outerBinder = VisitCore(memberSyntax.
Parent
);
1342
Binder outerBinder = VisitCore(memberSyntax.
Parent
);
1354
Binder outerBinder = VisitCore(memberSyntax.
Parent
);
1361
Binder outerBinder = VisitCore(memberSyntax.
Parent
);
1454
curr = curr.
Parent
;
1466
for (; !SyntaxFacts.IsDocumentationCommentTrivia(curr.Kind()); curr = curr.
Parent
)
Binder\ExpressionVariableFinder.cs (4)
55
Debug.Assert(node.
Parent
is ConstructorInitializerSyntax || node.
Parent
is PrimaryConstructorBaseTypeSyntax);
410
var argumentSyntax = node.
Parent
as ArgumentSyntax;
411
var argumentListSyntaxOpt = argumentSyntax?.
Parent
as BaseArgumentListSyntax;
Binder\LocalBinderFactory.cs (2)
952
if (node.
Parent
is VariableDeclarationSyntax {
Parent
: LocalDeclarationStatementSyntax { IsConst: true } })
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)
94
if (!isSpeculative && node.
Parent
!= null && node.
Parent
.Kind() == SyntaxKind.NameEquals && node.
Parent
.
Parent
.Kind() == SyntaxKind.UsingDirective)
615
if (expression.
Parent
!= null && expression.
Parent
.Kind() == SyntaxKind.CollectionInitializerExpression)
619
InitializerExpressionSyntax initializer = (InitializerExpressionSyntax)expression.
Parent
;
622
while (initializer.
Parent
!= null &&
623
initializer.
Parent
.Kind() == SyntaxKind.SimpleAssignmentExpression &&
624
((AssignmentExpressionSyntax)initializer.
Parent
).Right == initializer &&
625
initializer.
Parent
.
Parent
!= null &&
626
initializer.
Parent
.
Parent
.Kind() == SyntaxKind.ObjectInitializerExpression)
628
initializer = (InitializerExpressionSyntax)initializer.
Parent
.
Parent
;
631
if (initializer.
Parent
is BaseObjectCreationExpressionSyntax objectCreation &&
635
return GetCollectionInitializerSymbolInfoWorker((InitializerExpressionSyntax)expression.
Parent
, expression, cancellationToken);
1621
if (parentExpr != null && !(parentExpr.
Parent
is XmlNameAttributeSyntax) && !SyntaxFacts.IsInTypeOnlyContext(parentExpr) && !binder.IsInsideNameof)
2409
var parent = expression.
Parent
;
3313
CSharpSyntaxNode catchClause = catchDeclaration.
Parent
; //Syntax->Binder map is keyed on clause, not decl
4505
var parent3 = identifierNameSyntax.
Parent
.
Parent
.
Parent
;
4508
var tupleArgument = (ArgumentSyntax)identifierNameSyntax.
Parent
.
Parent
;
4518
CSharpSyntaxNode containingInvocation = parent3.
Parent
;
5160
if (declarationSyntax.
Parent
is TupleTypeSyntax tupleTypeSyntax)
Compilation\InitializerSemanticModel.cs (1)
196
this.Root == node.
Parent
/*field initializer*/;
Compilation\MemberSemanticModel.cs (18)
835
var simpleLambda = parameter.
Parent
as SimpleLambdaExpressionSyntax;
841
var paramList = parameter.
Parent
as ParameterListSyntax;
842
if (paramList == null || paramList.
Parent
== null)
847
if (paramList.
Parent
.IsAnonymousFunction())
849
return GetLambdaParameterSymbol(parameter, (ExpressionSyntax)paramList.
Parent
, cancellationToken);
851
else if (paramList.
Parent
.Kind() == SyntaxKind.LocalFunctionStatement)
853
var localFunction = GetDeclaredSymbol((LocalFunctionStatementSyntax)paramList.
Parent
, cancellationToken).GetSymbol<MethodSymbol>();
1077
var anonymousObjectCreation = (AnonymousObjectCreationExpressionSyntax)declaratorSyntax.
Parent
;
1118
var tupleLiteral = declaratorSyntax?.
Parent
as TupleExpressionSyntax;
1556
if (current.
Parent
== null || current.
Parent
.Kind() != SyntaxKind.LocalFunctionStatement)
2182
return node.
Parent
;
2214
var parent = node.
Parent
;
2239
var grandparent = parent.
Parent
;
2284
CSharpSyntaxNode? parent = node.
Parent
;
2305
var pp = parent.
Parent
;
2324
case { RawKind: (int)SyntaxKind.SimpleMemberAccessExpression,
Parent
.RawKind: (int)SyntaxKind.InvocationExpression }:
2325
bindableParent = bindableParent.
Parent
;
Compilation\MethodBodySemanticModel.cs (1)
241
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)
60
attributedNode = attributedNode?.FirstAncestorOrSelf<AttributeListSyntax>()?.
Parent
;
Compilation\SyntaxTreeSemanticModel.cs (64)
247
else if (node.
Parent
.Kind() == SyntaxKind.XmlNameAttribute && (attrSyntax = (XmlNameAttributeSyntax)node.
Parent
).Identifier == node)
505
for (; expression != null && expression.
Parent
!= null; expression = expression.
Parent
as TypeSyntax)
507
var parent = expression.
Parent
;
508
if (parent is BaseTypeSyntax baseType && parent.
Parent
!= null && parent.
Parent
.Kind() == SyntaxKind.BaseList && baseType.Type == expression)
511
var decl = (BaseTypeDeclarationSyntax)parent.
Parent
.
Parent
;
940
return GetOrAddModel((CompilationUnitSyntax)memberDecl.
Parent
);
962
return GetMemberModel(memberDecl.
Parent
);
977
MemberSemanticModel containing = attribute.
Parent
!= null ? GetMemberModel(attribute.
Parent
) : null;
1007
MemberSemanticModel containing = paramDecl.
Parent
!= null ? GetMemberModel(paramDecl.
Parent
) : null;
1116
ExceptionUtilities.UnexpectedValue(node.
Parent
);
1120
switch (node.
Parent
.Kind())
1124
var variableDecl = (VariableDeclaratorSyntax)node.
Parent
;
1137
var propertyDecl = (PropertyDeclarationSyntax)node.
Parent
;
1150
ParameterSyntax parameterDecl = (ParameterSyntax)node.
Parent
;
1165
var enumDecl = (EnumMemberDeclarationSyntax)node.
Parent
;
1177
throw ExceptionUtilities.UnexpectedValue(node.
Parent
.Kind());
1186
if (node.
Parent
is BasePropertyDeclarationSyntax)
1193
ExceptionUtilities.UnexpectedValue(node.
Parent
);
1208
var parent = node.
Parent
;
1263
switch (variableDecl.
Parent
.
Parent
.Kind())
1326
if (declarationSyntax.
Parent
.Kind() == SyntaxKind.CompilationUnit)
1332
container = GetDeclaredNamespaceOrType(declarationSyntax.
Parent
);
1604
var propertyOrEventDecl = declarationSyntax.
Parent
.
Parent
;
1628
var containingMemberSyntax = declarationSyntax.
Parent
;
1858
var field = declarationSyntax.
Parent
== null ? null : declarationSyntax.
Parent
.
Parent
as BaseFieldDeclarationSyntax;
1947
Binder binder = _binderFactory.GetInNamespaceBinder(declarationSyntax.
Parent
);
1980
var binder = _binderFactory.GetInNamespaceBinder(declarationSyntax.
Parent
);
2033
if (parameter.
Parent
is not ParameterListSyntax {
Parent
: ExtensionBlockDeclarationSyntax extensionDecl })
2064
var paramList = parameter.
Parent
as ParameterListSyntax;
2070
var memberDecl = paramList.
Parent
as MemberDeclarationSyntax;
2101
var paramList = parameter.
Parent
as BracketedParameterListSyntax;
2107
var memberDecl = paramList.
Parent
as MemberDeclarationSyntax;
2128
var paramList = parameter.
Parent
as ParameterListSyntax;
2134
var memberDecl = paramList.
Parent
as DelegateDeclarationSyntax;
2199
if (typeParameter.
Parent
is TypeParameterListSyntax typeParamList)
2202
switch (typeParamList.
Parent
)
2211
throw ExceptionUtilities.UnexpectedValue(typeParameter.
Parent
.Kind());
2269
bool isGlobalStatement = firstStatement.
Parent
is GlobalStatementSyntax;
2270
if (isGlobalStatement && (lastStatement.
Parent
is not GlobalStatementSyntax || firstStatement.
Parent
.
Parent
!= lastStatement.
Parent
.
Parent
))
2276
if (!isGlobalStatement && (firstStatement.
Parent
== null || firstStatement.
Parent
!= lastStatement.
Parent
))
2354
if (memberDeclaration.
Parent
.Kind() == SyntaxKind.CompilationUnit)
2378
var container = GetDeclaredNamespaceOrType(memberDeclaration.
Parent
);
2551
case PrimaryConstructorBaseTypeSyntax {
Parent
: BaseListSyntax {
Parent
: TypeDeclarationSyntax typeDeclaration } } baseType
2560
case ParameterSyntax param when declaredSymbol.Kind == SymbolKind.Property && param.
Parent
?.
Parent
is RecordDeclarationSyntax recordDeclaration && recordDeclaration.ParameterList == param.
Parent
:
Compiler\MethodCompiler.cs (7)
2189
!(expression.
Parent
is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression &&
2203
switch (id.
Parent
)
2221
assignment.
Parent
?.Kind() is SyntaxKind.ObjectInitializerExpression or SyntaxKind.WithInitializerExpression)
2229
!(id.
Parent
is BinaryExpressionSyntax { RawKind: (int)SyntaxKind.IsExpression } isExpression &&
2268
var parent = child.
Parent
;
2273
parent = child.
Parent
;
2281
if (id.
Parent
is InvocationExpressionSyntax invocation && invocation.Expression == id && invocation.MayBeNameofOperator())
Declarations\DeclarationTreeBuilder.cs (6)
253
syntaxReference: firstGlobalStatement.SyntaxTree.GetReference(firstGlobalStatement.
Parent
),
531
if (node.
Parent
is FileScopedNamespaceDeclarationSyntax)
538
else if (node.
Parent
is NamespaceDeclarationSyntax)
559
Debug.Assert(node.
Parent
is CompilationUnitSyntax);
560
var compilationUnit = (CompilationUnitSyntax)node.
Parent
;
573
if (node.
Parent
is FileScopedNamespaceDeclarationSyntax)
DocumentationComments\SourceDocumentationCommentUtils.cs (1)
53
curr = curr.
Parent
;
Lowering\Instrumentation\DebugInfoInjector.cs (2)
414
Debug.Assert(parameterSyntax is {
Parent
.
Parent
: RecordDeclarationSyntax });
Lowering\Instrumentation\DebugInfoInjector_SequencePoints.cs (12)
89
Debug.Assert(declaratorSyntax.
Parent
!= null);
90
var declarationSyntax = (VariableDeclarationSyntax)declaratorSyntax.
Parent
;
91
Debug.Assert(declarationSyntax.
Parent
!= null);
95
switch (declarationSyntax.
Parent
.Kind())
100
var modifiers = ((BaseFieldDeclarationSyntax)declarationSyntax.
Parent
).Modifiers;
107
var parent = (LocalDeclarationStatementSyntax)declarationSyntax.
Parent
;
129
throw ExceptionUtilities.UnexpectedValue(declarationSyntax.
Parent
.Kind());
144
Debug.Assert(declaratorSyntax.
Parent
!= null);
146
var declarationSyntax = (VariableDeclarationSyntax)declaratorSyntax.
Parent
;
148
Debug.Assert(declarationSyntax.
Parent
!= null);
158
end = declarationSyntax.
Parent
.Span.End;
168
node = declarationSyntax.
Parent
;
Lowering\LocalRewriter\LocalRewriter.cs (3)
871
if (syntax is ExpressionSyntax {
Parent
: { } parent } && parent.Kind() == SyntaxKind.EqualsValueClause) // Should be the initial value.
873
Debug.Assert(parent.
Parent
is { });
874
switch (parent.
Parent
.Kind())
Lowering\LocalRewriter\LocalRewriter_BasePatternSwitchLocalRewriter.cs (1)
30
SyntaxNode? sectionSyntax = whenClauseSyntax is SwitchLabelSyntax l ? l.
Parent
: whenClauseSyntax;
Parser\LanguageParser.cs (4)
141
return node != null ? node.
Parent
: null;
2470
return (this.CurrentNode.
Parent
is Syntax.CompilationUnitSyntax);
4746
CSharp.CSharpSyntaxNode parent = parameter.
Parent
;
4754
CSharp.CSharpSyntaxNode grandparent = parent.
Parent
;
SourceGeneration\CSharpSyntaxHelper.cs (3)
37
return target is VariableDeclaratorSyntax {
Parent
: VariableDeclarationSyntax {
Parent
: BaseFieldDeclarationSyntax baseField } }
56
var container = attributeList.
Parent
;
SymbolDisplay\SymbolDisplayVisitor_Minimal.cs (4)
275
fromClause.
Parent
as QueryBodySyntax ?? ((QueryExpressionSyntax)fromClause.
Parent
!).Body,
277
letClause.
Parent
as QueryBodySyntax,
279
joinClause.
Parent
as QueryBodySyntax,
Symbols\Source\SourceEventSymbol.cs (4)
165
Debug.Assert(syntax.
Parent
?.
Parent
is not null);
166
return (EventFieldDeclarationSyntax)syntax.
Parent
.
Parent
;
Symbols\Source\SourceFieldLikeEventSymbol.cs (2)
35
Debug.Assert(declaratorSyntax.
Parent
is object);
40
var declarationSyntax = (VariableDeclarationSyntax)declaratorSyntax.
Parent
;
Symbols\Source\SourceMemberFieldSymbol.cs (2)
419
return (BaseFieldDeclarationSyntax)declarator.
Parent
.
Parent
;
Symbols\Source\SourceMemberMethodSymbol.cs (2)
750
Debug.Assert(arrowExpression.
Parent
.Kind() == SyntaxKind.PropertyDeclaration ||
751
arrowExpression.
Parent
.Kind() == SyntaxKind.IndexerDeclaration ||
Symbols\Source\SourceMethodSymbolWithAttributes.cs (15)
53
Debug.Assert(arrowExpression.
Parent
!.Kind() == SyntaxKind.PropertyDeclaration ||
54
arrowExpression.
Parent
.Kind() == SyntaxKind.IndexerDeclaration);
1084
case { Parent: SimpleNameSyntax {
Parent
: MemberAccessExpressionSyntax {
Parent
: InvocationExpressionSyntax } memberAccess } rhs } when memberAccess.Name == rhs:
1085
case { Parent: SimpleNameSyntax {
Parent
: MemberBindingExpressionSyntax {
Parent
: InvocationExpressionSyntax } memberBinding } rhs1 } when memberBinding.Name == rhs1:
1086
case { Parent: SimpleNameSyntax {
Parent
: InvocationExpressionSyntax invocation } simpleName } when invocation.Expression == simpleName:
1089
case { Parent: SimpleNameSyntax {
Parent
: not (MemberAccessExpressionSyntax or MemberBindingExpressionSyntax) } }:
1090
case { Parent: SimpleNameSyntax {
Parent
: MemberAccessExpressionSyntax memberAccess } rhs } when memberAccess.Name == rhs:
1091
case { Parent: SimpleNameSyntax {
Parent
: MemberBindingExpressionSyntax memberBinding } rhs1 } when memberBinding.Name == rhs1:
1284
case { Parent: SimpleNameSyntax {
Parent
: MemberAccessExpressionSyntax {
Parent
: InvocationExpressionSyntax } memberAccess } rhs } when memberAccess.Name == rhs:
1285
case { Parent: SimpleNameSyntax {
Parent
: InvocationExpressionSyntax invocation } simpleName } when invocation.Expression == simpleName:
1288
case { Parent: SimpleNameSyntax {
Parent
: not MemberAccessExpressionSyntax } }:
1289
case { Parent: SimpleNameSyntax {
Parent
: MemberAccessExpressionSyntax memberAccess } rhs } when memberAccess.Name == rhs:
Symbols\Source\SourceNamedTypeSymbol_Bases.cs (1)
624
var name = GetName(bases.
Parent
);
Symbols\Source\SourceOrdinaryMethodSymbol.cs (1)
236
var typeDecl = syntax.
Parent
as TypeDeclarationSyntax;
Syntax\CSharpSyntaxNode.cs (3)
70
var parent = node.
Parent
;
405
curr = curr.
Parent
;
522
var parent = this.
Parent
;
Syntax\LambdaUtilities.cs (6)
163
return arrowExpressionClause.Expression == node && arrowExpressionClause.
Parent
is LocalFunctionStatementSyntax;
167
return fromClause.Expression == node && fromClause.
Parent
is QueryBodySyntax;
230
Debug.Assert(selectOrGroupClause.
Parent
!.
Parent
is object);
231
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)
2077
var parent = node.
Parent
as ExpressionSyntax;
2150
CSharpSyntaxNode? parent = node.
Parent
;
2197
CSharpSyntaxNode? grandparent = parent.
Parent
;
2238
if (parent.
Parent
.IsKind(SyntaxKind.Subpattern))
2240
return parent.
Parent
;
2263
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
;
535
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)
330
=> node is AccessorListSyntax {
Parent
: PropertyDeclarationSyntax { Initializer: not null } };
514
if (propPattern.
Parent
is RecursivePatternSyntax rps)
574
if (posPattern.
Parent
is RecursivePatternSyntax rps)
1361
node is AssignmentExpressionSyntax {
Parent
: InitializerExpressionSyntax })
1379
if (node is UsingStatementSyntax {
Parent
: UsingStatementSyntax })
1382
if (node is FixedStatementSyntax {
Parent
: FixedStatementSyntax })
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (3)
RefactoringHelpers\RefactoringHelpersTests.cs (3)
1102
""", n => n.
Parent
is TupleExpressionSyntax);
1130
""", n => n.
Parent
is TupleExpressionSyntax);
1534
""", predicate: n => n.
Parent
is TupleExpressionSyntax);
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (97)
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)
8352
Assert.Equal("(System.Int16 c, System.String d)?", model.GetTypeInfo(node.
Parent
).Type.ToTestDisplayString());
8353
Assert.Equal("(System.Int16 a, System.String b)?", model.GetTypeInfo(node.
Parent
).ConvertedType.ToTestDisplayString());
8354
Assert.Equal(Conversion.Identity, model.GetConversion(node.
Parent
));
8457
Assert.Equal("(System.Int16 c, System.String d)", model.GetTypeInfo(node.
Parent
).Type.ToTestDisplayString());
8458
Assert.Equal("(System.Int16 a, System.String b)?", model.GetTypeInfo(node.
Parent
).ConvertedType.ToTestDisplayString());
8459
Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node.
Parent
).Kind);
8484
var node = nodes.OfType<ParenthesizedExpressionSyntax>().Single().
Parent
;
8518
var node = nodes.OfType<ParenthesizedExpressionSyntax>().Single().
Parent
;
8601
Assert.Equal("(System.Int32 c, System.String d)?", model.GetTypeInfo(node.
Parent
).Type.ToTestDisplayString());
8602
Assert.Equal("(System.Int32 a, System.String b)?", model.GetTypeInfo(node.
Parent
).ConvertedType.ToTestDisplayString());
8603
Assert.Equal(Conversion.Identity, model.GetConversion(node.
Parent
));
8636
Assert.Equal("(System.Int32 c, System.String d)", model.GetTypeInfo(node.
Parent
).Type.ToTestDisplayString());
8637
Assert.Equal("(System.Int32 a, System.String b)?", model.GetTypeInfo(node.
Parent
).ConvertedType.ToTestDisplayString());
8638
Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node.
Parent
).Kind);
8779
Assert.Equal("(System.Int16 c, System.String d)", model.GetTypeInfo(node.
Parent
).Type.ToTestDisplayString());
8780
Assert.Equal("(System.Int16 a, System.String b)", model.GetTypeInfo(node.
Parent
).ConvertedType.ToTestDisplayString());
8781
Assert.Equal(Conversion.Identity, model.GetConversion(node.
Parent
));
8852
Assert.Equal("(System.Int16 c, System.String d)", model.GetTypeInfo(node.
Parent
).Type.ToTestDisplayString());
8853
Assert.Equal("(System.Int16 a, System.String b)", model.GetTypeInfo(node.
Parent
).ConvertedType.ToTestDisplayString());
8854
Assert.Equal(Conversion.Identity, model.GetConversion(node.
Parent
));
8962
Assert.Equal("(System.Int16 c, System.String d)", model.GetTypeInfo(node.
Parent
).Type.ToTestDisplayString());
8963
Assert.Equal("(System.Int16 a, System.String b)", model.GetTypeInfo(node.
Parent
).ConvertedType.ToTestDisplayString());
8964
Assert.Equal(Conversion.Identity, model.GetConversion(node.
Parent
));
13975
var nameofArg = ((InvocationExpressionSyntax)nameofNode.
Parent
).ArgumentList.Arguments.Single().Expression;
24184
Assert.Equal("tuple.elem2 = 23", nodes[0].
Parent
.
Parent
.ToString());
24187
Assert.Equal("elem2 = 10", nodes[1].
Parent
.ToString());
24190
Assert.Equal("(tuple.elem2)", nodes[2].
Parent
.
Parent
.
Parent
.ToString());
24193
Assert.Equal("(elem2)", nodes[3].
Parent
.
Parent
.ToString());
CodeGen\ObjectAndCollectionInitializerTests.cs (4)
1110
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
3592
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (34)
CodeGen\IndexAndRangeTests.cs (34)
129
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
335
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
422
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
509
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
693
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
1618
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
1811
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
2347
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
2681
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
2844
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
3022
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
3136
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
3357
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
3644
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
3734
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
3820
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
3893
var (graph, symbol) = ControlFlowGraphVerifier.GetControlFlowGraph(node.
Parent
.
Parent
, model);
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (256)
FieldKeywordTests.cs (2)
10607
Assert.Equal("return field;", expr.
Parent
.ToString());
10641
Assert.Equal("return field;", expr.
Parent
.ToString());
FlowAnalysis\FlowTestBase.cs (2)
226
if (firstStatement != null && stmt.Span.End <= end && stmt.
Parent
== firstStatement.
Parent
)
Semantics\InlineArrayTests.cs (42)
2360
Assert.Equal("b[c]", c.
Parent
.
Parent
.
Parent
.ToString());
2395
Assert.Equal("b[c]", c.
Parent
.
Parent
.
Parent
.ToString());
2429
Assert.Equal("b[c]", c.
Parent
.
Parent
.
Parent
.ToString());
2509
Assert.Equal("x.F[0]", f.
Parent
.
Parent
.ToString());
2520
var access = f.
Parent
.
Parent
;
6034
Assert.Equal("x.F[^10]", f.
Parent
.
Parent
.ToString());
6200
Assert.Equal("x.F[..5]", f.
Parent
.
Parent
.ToString());
6211
var access = f.
Parent
.
Parent
;
8841
var m3 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(m => m.Identifier.ValueText == "M3").Single().
Parent
;
8842
Assert.Equal("M3()[0]", m3.
Parent
.ToString());
8853
var access = m3.
Parent
;
9210
Assert.Equal("M3()[..]", m3.
Parent
.
Parent
.ToString());
9212
var typeInfo = model.GetTypeInfo(m3.
Parent
);
9217
var symbolInfo = model.GetSymbolInfo(m3.
Parent
);
10554
Assert.Equal("c.F[0]", f.
Parent
.
Parent
.ToString());
10565
var access = f.
Parent
.
Parent
;
11298
Assert.Equal("c.F[..5]", f.
Parent
.
Parent
.ToString());
11309
var access = f.
Parent
.
Parent
;
15216
Assert.Equal("=> x.F", f[^2].
Parent
.
Parent
.ToString());
15223
Assert.Equal("=> x.F", f[^1].
Parent
.
Parent
.ToString());
16501
var m3 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(m => m.Identifier.ValueText == "M3").First().
Parent
;
18599
var forEachInfo = model.GetForEachStatementInfo((ForEachStatementSyntax)f.
Parent
);
18925
var forEachInfo = model.GetForEachStatementInfo((ForEachStatementSyntax)f.
Parent
);
19262
var forEachInfo = model.GetForEachStatementInfo((ForEachStatementSyntax)collection.
Parent
);
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
));
20052
Assert.Equal("System.Console.WriteLine(y)", yRef[2].
Parent
.
Parent
.
Parent
.ToString());
32756
var inFieldDeclaratorArgumentlist = declarator != null && declarator.
Parent
.
Parent
.Kind() != SyntaxKind.LocalDeclarationStatement &&
32787
var dataFlowParent = (ExpressionSyntax)decl.
Parent
.
Parent
.
Parent
;
32982
var declaration1 = (DeclarationExpressionSyntax)discard1.
Parent
;
32991
var declaration2 = (DeclarationExpressionSyntax)discard2.
Parent
;
33066
var declaration1 = (DeclarationExpressionSyntax)discard1.
Parent
;
33082
var declaration2 = (DeclarationExpressionSyntax)discard2.
Parent
;
33138
var declaration1 = (DeclarationExpressionSyntax)discard1.
Parent
;
33180
var declaration1 = (DeclarationExpressionSyntax)discard1.
Parent
;
33196
var declaration2 = (DeclarationExpressionSyntax)discard2.
Parent
;
33244
var declaration1 = (DeclarationExpressionSyntax)discard1.
Parent
;
33260
var declaration2 = (DeclarationExpressionSyntax)discard2.
Parent
;
Semantics\ParamsCollectionTests.cs (2)
12555
VerifyFlowGraph(comp, node.
Parent
.
Parent
, """
Semantics\PatternMatchingTestBase.cs (9)
36
return tree.GetRoot().DescendantNodes().OfType<SingleVariableDesignationSyntax>().Where(p => p.
Parent
.Kind() == SyntaxKind.DeclarationPattern || p.
Parent
.Kind() == SyntaxKind.VarPattern);
98
switch (designation.
Parent
)
150
switch (designation.
Parent
)
265
switch (designation.
Parent
)
291
var inFieldDeclaratorArgumentlist = declarator != null && declarator.
Parent
.
Parent
.Kind() != SyntaxKind.LocalDeclarationStatement &&
385
if (designation.
Parent
is DeclarationPatternSyntax decl)
406
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)
3688
Assert.Equal(syntax, clause.
Parent
.
Parent
.ToString());
3690
var typeInfo = model.GetTypeInfo(clause.
Parent
); // inner {} pattern
3733
typeInfo = model.GetTypeInfo(itemDesignation.
Parent
);
3748
typeInfo = model.GetTypeInfo(sliceDesignation.
Parent
);
Semantics\PatternMatchingTests2.cs (8)
2944
checkType((CastExpressionSyntax)expr.
Parent
.
Parent
, "C", "C", ConversionKind.Identity);
2951
checkType((CastExpressionSyntax)expr.
Parent
.
Parent
, "D", "D", ConversionKind.Identity);
2958
checkType((CastExpressionSyntax)expr.
Parent
.
Parent
, "D", "D", ConversionKind.Identity);
2965
checkType((CastExpressionSyntax)expr.
Parent
.
Parent
, "D", "D", ConversionKind.Identity);
Semantics\PrimaryConstructorTests.cs (70)
1009
Assert.Equal("= X", x.
Parent
.ToString());
1074
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
1129
Assert.Null(model.GetOperation(baseWithargs.
Parent
));
1130
Assert.Same(operation.Parent.Parent, model.GetOperation(baseWithargs.
Parent
.
Parent
));
1131
Assert.Equal(SyntaxKind.ClassDeclaration, baseWithargs.
Parent
.
Parent
.Kind());
1230
model.VerifyOperationTree(baseWithargs.
Parent
,
1302
Assert.Equal("Test(X, out var y)", x.
Parent
.
Parent
.
Parent
.ToString());
1313
Assert.Equal("y", y.
Parent
.ToString());
1314
Assert.Equal("(Test(X, out var y), y)", y.
Parent
.
Parent
.ToString());
1315
Assert.Equal("Base(Test(X, out var y), y)", y.
Parent
.
Parent
.
Parent
.ToString());
1326
Assert.Equal("(Test(X, out var y), y)", test.
Parent
.
Parent
.
Parent
.ToString());
1367
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
1413
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
1473
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
1531
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
1542
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
1620
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
1631
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
1816
Assert.Equal("Base(X)", x.
Parent
.
Parent
.
Parent
.ToString());
1856
Assert.Equal("Base(X)", x.
Parent
.
Parent
.
Parent
.ToString());
1899
Assert.Equal("Base(X)", x.
Parent
.
Parent
.
Parent
.ToString());
1969
Assert.Equal("Base(X, Y)", x.
Parent
.
Parent
.
Parent
.ToString());
2177
var otherBasePosition = ((BaseListSyntax)baseWithargs.
Parent
).Types[1].SpanStart;
2329
var otherBasePosition = ((BaseListSyntax)baseWithargs.
Parent
).Types[1].SpanStart;
2427
Assert.Equal("Base(X)", x.
Parent
.
Parent
.
Parent
.ToString());
2643
Assert.Equal("= X + 1", x.
Parent
.
Parent
.ToString());
2681
Assert.Equal("= X + 1", x.
Parent
.
Parent
.ToString());
2718
Assert.Equal("= X + 1", x.
Parent
.
Parent
.ToString());
2754
Assert.Equal("() => X + 1", x.
Parent
.
Parent
.ToString());
3915
switch (identifier.
Parent
.ToString())
3923
Assert.Equal(SyntaxKind.SimpleBaseType, identifier.
Parent
.Kind());
Semantics\RecordTests.cs (69)
21250
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21306
Assert.Null(model.GetOperation(baseWithargs.
Parent
));
21307
Assert.Same(operation.Parent.Parent, model.GetOperation(baseWithargs.
Parent
.
Parent
));
21308
Assert.Equal(SyntaxKind.RecordDeclaration, baseWithargs.
Parent
.
Parent
.Kind());
21408
model.VerifyOperationTree(baseWithargs.
Parent
,
21480
Assert.Equal("Test(X, out var y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21491
Assert.Equal("y", y.
Parent
!.ToString());
21492
Assert.Equal("(Test(X, out var y), y)", y.
Parent
!.
Parent
!.ToString());
21493
Assert.Equal("Base(Test(X, out var y), y)", y.
Parent
!.
Parent
!.
Parent
!.ToString());
21504
Assert.Equal("(Test(X, out var y), y)", test.
Parent
!.
Parent
!.
Parent
!.ToString());
21545
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21591
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21651
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21709
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21720
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21798
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21809
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
21994
Assert.Equal("Base(X)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
22031
Assert.Equal("Base(X)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
22071
Assert.Equal("Base(X)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
22106
Assert.Equal("Base(X)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
22185
Assert.Equal("Base(X, Y)", x.
Parent
!.
Parent
!.
Parent
!.ToString());
22393
var otherBasePosition = ((BaseListSyntax)baseWithargs.
Parent
!).Types[1].SpanStart;
22545
var otherBasePosition = ((BaseListSyntax)baseWithargs.
Parent
!).Types[1].SpanStart;
24749
Assert.Equal("= X + 1", x.
Parent
!.
Parent
!.ToString());
24784
Assert.Equal("= X + 1", x.
Parent
!.
Parent
!.ToString());
24818
Assert.Equal("= X + 1", x.
Parent
!.
Parent
!.ToString());
24853
Assert.Equal("() => X + 1", x.
Parent
!.
Parent
!.ToString());
26455
switch (identifier.
Parent
!.ToString())
26463
Assert.Equal(SyntaxKind.SimpleBaseType, identifier.
Parent
.Kind());
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (282)
Semantics\BindingTests.cs (12)
2726
.First(x => x.
Parent
.IsKind(SyntaxKind.SimpleMemberAccessExpression) && x.Identifier.ValueText.Equals("M0"));
2728
Assert.Equal("A.B<string>.M0", identifierNameM0.
Parent
.ToString());
2738
.First(x => x.
Parent
.IsKind(SyntaxKind.SimpleMemberAccessExpression) && x.Identifier.ValueText.Equals("M1"));
2740
Assert.Equal("A.B<string>.M1", identifierNameM1.
Parent
.ToString());
2786
Assert.Equal("(MyDelegate<int>)MyMethod", identifiers[0].
Parent
.ToString());
2789
Assert.Equal("(MyDelegate<long>)MyMethod", identifiers[1].
Parent
.ToString());
2792
Assert.Equal("(MyDelegate<float>)MyMethod", identifiers[2].
Parent
.ToString());
2795
Assert.Equal("(MyDelegate<double>)MyMethod", identifiers[3].
Parent
.ToString());
2837
.First(x => x.
Parent
.IsKind(SyntaxKind.SimpleMemberAccessExpression) && x.Identifier.ValueText.Equals("M0"));
2839
Assert.Equal("b.M0", identifierNameM0.
Parent
.ToString());
2849
.First(x => x.
Parent
.IsKind(SyntaxKind.SimpleMemberAccessExpression) && x.Identifier.ValueText.Equals("M1"));
2851
Assert.Equal("b.M1", identifierNameM1.
Parent
.ToString());
Semantics\ColorColorTests.cs (17)
597
var parentExpr = (ExpressionSyntax)expr.
Parent
;
644
var parentExpr = (ExpressionSyntax)expr.
Parent
;
1073
var parentExpr = (ExpressionSyntax)expr.
Parent
;
1119
var parentExpr = (ExpressionSyntax)expr.
Parent
;
1165
var parentExpr = (ExpressionSyntax)expr.
Parent
;
1210
var parentExpr = (ExpressionSyntax)expr.
Parent
;
1254
var parentExpr = (ExpressionSyntax)expr.
Parent
;
1288
var parentExpr = (ExpressionSyntax)expr.
Parent
;
1851
var parentExpr = (ExpressionSyntax)expr.
Parent
;
1892
var node2 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(n => n.Identifier.Text == "E" && (n.
Parent
is EqualsValueClauseSyntax)).Single();
1894
Assert.Equal("= E", node2.
Parent
.ToString());
1949
var node2 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(n => n.Identifier.Text == "E" && (n.
Parent
is EqualsValueClauseSyntax)).Single();
1951
Assert.Equal("= E", node2.
Parent
.ToString());
2006
var node2 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(n => n.Identifier.Text == "E" && (n.
Parent
is EqualsValueClauseSyntax)).Single();
2008
Assert.Equal("= E", node2.
Parent
.ToString());
2055
var node2 = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(n => n.Identifier.Text == "E" && (n.
Parent
is EqualsValueClauseSyntax)).Single();
2057
Assert.Equal("= E", node2.
Parent
.ToString());
Semantics\ConditionalOperatorTests.cs (5)
1347
var access = (ConditionalAccessExpressionSyntax)memberBinding.
Parent
!;
1401
var invocation = (InvocationExpressionSyntax)memberBinding.
Parent
!;
1402
var access = (ConditionalAccessExpressionSyntax)invocation.
Parent
!;
1448
var assignment = (AssignmentExpressionSyntax)memberBinding.
Parent
!;
1449
var access = (ConditionalAccessExpressionSyntax)assignment.
Parent
!;
Semantics\DeconstructionTests.cs (5)
5997
var argument = (ArgumentSyntax)mainCall.
Parent
;
6040
var argument = (ArgumentSyntax)mainCall.
Parent
;
6080
var argument = (ArgumentSyntax)mainCall.
Parent
;
6122
var argument = (ArgumentSyntax)two.
Parent
;
6162
var argument = (ArgumentSyntax)mainCall.
Parent
;
Semantics\DynamicTests.cs (68)
6690
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
6799
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
6909
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
7006
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
7078
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
7181
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
7294
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
7410
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
7523
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
7600
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
7705
var assignment = (PostfixUnaryExpressionSyntax)elementAccess.
Parent
;
7811
var assignment = (PostfixUnaryExpressionSyntax)elementAccess.
Parent
;
7915
var assignment = (PostfixUnaryExpressionSyntax)elementAccess.
Parent
;
7986
var assignment = (PrefixUnaryExpressionSyntax)elementAccess.
Parent
;
8092
var assignment = (PrefixUnaryExpressionSyntax)elementAccess.
Parent
;
8197
var assignment = (PrefixUnaryExpressionSyntax)elementAccess.
Parent
;
8302
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
8411
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
8520
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
8630
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
8739
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
8808
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
8880
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
8936
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9026
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9117
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9207
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9263
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9324
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9445
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9565
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9679
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9790
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
9901
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
10032
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
10037
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
10160
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
10165
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
10288
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
10293
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
10442
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
10447
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
10576
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
10581
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
10724
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
10729
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
10994
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
10999
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
11112
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
11117
left = (TupleExpressionSyntax)left.
Parent
.
Parent
;
11122
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
11196
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
11201
left = (TupleExpressionSyntax)left.
Parent
.
Parent
;
11206
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
11274
var left = (TupleExpressionSyntax)elementAccess.
Parent
.
Parent
;
11279
var assignment = (AssignmentExpressionSyntax)left.
Parent
;
Semantics\FunctionPointerTests.cs (4)
3221
FunctionPointerUtilities.VerifyFunctionPointerSemanticInfo(model, invocations[2].
Parent
!.
Parent
!,
3227
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)
1514
Assert.Equal("a.", node.
Parent
.ToString().Trim());
1549
Assert.Equal("a.", node.
Parent
.ToString().Trim());
1583
Assert.Equal("a.", node.
Parent
.ToString().Trim());
1615
Assert.Equal("a.", node.
Parent
.ToString().Trim());
Semantics\MethodTypeInferenceTests.cs (1)
844
var declaration = (DeclarationExpressionSyntax)discard.
Parent
;
Semantics\NonTrailingNamedArgumentsTests.cs (2)
52
Assert.Equal("a: 1", firstNamedArgA.
Parent
.ToString());
64
Assert.Equal("a: 4", secondNamedArgA.
Parent
.ToString());
Semantics\NullableReferenceTypesTests.cs (1)
65943
Assert.Equal("object?", object2.
Parent
.ToString());
Semantics\ObjectAndCollectionInitializerTests.cs (2)
4238
var assignment = (AssignmentExpressionSyntax)elementAccess.
Parent
;
4292
var assignment = (AssignmentExpressionSyntax)propertyAccess.
Parent
;
Semantics\QueryTests.cs (1)
2246
var e2 = e.
Parent
as ExpressionSyntax; // w+1
Semantics\RecordStructTests.cs (8)
2667
Assert.Equal("= X + 1", x.
Parent
!.
Parent
!.ToString());
2702
Assert.Equal("= X + 1", x.
Parent
!.
Parent
!.ToString());
2736
Assert.Equal("= X + 1", x.
Parent
!.
Parent
!.ToString());
2771
Assert.Equal("() => X + 1", x.
Parent
!.
Parent
!.ToString());
Semantics\RefEscapingTests.cs (8)
6367
Assert.Equal(@"(global, s) = (local, """")", tuple2.
Parent
.ToString());
6373
Assert.Equal(@"(global, s) = (local, null)", tuple3.
Parent
.ToString());
6379
Assert.Equal(@"(c, s) = (local, """")", tuple6.
Parent
.ToString());
6385
Assert.Equal("(c, s) = (local, null)", tuple7.
Parent
.ToString());
6467
Assert.Equal(@"(global, s) = (local, """")", tuple2.
Parent
.ToString());
6473
Assert.Equal(@"(global, s) = (local, null)", tuple3.
Parent
.ToString());
6479
Assert.Equal(@"(c, s) = (local, """")", tuple6.
Parent
.ToString());
6485
Assert.Equal("(c, s) = (local, null)", tuple7.
Parent
.ToString());
Semantics\RefFieldTests.cs (26)
12140
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
12208
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
12274
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
12463
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
12495
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
12647
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
12675
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
12874
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
12908
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
13054
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
13082
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
13520
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
13584
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
13661
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
13731
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
14428
var type = ((VariableDeclarationSyntax)decls[0].
Parent
).Type;
14470
var type = ((VariableDeclarationSyntax)decls[0].
Parent
).Type;
14922
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
14950
var type = ((DeclarationExpressionSyntax)decl.
Parent
).Type;
27673
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
27763
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
28034
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
28094
var type = ((VariableDeclarationSyntax)decl.
Parent
).Type;
28316
var type = ((VariableDeclarationSyntax)decls[0].
Parent
).Type;
28364
var type = ((VariableDeclarationSyntax)decls[0].
Parent
).Type;
29449
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)
201
var operation1 = model1.GetOperation(localRef.
Parent
);
329
var operation1 = model1.GetOperation(localRef.
Parent
);
1710
Assert.Equal("System.Console.WriteLine(Test)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
1718
Assert.Equal("using alias1 = Test;", nameRef.
Parent
.ToString());
1734
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
1740
Assert.Equal("System.Console.WriteLine(Test)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
1745
Assert.Equal("using alias2 = Test;", nameRef.
Parent
.ToString());
1750
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
1756
Assert.Equal("System.Console.WriteLine(Test)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
1886
Assert.Equal("using alias1 = Test;", nameRef.
Parent
.ToString());
1902
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
1908
Assert.Equal("System.Console.WriteLine(Test)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
1913
Assert.Equal("using alias2 = Test;", nameRef.
Parent
.ToString());
1918
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
1924
Assert.Equal("System.Console.WriteLine(Test)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
2104
Assert.Equal("using alias1 = Test;", nameRef.
Parent
.ToString());
2117
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
2122
Assert.Equal("System.Console.WriteLine(Test())", nameRef.
Parent
.
Parent
.
Parent
.
Parent
.ToString());
2127
Assert.Equal("using alias2 = Test;", nameRef.
Parent
.ToString());
2132
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
2137
Assert.Equal("System.Console.WriteLine(Test())", nameRef.
Parent
.
Parent
.
Parent
.
Parent
.ToString());
2270
Assert.Equal("using alias1 = Test;", nameRef.
Parent
.ToString());
2283
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
2288
Assert.Equal("System.Console.WriteLine(Test())", nameRef.
Parent
.
Parent
.
Parent
.
Parent
.ToString());
2293
Assert.Equal("using alias2 = Test;", nameRef.
Parent
.ToString());
2298
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
2303
Assert.Equal("System.Console.WriteLine(Test())", nameRef.
Parent
.
Parent
.
Parent
.
Parent
.ToString());
2450
Assert.Equal("using alias1 = Test;", nameRef.
Parent
.ToString());
2465
Assert.Equal("goto Test;", nameRef.
Parent
.ToString());
2480
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
2485
Assert.Equal("goto Test;", nameRef.
Parent
.ToString());
2490
Assert.Equal("using alias2 = Test;", nameRef.
Parent
.ToString());
2495
Assert.Equal(": Test", nameRef.
Parent
.
Parent
.ToString());
2501
Assert.Equal("goto Test;", nameRef.
Parent
.ToString());
2920
var nameRef = tree1.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(id => id.Identifier.ValueText == "alias1" && !id.
Parent
.IsKind(SyntaxKind.NameEquals)).Single();
2942
nameRef = tree2.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().Where(id => id.Identifier.ValueText == "alias2" && !id.
Parent
.IsKind(SyntaxKind.NameEquals)).Single();
3945
Assert.Equal("using alias1 = args;", nameRef.
Parent
.ToString());
3957
Assert.Equal("System.Console.WriteLine(args)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
3976
Assert.Equal(": args", nameRef.
Parent
.
Parent
.ToString());
3981
Assert.Equal("System.Console.WriteLine(args)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
3986
Assert.Equal("using alias2 = args;", nameRef.
Parent
.ToString());
3991
Assert.Equal(": args", nameRef.
Parent
.
Parent
.ToString());
3996
Assert.Equal("System.Console.WriteLine(args)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
4094
Assert.Equal("using alias1 = args;", nameRef.
Parent
.ToString());
4106
Assert.Equal(": args", nameRef.
Parent
.
Parent
.ToString());
4111
Assert.Equal("System.Console.WriteLine(args)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
4116
Assert.Equal("using alias2 = args;", nameRef.
Parent
.ToString());
4121
Assert.Equal(": args", nameRef.
Parent
.
Parent
.ToString());
4126
Assert.Equal("System.Console.WriteLine(args)", nameRef.
Parent
.
Parent
.
Parent
.ToString());
6511
Assert.True(syntaxTreeModel.TestOnlyMemberModels.ContainsKey(globalStatement.
Parent
));
6513
MemberSemanticModel mm = syntaxTreeModel.TestOnlyMemberModels[globalStatement.
Parent
];
9762
model.TryGetSpeculativeSemanticModel(root.DescendantNodes().Single(n => n is ExpressionStatementSyntax {
Parent
: GlobalStatementSyntax }).Span.End, nodeToSpeculate, out var speculativeModelInTopLevel);
9767
model.TryGetSpeculativeSemanticModel(root.DescendantNodes().Single(n => n is ExpressionStatementSyntax {
Parent
: BlockSyntax }).Span.End, nodeToSpeculate, out var speculativeModelOutsideTopLevel);
Semantics\UnsafeTests.cs (2)
7850
var callSyntax = syntax.
Parent
;
7917
var callSyntax = syntax.
Parent
;
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (35)
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)
3782
var expr = identifier.FirstAncestorOrSelf<ArgumentSyntax>().
Parent
.
Parent
;
DocumentationComments\CrefTests.cs (1)
5799
if (typeSyntax.
Parent
.Kind() == SyntaxKind.NameMemberCref)
Symbols\CheckedUserDefinedOperatorsTests.cs (13)
7238
Assert.Equal("System.Int64 C0.op_CheckedExplicit(C0 x)", model.GetSymbolInfo(xNode.
Parent
).Symbol.ToTestDisplayString());
7239
Assert.Equal("System.Int64 C0.op_CheckedExplicit(C0 x)", model.GetSymbolInfo(yNode.
Parent
).Symbol.ToTestDisplayString());
7241
var int64 = ((IMethodSymbol)model.GetSymbolInfo(xNode.
Parent
).Symbol).ReturnType;
7310
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.GetSymbolInfo(xNode.
Parent
).Symbol.ToTestDisplayString());
7311
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.GetSymbolInfo(yNode.
Parent
).Symbol.ToTestDisplayString());
7313
var int64 = ((IMethodSymbol)model.GetSymbolInfo(xNode.
Parent
).Symbol).ReturnType;
7381
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.GetSymbolInfo(xNode.
Parent
).Symbol.ToTestDisplayString());
7382
Assert.Equal("System.Int64 C0.op_Explicit(C0 x)", model.GetSymbolInfo(yNode.
Parent
).Symbol.ToTestDisplayString());
7384
var int64 = ((IMethodSymbol)model.GetSymbolInfo(xNode.
Parent
).Symbol).ReturnType;
7454
Assert.Equal("C0 C0.op_CheckedUnaryNegation(C0 a)", model.GetSymbolInfo(xNode.
Parent
).Symbol.ToTestDisplayString());
7455
Assert.Equal("C0 C0.op_CheckedUnaryNegation(C0 a)", model.GetSymbolInfo(yNode.
Parent
).Symbol.ToTestDisplayString());
7518
Assert.Equal("C0 C0.op_UnaryNegation(C0 a)", model.GetSymbolInfo(xNode.
Parent
).Symbol.ToTestDisplayString());
7519
Assert.Equal("C0 C0.op_UnaryNegation(C0 a)", model.GetSymbolInfo(yNode.
Parent
).Symbol.ToTestDisplayString());
Symbols\ExtensionMethodTests.cs (5)
3012
var call = (ExpressionSyntax)memberAccess.
Parent
;
3867
Assert.Equal("Instance.SetMember", instance.
Parent
.ToString());
3914
Assert.Equal("Instance.SetMember", instance.
Parent
.ToString());
3959
Assert.Equal("Instance.SetMember", instance.
Parent
.ToString());
4009
Assert.Equal("Instance.SetMember", instance.
Parent
.ToString());
Symbols\FunctionPointerTypeSymbolTests.cs (4)
1168
Assert.NotNull(functionPointerTypeSyntax.
Parent
);
1169
VerifyOperationTreeForNode(comp, model, functionPointerTypeSyntax.
Parent
, expectedOperationTree: @"
1275
Assert.NotNull(functionPointerTypeSyntax.
Parent
);
1276
VerifyOperationTreeForNode(comp, model, functionPointerTypeSyntax.
Parent
, expectedOperationTree: @"
Symbols\PartialPropertiesTests.cs (1)
5173
Assert.Equal(SyntaxKind.TupleElement, node.
Parent
!.Kind());
Symbols\Source\NullablePublicAPITests.cs (3)
1952
var typeInfo = model.GetTypeInfoAndVerifyIOperation(((VariableDeclarationSyntax)variable.
Parent
).Type);
2293
var typeInfo = model.GetTypeInfoAndVerifyIOperation(((DeclarationExpressionSyntax)variable.
Parent
).Type);
2563
var type = ((DeclarationExpressionSyntax)variable.
Parent
).Type;
Symbols\Source\UsingAliasTests.cs (2)
699
Assert.Equal("Short.MyClass", node.
Parent
.ToString());
742
Assert.Equal("Short.MyClass", node.
Parent
.ToString());
Microsoft.CodeAnalysis.CSharp.Test.Utilities (2)
CompilationTestUtils.cs (2)
550
case IdentifierNameSyntax id when id.
Parent
is MemberAccessExpressionSyntax memberAccess && memberAccess.Name == node:
553
case ExpressionSyntax expr when expr.
Parent
is ConditionalAccessExpressionSyntax cond && cond.WhenNotNull == node:
Microsoft.CodeAnalysis.Test.Utilities (20)
Compilation\ControlFlowGraphVerifier.cs (20)
611
if (syntax.
Parent
is CSharp.Syntax.SwitchStatementSyntax switchStmt && switchStmt.Expression == syntax)
616
if (syntax.
Parent
is CSharp.Syntax.SwitchExpressionSyntax switchExpr && switchExpr.GoverningExpression == syntax)
654
if (syntax.
Parent
is CSharp.Syntax.CommonForEachStatementSyntax forEach && forEach.Expression == syntax)
836
if (syntax.
Parent
is CSharp.Syntax.ConditionalAccessExpressionSyntax access &&
868
return referenceSyntax.
Parent
is AssignmentExpressionSyntax conditionalAccess &&
881
return referenceSyntax.
Parent
is CSharp.Syntax.AssignmentExpressionSyntax
884
Parent
: InitializerExpressionSyntax {
Parent
: CSharp.Syntax.ObjectCreationExpressionSyntax },
1049
if (syntax.
Parent
is CSharp.Syntax.ConditionalAccessExpressionSyntax access &&
1116
if (syntax.
Parent
is CSharp.Syntax.WithExpressionSyntax withExpr
1125
if (syntax.
Parent
?.
Parent
is CSharp.Syntax.UsingStatementSyntax usingStmt &&
1126
usingStmt.Declaration == syntax.
Parent
)
1131
CSharpSyntaxNode parent = syntax.
Parent
;
1144
if ((parent = parent.
Parent
)?.Kind() == CSharp.SyntaxKind.BracketedArgumentList &&
1145
(parent = parent.
Parent
)?.Kind() == CSharp.SyntaxKind.ImplicitElementAccess &&
1146
parent.
Parent
is AssignmentExpressionSyntax assignment && assignment.Kind() == CSharp.SyntaxKind.SimpleAssignmentExpression &&
1148
assignment.
Parent
?.Kind() == CSharp.SyntaxKind.ObjectInitializerExpression &&
1284
while (syntax.
Parent
is CSharp.Syntax.ParenthesizedExpressionSyntax or
1287
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
));