1 implementation of Parent
Microsoft.CodeAnalysis (1)
Operations\Operation.cs (1)
48
public IOperation?
Parent
797 references to Parent
GenerateDocumentationAndConfigFiles (49)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (11)
122
return operation is { Kind: OperationKind.None,
Parent
: null };
142
ancestor = ancestor.
Parent
;
176
ancestor = ancestor.
Parent
;
215
for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.
Parent
)
260
while (operation.
Parent
!= null)
262
operation = operation.
Parent
;
416
var currentOperation = tupleOperation.
Parent
;
425
currentOperation = currentOperation.
Parent
;
478
while (potentialLeftSide.
Parent
is IParenthesizedOperation or ITupleOperation)
480
potentialLeftSide = potentialLeftSide.
Parent
;
483
return potentialLeftSide.
Parent
switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (24)
19
=> operation.
Parent
is IAssignmentOperation assignmentOperation &&
21
assignmentOperation.
Parent
?.Kind == OperationKind.ObjectOrCollectionInitializer;
66
while (operation.
Parent
is IBinaryPatternOperation or INegatedPatternOperation or IRelationalPatternOperation)
67
operation = operation.
Parent
;
69
switch (operation.
Parent
)
130
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
133
return operation.
Parent
.IsAnyCompoundAssignment()
137
else if (operation.
Parent
is ISimpleAssignmentOperation { IsRef: true } simpleAssignmentOperation &&
142
else if (operation.
Parent
is IIncrementOrDecrementOperation)
146
else if (operation.
Parent
is IForToLoopOperation forToLoopOperation && forToLoopOperation.LoopControlVariable.Equals(operation))
150
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
158
else if (operation.
Parent
is INameOfOperation or ITypeOfOperation or ISizeOfOperation)
162
else if (operation.
Parent
is IArgumentOperation argumentOperation)
179
else if (operation.
Parent
is IReturnOperation returnOperation)
188
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
200
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
203
return reDimClauseOperation.
Parent
is IReDimOperation { Preserve: true }
207
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
215
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation)
217
if (variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
241
operation = operation?.
Parent
;
253
operation = operation.
Parent
;
264
var current = operation.
Parent
;
278
current = current.
Parent
;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (1)
203
if (operation?.
Parent
is INameOfOperation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\LValueFlowCaptureProvider.cs (2)
56
if (flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
61
var captureKind = flowCaptureReference.
Parent
.IsAnyCompoundAssignment() || rvalueFlowCaptureIds.Contains(flowCaptureReference.Id)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (9)
130
if (operation.
Parent
is IFlowCaptureOperation flowCapture &&
152
if (operation.
Parent
is IIncrementOrDecrementOperation &&
153
operation.
Parent
.
Parent
?.Kind != OperationKind.ExpressionStatement)
163
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
191
operation.
Parent
?.Kind != OperationKind.ExpressionStatement;
271
operation.
Parent
is IForEachLoopOperation forEachLoop && forEachLoop.LoopControlVariable == operation ||
272
operation.
Parent
is ICatchClauseOperation catchClause && catchClause.ExceptionDeclarationOrExpression == operation)
420
else if (write.
Parent
is ISimpleAssignmentOperation simpleAssignment)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (2)
37
rootOperation.
Parent
is not null)
39
rootOperation = rootOperation.
Parent
;
ILLink.RoslynAnalyzer (29)
DataFlow\LValueFlowCaptureProvider.cs (1)
43
assignment = flowCaptureReference.
Parent
as IAssignmentOperation;
IOperationExtensions.cs (26)
47
while (operation.
Parent
is IBinaryPatternOperation ||
48
operation.
Parent
is INegatedPatternOperation ||
49
operation.
Parent
is IRelationalPatternOperation)
51
operation = operation.
Parent
;
54
switch (operation.
Parent
)
111
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
114
return operation.
Parent
.IsAnyCompoundAssignment()
118
else if (operation.
Parent
is IIncrementOrDecrementOperation)
122
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
130
else if (operation.
Parent
is INameOfOperation ||
131
operation.
Parent
is ITypeOfOperation ||
132
operation.
Parent
is ISizeOfOperation)
136
else if (operation.
Parent
is IArgumentOperation argumentOperation)
153
else if (operation.
Parent
is IReturnOperation returnOperation)
162
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
174
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
177
return (reDimClauseOperation.
Parent
as IReDimOperation)?.Preserve == true
181
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
189
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation)
191
if (variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
215
operation = operation?.
Parent
;
227
operation = operation.
Parent
;
238
var current = operation.
Parent
;
252
current = current.
Parent
;
291
var parent = operation.
Parent
;
309
parent = parent.
Parent
;
RequiresAnalyzerBase.cs (2)
239
var parent = operationContext.Operation.
Parent
;
257
parent = parent.
Parent
;
Microsoft.Analyzers.Extra (7)
AsyncCallInsideUsingBlockAnalyzer.cs (2)
49
if (operation.
Parent
== null)
54
ValidateDisposable(analysisContext, disposable, operation.
Parent
);
CallAnalysis\Fixers\LegacyLoggingFixer.cs (1)
368
if (invocationOp.
Parent
?.Kind == OperationKind.ConditionalAccess)
Utilities\OperationExtensions.cs (4)
19
while (operationToStart.
Parent
!= null)
21
if (operationToStart.
Parent
== parent)
26
yield return operationToStart.
Parent
;
27
operationToStart = operationToStart.
Parent
;
Microsoft.AspNetCore.App.Analyzers (11)
Authorization\AddAuthorizationBuilderAnalyzer.cs (3)
179
if (propertyReferenceOperation.
Parent
is IAssignmentOperation { Target: IPropertyReferenceOperation targetProperty }
184
if (propertyReferenceOperation.
Parent
is IAssignmentOperation { Value: IPropertyReferenceOperation valueProperty }
225
return invocation.
Parent
is IExpressionStatementOperation;
Http\RequestDelegateReturnTypeAnalyzer.cs (2)
31
if (methodReference.
Parent
is { } parent &&
47
if (anonymousFunction.
Parent
is { } parent &&
RouteHandlers\DetectAmbiguousRoutes.cs (6)
62
if (current.
Parent
is IArgumentOperation {
Parent
: IInvocationOperation invocationOperation } &&
70
if (current.
Parent
is IBlockOperation or ISwitchCaseOperation)
72
return current.
Parent
;
74
else if (current.
Parent
is IConditionalOperation or
84
current = current.
Parent
;
Microsoft.AspNetCore.Mvc.Analyzers (2)
TagHelpersInCodeBlocksAnalyzer.cs (2)
60
var parent = context.Operation.
Parent
;
63
parent = parent.
Parent
;
Microsoft.AspNetCore.Mvc.Api.Analyzers (5)
ActualApiResponseMetadataFactory.cs (2)
305
var parent = operation.
Parent
;
313
parent = parent.
Parent
;
ApiActionsDoNotRequireExplicitModelValidationCheckAnalyzer.cs (3)
51
var parent = ifOperation.
Parent
;
58
if (parent.Kind == OperationKind.Block && parent.
Parent
!= null)
60
parent = parent.
Parent
;
Microsoft.CodeAnalysis (32)
DiagnosticAnalyzer\AnalyzerDriver.cs (13)
3026
if (operationBlock.
Parent
!= null)
3028
switch (operationBlock.
Parent
.Kind)
3032
Debug.Assert(!operationBlock.
Parent
.IsImplicit);
3033
operationsToAnalyze.Add(operationBlock.
Parent
);
3040
Debug.Assert(operationBlock.
Parent
.IsImplicit);
3041
Debug.Assert(operationBlock.
Parent
.
Parent
is IConstructorBodyOperation ctorBody &&
3042
ctorBody.Initializer == operationBlock.
Parent
);
3043
Debug.Assert(!operationBlock.
Parent
.
Parent
.IsImplicit);
3045
operationsToAnalyze.Add(operationBlock.
Parent
.
Parent
);
3050
Debug.Fail($"Expected operation with kind '{operationBlock.Kind}' to be the root operation with null 'Parent', but instead it has a non-null Parent with kind '{operationBlock.
Parent
.Kind}'");
DiagnosticAnalyzer\AnalyzerExecutor.cs (1)
1701
Debug.Assert(operation.
Parent
== null);
Operations\ControlFlowGraph.cs (1)
180
if (operation.
Parent
!= null)
Operations\ControlFlowGraphBuilder.cs (5)
95
Debug.Assert(body.
Parent
== null);
3113
Debug.Assert(operation.
Parent
!= null);
3114
bool isStatement = _currentStatement == operation || operation.
Parent
.Kind == OperationKind.ExpressionStatement;
3377
bool isOnStatementLevel = _currentStatement == operation || (_currentStatement == operation.
Parent
&& _currentStatement?.Kind == OperationKind.ExpressionStatement);
6627
Debug.Assert(operation.
Parent
is InvocationOperation { Parent: CollectionExpressionOperation ce } && ce.HasErrors(_compilation),
Operations\ControlFlowGraphBuilder.InterpolatedStringContext.cs (4)
52
IOperation? operation = placeholderOperation.
Parent
;
55
operation = operation.
Parent
;
74
Debug.Assert(placeholderOperation.
Parent
!.
Parent
is IObjectCreationOperation objectCreation && objectCreation.HasErrors(_compilation));
Operations\Operation.cs (1)
178
Debug.Assert((object?)child.
Parent
== parent);
Operations\OperationExtensions.cs (5)
185
return declarationOperation.Initializer ?? (declarationOperation.
Parent
as IVariableDeclarationOperation)?.Initializer;
341
while (operation.
Parent
!= null)
343
operation = operation.
Parent
;
378
for (IOperation current = operation; current.
Parent
!= null; current = current.
Parent
)
Operations\OperationNodes.cs (2)
699
Debug.Assert(statements.All(s => s.
Parent
!= this && s.
Parent
!.Kind is OperationKind.Block or OperationKind.SwitchCase));
Microsoft.CodeAnalysis.Analyzers (55)
ImmutableObjectMethodAnalyzer.cs (1)
83
if (invocation.
Parent
is not IExpressionStatementOperation || invocation.TargetMethod.ReturnsVoid)
MetaAnalyzers\DiagnosticDescriptorCreationAnalyzer.cs (1)
367
switch (invocation.
Parent
)
MetaAnalyzers\Fixers\CompareSymbolsCorrectlyFix.cs (1)
202
while (currentOperation.
Parent
is IConditionalAccessOperation conditionalAccess)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (2)
298
if (operation.
Parent
!= null)
300
switch (operation.
Parent
.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (1)
258
if (operationBlock != null && operationBlock.
Parent
== null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (11)
122
return operation is { Kind: OperationKind.None,
Parent
: null };
142
ancestor = ancestor.
Parent
;
176
ancestor = ancestor.
Parent
;
215
for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.
Parent
)
260
while (operation.
Parent
!= null)
262
operation = operation.
Parent
;
416
var currentOperation = tupleOperation.
Parent
;
425
currentOperation = currentOperation.
Parent
;
478
while (potentialLeftSide.
Parent
is IParenthesizedOperation or ITupleOperation)
480
potentialLeftSide = potentialLeftSide.
Parent
;
483
return potentialLeftSide.
Parent
switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (24)
19
=> operation.
Parent
is IAssignmentOperation assignmentOperation &&
21
assignmentOperation.
Parent
?.Kind == OperationKind.ObjectOrCollectionInitializer;
66
while (operation.
Parent
is IBinaryPatternOperation or INegatedPatternOperation or IRelationalPatternOperation)
67
operation = operation.
Parent
;
69
switch (operation.
Parent
)
130
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
133
return operation.
Parent
.IsAnyCompoundAssignment()
137
else if (operation.
Parent
is ISimpleAssignmentOperation { IsRef: true } simpleAssignmentOperation &&
142
else if (operation.
Parent
is IIncrementOrDecrementOperation)
146
else if (operation.
Parent
is IForToLoopOperation forToLoopOperation && forToLoopOperation.LoopControlVariable.Equals(operation))
150
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
158
else if (operation.
Parent
is INameOfOperation or ITypeOfOperation or ISizeOfOperation)
162
else if (operation.
Parent
is IArgumentOperation argumentOperation)
179
else if (operation.
Parent
is IReturnOperation returnOperation)
188
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
200
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
203
return reDimClauseOperation.
Parent
is IReDimOperation { Preserve: true }
207
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
215
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation)
217
if (variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
241
operation = operation?.
Parent
;
253
operation = operation.
Parent
;
264
var current = operation.
Parent
;
278
current = current.
Parent
;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (1)
203
if (operation?.
Parent
is INameOfOperation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\LValueFlowCaptureProvider.cs (2)
56
if (flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
61
var captureKind = flowCaptureReference.
Parent
.IsAnyCompoundAssignment() || rvalueFlowCaptureIds.Contains(flowCaptureReference.Id)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (9)
130
if (operation.
Parent
is IFlowCaptureOperation flowCapture &&
152
if (operation.
Parent
is IIncrementOrDecrementOperation &&
153
operation.
Parent
.
Parent
?.Kind != OperationKind.ExpressionStatement)
163
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
191
operation.
Parent
?.Kind != OperationKind.ExpressionStatement;
271
operation.
Parent
is IForEachLoopOperation forEachLoop && forEachLoop.LoopControlVariable == operation ||
272
operation.
Parent
is ICatchClauseOperation catchClause && catchClause.ExceptionDeclarationOrExpression == operation)
420
else if (write.
Parent
is ISimpleAssignmentOperation simpleAssignment)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (2)
37
rootOperation.
Parent
is not null)
39
rootOperation = rootOperation.
Parent
;
Microsoft.CodeAnalysis.AnalyzerUtilities (66)
src\2e2796bccd1466f6\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (1)
464
if (operation.
Parent
is IInvocationOperation invocationOperation)
src\683181b2796de991\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
162
return operation.
Parent
switch
src\a172c07bebba4cd8\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (3)
193
if (operation.
Parent
is IInvocationOperation invocation &&
342
operation.
Parent
is IInvocationOperation invocation &&
385
return operation.
Parent
switch
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (2)
298
if (operation.
Parent
!= null)
300
switch (operation.
Parent
.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (1)
258
if (operationBlock != null && operationBlock.
Parent
== null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (11)
122
return operation is { Kind: OperationKind.None,
Parent
: null };
142
ancestor = ancestor.
Parent
;
176
ancestor = ancestor.
Parent
;
215
for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.
Parent
)
260
while (operation.
Parent
!= null)
262
operation = operation.
Parent
;
416
var currentOperation = tupleOperation.
Parent
;
425
currentOperation = currentOperation.
Parent
;
478
while (potentialLeftSide.
Parent
is IParenthesizedOperation or ITupleOperation)
480
potentialLeftSide = potentialLeftSide.
Parent
;
483
return potentialLeftSide.
Parent
switch
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\IOperationExtensions_FlowAnalysis.cs (1)
53
=> flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (1)
160
operation.
Parent
is IArgumentOperation argument && argument.Parameter?.RefKind == RefKind.Out) &&
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityFactory.cs (1)
165
if (conditionalAccessInstance.
Parent
is IMemberReferenceOperation memberReferenceParent)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResult.cs (1)
118
Debug.Assert(operation.GetAncestor<IBlockOperation>(OperationKind.Block, predicate: b => b.
Parent
== null) == null);
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (6)
978
=> operation.
Parent
is IInvocationOperation invocation &&
1495
var current = operation.
Parent
;
1502
current = current.
Parent
;
1515
var current = operation.
Parent
;
1522
current = current.
Parent
;
2782
var pendingArguments = _pendingArgumentsToPostProcess.ExtractAll(static (arg, operation) => arg.
Parent
== operation, operation);
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\LValueFlowCapturesProvider.cs (1)
65
operations.Single().
Parent
?.Kind == OperationKind.FlowCapture)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (24)
19
=> operation.
Parent
is IAssignmentOperation assignmentOperation &&
21
assignmentOperation.
Parent
?.Kind == OperationKind.ObjectOrCollectionInitializer;
66
while (operation.
Parent
is IBinaryPatternOperation or INegatedPatternOperation or IRelationalPatternOperation)
67
operation = operation.
Parent
;
69
switch (operation.
Parent
)
130
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
133
return operation.
Parent
.IsAnyCompoundAssignment()
137
else if (operation.
Parent
is ISimpleAssignmentOperation { IsRef: true } simpleAssignmentOperation &&
142
else if (operation.
Parent
is IIncrementOrDecrementOperation)
146
else if (operation.
Parent
is IForToLoopOperation forToLoopOperation && forToLoopOperation.LoopControlVariable.Equals(operation))
150
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
158
else if (operation.
Parent
is INameOfOperation or ITypeOfOperation or ISizeOfOperation)
162
else if (operation.
Parent
is IArgumentOperation argumentOperation)
179
else if (operation.
Parent
is IReturnOperation returnOperation)
188
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
200
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
203
return reDimClauseOperation.
Parent
is IReDimOperation { Preserve: true }
207
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
215
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation)
217
if (variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
241
operation = operation?.
Parent
;
253
operation = operation.
Parent
;
264
var current = operation.
Parent
;
278
current = current.
Parent
;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (1)
203
if (operation?.
Parent
is INameOfOperation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\LValueFlowCaptureProvider.cs (2)
56
if (flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
61
var captureKind = flowCaptureReference.
Parent
.IsAnyCompoundAssignment() || rvalueFlowCaptureIds.Contains(flowCaptureReference.Id)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (9)
130
if (operation.
Parent
is IFlowCaptureOperation flowCapture &&
152
if (operation.
Parent
is IIncrementOrDecrementOperation &&
153
operation.
Parent
.
Parent
?.Kind != OperationKind.ExpressionStatement)
163
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
191
operation.
Parent
?.Kind != OperationKind.ExpressionStatement;
271
operation.
Parent
is IForEachLoopOperation forEachLoop && forEachLoop.LoopControlVariable == operation ||
272
operation.
Parent
is ICatchClauseOperation catchClause && catchClause.ExceptionDeclarationOrExpression == operation)
420
else if (write.
Parent
is ISimpleAssignmentOperation simpleAssignment)
Microsoft.CodeAnalysis.CodeStyle (71)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (10)
281
if (operation.
Parent
is IVariableInitializerOperation)
290
if (operation.
Parent
is ISimpleAssignmentOperation assignment &&
301
operation.
Parent
is IDelegateCreationOperation)
303
return IsHandledDelegateCreationOrAnonymousFunctionTreeShape(operation.
Parent
);
336
if (operation.
Parent
is IInvocationOperation)
341
if (operation.
Parent
is ISimpleAssignmentOperation assignmentOperation)
369
if (operation.
Parent
is IBinaryOperation)
409
hasUnknownOperationNoneDescendant = operation.
Parent
is not INameOfOperation;
660
if (unusedSymbolWriteOperation.
Parent
is IAssignmentOperation assignment &&
665
else if (unusedSymbolWriteOperation.
Parent
is IIncrementOrDecrementOperation)
src\roslyn\src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (2)
50
if (operation.
Parent
is not IPropertyReferenceOperation)
54
var operationParent = (IPropertyReferenceOperation)operation.
Parent
;
src\roslyn\src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (2)
248
return operation is { Type.IsValueType: true,
Parent
: IPropertyReferenceOperation }
249
? IsWrittenTo(operation.
Parent
, owningSymbol)
src\roslyn\src\Analyzers\Core\Analyzers\QualifyMemberAccess\AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (1)
85
if (context.Operation.
Parent
?.Kind == OperationKind.PropertySubpattern)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (8)
262
if (operation is { Kind: OperationKind.None,
Parent
: INameOfOperation { Argument: var nameofArgument } } &&
406
Debug.Assert(memberReference.
Parent
is ICompoundAssignmentOperation compoundAssignment &&
408
memberReference.
Parent
is ICoalesceAssignmentOperation coalesceAssignment &&
410
memberReference.
Parent
is IIncrementOrDecrementOperation ||
411
memberReference.
Parent
is IReDimClauseOperation reDimClause && reDimClause.Operand == memberReference);
430
if (memberReference?.
Parent
?.
Parent
is IExpressionStatementOperation &&
431
memberReference.
Parent
is not ICoalesceAssignmentOperation)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (4)
63
if (interpolation.
Parent
is IInterpolatedStringOperation {
Parent
: IConversionOperation { Type: { } convertedType } conversion } &&
69
conversion.
Parent
is IArgumentOperation {
Parent
: IInvocationOperation invocation } &&
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (6)
101
if (towardsParent && expression?.
Parent
is null)
107
expression = towardsParent ? expression.
Parent
: parenthesized.Operand;
110
expression = towardsParent ? expression.
Parent
: conversion.Operand;
235
return Unwrap(interpolatedStringOperation?.
Parent
, towardsParent: true) is IArgumentOperation
237
Parent
: IInvocationOperation
252
for (var current = operation; current is not null; current = current.
Parent
)
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForReturn\UseConditionalExpressionForReturnHelpers.cs (1)
57
if (ifOperation.
Parent
is not IBlockOperation parentBlock)
src\roslyn\src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (1)
103
if (ifOperation.
Parent
is not IBlockOperation containingBlock)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (24)
19
=> operation.
Parent
is IAssignmentOperation assignmentOperation &&
21
assignmentOperation.
Parent
?.Kind == OperationKind.ObjectOrCollectionInitializer;
66
while (operation.
Parent
is IBinaryPatternOperation or INegatedPatternOperation or IRelationalPatternOperation)
67
operation = operation.
Parent
;
69
switch (operation.
Parent
)
130
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
133
return operation.
Parent
.IsAnyCompoundAssignment()
137
else if (operation.
Parent
is ISimpleAssignmentOperation { IsRef: true } simpleAssignmentOperation &&
142
else if (operation.
Parent
is IIncrementOrDecrementOperation)
146
else if (operation.
Parent
is IForToLoopOperation forToLoopOperation && forToLoopOperation.LoopControlVariable.Equals(operation))
150
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
158
else if (operation.
Parent
is INameOfOperation or ITypeOfOperation or ISizeOfOperation)
162
else if (operation.
Parent
is IArgumentOperation argumentOperation)
179
else if (operation.
Parent
is IReturnOperation returnOperation)
188
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
200
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
203
return reDimClauseOperation.
Parent
is IReDimOperation { Preserve: true }
207
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
215
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation)
217
if (variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
241
operation = operation?.
Parent
;
253
operation = operation.
Parent
;
264
var current = operation.
Parent
;
278
current = current.
Parent
;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (1)
203
if (operation?.
Parent
is INameOfOperation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\LValueFlowCaptureProvider.cs (2)
56
if (flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
61
var captureKind = flowCaptureReference.
Parent
.IsAnyCompoundAssignment() || rvalueFlowCaptureIds.Contains(flowCaptureReference.Id)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (9)
130
if (operation.
Parent
is IFlowCaptureOperation flowCapture &&
152
if (operation.
Parent
is IIncrementOrDecrementOperation &&
153
operation.
Parent
.
Parent
?.Kind != OperationKind.ExpressionStatement)
163
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
191
operation.
Parent
?.Kind != OperationKind.ExpressionStatement;
271
operation.
Parent
is IForEachLoopOperation forEachLoop && forEachLoop.LoopControlVariable == operation ||
272
operation.
Parent
is ICatchClauseOperation catchClause && catchClause.ExceptionDeclarationOrExpression == operation)
420
else if (write.
Parent
is ISimpleAssignmentOperation simpleAssignment)
Microsoft.CodeAnalysis.CodeStyle.Fixes (5)
src\939a5660f39ce290\AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs (2)
112
if (assignmentOperation.
Parent
is IConditionalAccessOperation conditionalAccess)
194
if (ifOperation.
Parent
is not IBlockOperation parentBlock)
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodAsynchronous\AbstractMakeMethodAsynchronousCodeFixProvider.cs (1)
161
for (; operation != null; operation = operation.
Parent
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (2)
37
rootOperation.
Parent
is not null)
39
rootOperation = rootOperation.
Parent
;
Microsoft.CodeAnalysis.CSharp.CodeStyle (24)
src\roslyn\src\Analyzers\CSharp\Analyzers\HiddenExplicitCast\CSharpHiddenExplicitCastDiagnosticAnalyzer.cs (2)
60
for (var current = innerOperation.
Parent
;
62
current = current.
Parent
)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (3)
281
for (var operation = instanceOperation.
Parent
; operation != null; operation = operation.
Parent
)
322
if (operation.
Parent
is IEventAssignmentOperation)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
78
=> expressionStatementOperation.
Parent
is IBlockOperation blockOperation &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqExpressionDiagnosticAnalyzer.cs (2)
29
=> invocation.
Parent
is IArgumentOperation {
Parent
: IInvocationOperation nextInvocation } ? nextInvocation : null;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (1)
138
if (operation?.
Parent
is IAssignmentOperation { Type.TypeKind: TypeKind.Dynamic })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseConditionalExpression\CSharpUseConditionalExpressionForReturnDiagnosticAnalyzer.cs (1)
36
if (statement is not IReturnOperation {
Parent
: IBlockOperation block })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (3)
181
if (fieldReferenceOperation.
Parent
is ILockOperation lockOperation)
200
if (fieldReferenceOperation.
Parent
is IAssignmentOperation assignment &&
208
if (fieldReferenceOperation.
Parent
is INameOfOperation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (11)
92
Parent
.Kind: OperationKind.DelegateCreation,
96
var current = castExpressionOperation.
Parent
.
Parent
;
98
current = current.
Parent
;
107
if (current.
Parent
is IConversionOperation { Type: { } parentConversionType, IsImplicit: false } &&
267
if (rewrittenOperation.
Parent
is not IDelegateCreationOperation rewrittenDelegateCreationOperation)
278
if (originalDelegateCreationOperation.
Parent
is IConversionOperation conversionOperation &&
405
if (originalConversionOperation.
Parent
is IConversionOperation { Conversion.IsUserDefined: true } originalParentConversionOperation)
774
if (originalConversionOperation.
Parent
is not IConversionOperation outerOriginalConversionOperation)
827
if (rewrittenOperation.
Parent
is not IConversionOperation rewrittenBitwiseNotConversionOperation)
982
if (rewrittenOperation.
Parent
is IConversionOperation conditionalParentConversion &&
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (2)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseUtf8StringLiteral\UseUtf8StringLiteralCodeFixProvider.cs (2)
63
var isConvertedToReadOnlySpan = arrayOp.
Parent
is IConversionOperation conversion &&
132
operation = operation.
Parent
!;
Microsoft.CodeAnalysis.CSharp.Features (15)
src\roslyn\src\Analyzers\CSharp\Analyzers\HiddenExplicitCast\CSharpHiddenExplicitCastDiagnosticAnalyzer.cs (2)
60
for (var current = innerOperation.
Parent
;
62
current = current.
Parent
)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (3)
281
for (var operation = instanceOperation.
Parent
; operation != null; operation = operation.
Parent
)
322
if (operation.
Parent
is IEventAssignmentOperation)
src\roslyn\src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
78
=> expressionStatementOperation.
Parent
is IBlockOperation blockOperation &&
src\roslyn\src\Analyzers\CSharp\Analyzers\SimplifyLinqExpression\CSharpSimplifyLinqExpressionDiagnosticAnalyzer.cs (2)
29
=> invocation.
Parent
is IArgumentOperation {
Parent
: IInvocationOperation nextInvocation } ? nextInvocation : null;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (1)
138
if (operation?.
Parent
is IAssignmentOperation { Type.TypeKind: TypeKind.Dynamic })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseConditionalExpression\CSharpUseConditionalExpressionForReturnDiagnosticAnalyzer.cs (1)
36
if (statement is not IReturnOperation {
Parent
: IBlockOperation block })
src\roslyn\src\Analyzers\CSharp\Analyzers\UseSystemThreadingLock\CSharpUseSystemThreadingLockDiagnosticAnalyzer.cs (3)
181
if (fieldReferenceOperation.
Parent
is ILockOperation lockOperation)
200
if (fieldReferenceOperation.
Parent
is IAssignmentOperation assignment &&
208
if (fieldReferenceOperation.
Parent
is INameOfOperation)
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseUtf8StringLiteral\UseUtf8StringLiteralCodeFixProvider.cs (2)
63
var isConvertedToReadOnlySpan = arrayOp.
Parent
is IConversionOperation conversion &&
132
operation = operation.
Parent
!;
Microsoft.CodeAnalysis.CSharp.NetAnalyzers (3)
Microsoft.NetCore.Analyzers\Runtime\CSharpDoNotUseStackallocInLoops.cs (1)
77
for (; op is not null and not ILoopOperation; op = op.
Parent
)
Microsoft.NetCore.Analyzers\Runtime\CSharpPreventNumericIntPtrUIntPtrBehavioralChanges.cs (1)
23
var parent = operation.
Parent
?.Syntax;
Microsoft.NetCore.Analyzers\Runtime\CSharpUseSpanBasedStringConcat.cs (1)
17
(binaryOperation.
Parent
is not IBinaryOperation parentBinary || !IsConcatOperation(parentBinary));
Microsoft.CodeAnalysis.CSharp.Workspaces (11)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (11)
92
Parent
.Kind: OperationKind.DelegateCreation,
96
var current = castExpressionOperation.
Parent
.
Parent
;
98
current = current.
Parent
;
107
if (current.
Parent
is IConversionOperation { Type: { } parentConversionType, IsImplicit: false } &&
267
if (rewrittenOperation.
Parent
is not IDelegateCreationOperation rewrittenDelegateCreationOperation)
278
if (originalDelegateCreationOperation.
Parent
is IConversionOperation conversionOperation &&
405
if (originalConversionOperation.
Parent
is IConversionOperation { Conversion.IsUserDefined: true } originalParentConversionOperation)
774
if (originalConversionOperation.
Parent
is not IConversionOperation outerOriginalConversionOperation)
827
if (rewrittenOperation.
Parent
is not IConversionOperation rewrittenBitwiseNotConversionOperation)
982
if (rewrittenOperation.
Parent
is IConversionOperation conditionalParentConversion &&
Microsoft.CodeAnalysis.Features (43)
CallHierarchy\AbstractCallHierarchyService.cs (2)
335
while (operation.
Parent
!= null)
336
operation = operation.
Parent
;
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.cs (1)
89
if (ifOperation is not IConditionalOperation {
Parent
: IBlockOperation parentBlock })
src\939a5660f39ce290\AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs (2)
112
if (assignmentOperation.
Parent
is IConditionalAccessOperation conditionalAccess)
194
if (ifOperation.
Parent
is not IBlockOperation parentBlock)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (10)
281
if (operation.
Parent
is IVariableInitializerOperation)
290
if (operation.
Parent
is ISimpleAssignmentOperation assignment &&
301
operation.
Parent
is IDelegateCreationOperation)
303
return IsHandledDelegateCreationOrAnonymousFunctionTreeShape(operation.
Parent
);
336
if (operation.
Parent
is IInvocationOperation)
341
if (operation.
Parent
is ISimpleAssignmentOperation assignmentOperation)
369
if (operation.
Parent
is IBinaryOperation)
409
hasUnknownOperationNoneDescendant = operation.
Parent
is not INameOfOperation;
660
if (unusedSymbolWriteOperation.
Parent
is IAssignmentOperation assignment &&
665
else if (unusedSymbolWriteOperation.
Parent
is IIncrementOrDecrementOperation)
src\roslyn\src\Analyzers\Core\Analyzers\ConvertTypeofToNameof\AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (2)
50
if (operation.
Parent
is not IPropertyReferenceOperation)
54
var operationParent = (IPropertyReferenceOperation)operation.
Parent
;
src\roslyn\src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (2)
248
return operation is { Type.IsValueType: true,
Parent
: IPropertyReferenceOperation }
249
? IsWrittenTo(operation.
Parent
, owningSymbol)
src\roslyn\src\Analyzers\Core\Analyzers\QualifyMemberAccess\AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (1)
85
if (context.Operation.
Parent
?.Kind == OperationKind.PropertySubpattern)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (8)
262
if (operation is { Kind: OperationKind.None,
Parent
: INameOfOperation { Argument: var nameofArgument } } &&
406
Debug.Assert(memberReference.
Parent
is ICompoundAssignmentOperation compoundAssignment &&
408
memberReference.
Parent
is ICoalesceAssignmentOperation coalesceAssignment &&
410
memberReference.
Parent
is IIncrementOrDecrementOperation ||
411
memberReference.
Parent
is IReDimClauseOperation reDimClause && reDimClause.Operand == memberReference);
430
if (memberReference?.
Parent
?.
Parent
is IExpressionStatementOperation &&
431
memberReference.
Parent
is not ICoalesceAssignmentOperation)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (4)
63
if (interpolation.
Parent
is IInterpolatedStringOperation {
Parent
: IConversionOperation { Type: { } convertedType } conversion } &&
69
conversion.
Parent
is IArgumentOperation {
Parent
: IInvocationOperation invocation } &&
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (6)
101
if (towardsParent && expression?.
Parent
is null)
107
expression = towardsParent ? expression.
Parent
: parenthesized.Operand;
110
expression = towardsParent ? expression.
Parent
: conversion.Operand;
235
return Unwrap(interpolatedStringOperation?.
Parent
, towardsParent: true) is IArgumentOperation
237
Parent
: IInvocationOperation
252
for (var current = operation; current is not null; current = current.
Parent
)
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForReturn\UseConditionalExpressionForReturnHelpers.cs (1)
57
if (ifOperation.
Parent
is not IBlockOperation parentBlock)
src\roslyn\src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (1)
103
if (ifOperation.
Parent
is not IBlockOperation containingBlock)
src\roslyn\src\Analyzers\Core\CodeFixes\MakeMethodAsynchronous\AbstractMakeMethodAsynchronousCodeFixProvider.cs (1)
161
for (; operation != null; operation = operation.
Parent
)
ValueTracking\ValueTracker.cs (1)
153
operation = operation.
Parent
;
ValueTracking\ValueTracker.OperationCollector.cs (1)
288
operation = operation.
Parent
;
Microsoft.CodeAnalysis.NetAnalyzers (203)
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidDeadConditionalCode.cs (2)
89
&& (op.
Parent
is not IArgumentOperation {
Parent
: IInvocationOperation invocation } ||
Microsoft.CodeQuality.Analyzers\Maintainability\DoNotIgnoreMethodResults.cs (2)
271
if (operationContext.Operation.
Parent
is not IBlockOperation enclosingBlock)
279
var hasAnonymousFunctionParent = enclosingBlock.
Parent
?.Kind == OperationKind.AnonymousFunction;
Microsoft.CodeQuality.Analyzers\Maintainability\UseNameofInPlaceOfString.cs (2)
107
var parentOperation = context.Operation.
Parent
;
128
parentOperation = parentOperation.
Parent
;
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidInfiniteRecursion.cs (1)
71
ancestor = ancestor.
Parent
;
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerations.DataFlowOperationVisitor.cs (1)
364
return operation.
Parent
is IInvocationOperation invocationOperation
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerationsHelpers.cs (13)
34
if (IsValidImplicitConversion(operation.
Parent
, wellKnownSymbolsInfo))
43
return VisitLinqChainAndCoversionMethod(operation.
Parent
, enumerationCount, wellKnownSymbolsInfo);
46
if (IsOperationIsArgumentOfLinqChainInvocation(operation.
Parent
, wellKnownSymbolsInfo, out var enumerateArgument))
51
operation.
Parent
.
Parent
!,
64
operation.
Parent
!,
104
return operation.
Parent
is IForEachLoopOperation forEachLoopOperation && forEachLoopOperation.Collection == operation;
110
if (operation.
Parent
is IInvocationOperation invocationOperation
128
if (operation.
Parent
is IArgumentOperation parentArgumentOperation)
130
if (parentArgumentOperation.
Parent
is IInvocationOperation grandParentInvocationOperation)
137
else if (parentArgumentOperation.
Parent
is IObjectCreationOperation grandParentObjectCreationOperation)
150
if (operation.
Parent
is IInvocationOperation { TargetMethod.MethodKind: MethodKind.ReducedExtension } parentInvocationOperation
272
if (operation is IArgumentOperation {
Parent
: IInvocationOperation invocationOperation } argumentOperation)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\DoNotPassDisposablesIntoUnawaitedTasks.cs (2)
102
bool contextContainsDisposeCalls = localReferences.AnyWhere(r => r.
Parent
192
op.
Parent
is IInvocationOperation { TargetMethod.Name: "Wait" } or
Microsoft.CodeQuality.Analyzers\QualityGuidelines\MarkMembersAsStatic.cs (1)
109
&& (context.Operation.
Parent
is not IInvocationOperation invocation || !invocation.TargetMethod.Equals(methodSymbol, SymbolEqualityComparer.Default)))
Microsoft.CodeQuality.Analyzers\QualityGuidelines\RethrowToPreserveStackDetails.cs (1)
67
ancestor = ancestor.
Parent
;
Microsoft.NetCore.Analyzers\Data\ReviewSqlQueriesForSecurityVulnerabilities.cs (1)
112
if (propertyReference.
Parent
is not IAssignmentOperation assignment)
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.cs (4)
1324
if (operation.
Parent
is IEventAssignmentOperation eventAssignment)
1340
if (operation.
Parent
is IArgumentOperation argumentOperation && UsedInCreatingNotSupportedException(argumentOperation, notSupportedExceptionType))
1441
if (operation.
Parent
is IObjectCreationOperation creation &&
1774
pOperation.
Parent
is IBinaryOperation bo &&
Microsoft.NetCore.Analyzers\Performance\AvoidPotentiallyExpensiveCallWhenLogging.cs (1)
418
var isNegated = invocation.
Parent
is IUnaryOperation { OperatorKind: UnaryOperatorKind.Not };
Microsoft.NetCore.Analyzers\Performance\AvoidSingleUseOfLocalJsonSerializerOptions.cs (16)
84
return operation.
Parent
is IArgumentOperation argumentOperation &&
90
return argumentOperation.
Parent
is IInvocationOperation invocationOperation &&
165
while (operation.
Parent
is IConditionalOperation conditionalOperation)
176
while ((current = current?.
Parent
) is not null)
195
if (operation.
Parent
is IArgumentOperation arg && arg.
Parent
is IInvocationOperation inv)
207
IOperation? current = operation.
Parent
;
216
current = current.
Parent
;
224
IOperation? current = operation.
Parent
;
235
while (tuple.
Parent
is ITupleOperation parent)
241
current = tuple.WalkUpConversion().
Parent
;
294
IOperation? currentOperation = operation.
Parent
;
309
IOperation? tmpOperation = operation.
Parent
;
323
tmpOperation = assignment.
Parent
;
332
if (operation.
Parent
is IAssignmentOperation assignment)
352
currentOperation = currentOperation.
Parent
;
Microsoft.NetCore.Analyzers\Performance\CollapseMultiplePathOperations.cs (3)
191
var current = invocation.
Parent
;
198
var grandParent = current.
Parent
;
211
current = current.
Parent
;
Microsoft.NetCore.Analyzers\Performance\PreferConvertToHexStringOverBitConverter.cs (1)
306
parentInvocation = invocation.
Parent
as IInvocationOperation;
Microsoft.NetCore.Analyzers\Performance\PreferDictionaryTryMethodsOverContainsKeyGuardAnalyzer.cs (15)
202
if (invocation.
Parent
?.
Parent
is IBlockOperation block)
277
if (operation.
Parent
is IUnaryOperation { OperatorKind: UnaryOperatorKind.Not })
279
operation = operation.
Parent
;
285
var parentOperation = operation.
Parent
;
330
switch (descendant.
Parent
)
358
switch (indexer.
Parent
)
371
inc.
Parent
is not IExpressionStatementOperation:
376
Parent
: IVariableDeclaratorOperation
378
Parent
: IVariableDeclarationOperation
380
Parent
: IVariableDeclarationGroupOperation declarationGroup
391
Parent
: IVariableDeclarationOperation
393
Parent
: IVariableDeclarationGroupOperation declarationGroup
409
switch (descendant.
Parent
)
525
foreach (var operation in sourceOperation.
Parent
!.Children)
Microsoft.NetCore.Analyzers\Performance\PreferHashDataOverComputeHash.cs (4)
149
if (TryGetVariableInitializerOperation(objectCreationOperation.
Parent
, out var variableInitializerOperation))
189
if (TryGetVariableInitializerOperation(hashCreateInvocation.
Parent
, out var variableInitializerOperation))
198
switch (variableInitializerOperation.
Parent
)
247
case IConversionOperation {
Parent
: IVariableInitializerOperation variableInitializerOperationAlt }:
Microsoft.NetCore.Analyzers\Performance\PreferReadOnlySpanOverSpan.cs (12)
142
for (var current = reference.
Parent
; current is not null; current = current.
Parent
)
166
if (invocation.
Parent
is IArgumentOperation arg)
191
return propRef.
Parent
is IArgumentOperation arg && IsArgumentSafe(parameter, arg, readOnlySpan, readOnlyMemory, memoryExtensions);
283
if (propRef.
Parent
is IAssignmentOperation assignment && assignment.Target == propRef)
289
if (propRef.
Parent
is IIncrementOrDecrementOperation)
295
if (propRef.
Parent
is IArgumentOperation argument &&
303
IVariableDeclaratorOperation? declarator = propRef.
Parent
as IVariableDeclaratorOperation;
304
if (declarator is null && propRef.
Parent
is IVariableInitializerOperation initializer)
306
declarator = initializer.
Parent
as IVariableDeclaratorOperation;
315
if (propRef.
Parent
is IReturnOperation && containingMethod.ReturnsByRef)
331
if (argument.
Parent
is IInvocationOperation invocation &&
Microsoft.NetCore.Analyzers\Performance\UseAsSpanInsteadOfRangeIndexer.cs (1)
166
if (operationContext.Operation.
Parent
is not IConversionOperation conversionOperation)
Microsoft.NetCore.Analyzers\Performance\UseCountProperly.cs (4)
211
IOperation? parentOperation = invocationOperation.WalkUpParentheses().WalkUpConversion().
Parent
;
221
parentOperation = awaitOperation.WalkUpParentheses().WalkUpConversion().
Parent
;
247
IOperation? parentOperation = propertyReferenceOperation.WalkUpParentheses().WalkUpConversion().
Parent
;
278
argumentOperation.
Parent
is IInvocationOperation argumentParentInvocationOperation)
Microsoft.NetCore.Analyzers\Performance\UseSearchValues.cs (1)
79
if (isStringIndexOfAny && invocation.
Parent
is IConditionalAccessOperation)
Microsoft.NetCore.Analyzers\Performance\UseSearchValues.Fixer.cs (1)
155
argumentOperation.
Parent
is IInvocationOperation indexOfAnyOperation &&
Microsoft.NetCore.Analyzers\Runtime\AvoidConstArrays.cs (2)
67
|| (argumentOperation.
Parent
is IObjectCreationOperation objectCreation && objectCreation.Type.Inherits(attributeType)))
168
ancestor = ancestor!.
Parent
;
Microsoft.NetCore.Analyzers\Runtime\AvoidUnreliableStreamRead.cs (3)
68
if (invocation.
Parent
is not IExpressionStatementOperation)
75
if (invocation.
Parent
is not IAwaitOperation awaitOperation ||
76
awaitOperation.
Parent
is not IExpressionStatementOperation)
Microsoft.NetCore.Analyzers\Runtime\BufferBlockCopyLengthAnalyzer.cs (1)
151
else if (variableDeclaratorOperation.
Parent
is IVariableDeclarationOperation variableDeclarationOperation &&
Microsoft.NetCore.Analyzers\Runtime\DisposableFieldsShouldBeDisposed.cs (1)
170
if (fieldReference.
Parent
is ISimpleAssignmentOperation simpleAssignmentOperation &&
Microsoft.NetCore.Analyzers\Runtime\DoNotPassLiteralsAsLocalizedParameters.cs (2)
75
switch (argument.
Parent
)
95
if (propertyReference.
Parent
is IAssignmentOperation assignment &&
Microsoft.NetCore.Analyzers\Runtime\ForwardCancellationTokenToInvocations.Analyzer.cs (2)
202
IOperation? currentOperation = invocation.
Parent
;
239
currentOperation = currentOperation.
Parent
;
Microsoft.NetCore.Analyzers\Runtime\InstantiateArgumentExceptionsCorrectly.cs (2)
222
var operation = creation.
Parent
;
242
operation = operation.
Parent
;
Microsoft.NetCore.Analyzers\Runtime\PreferAsSpanOverSubstring.cs (1)
63
if (symbols.IsAnySubstringInvocation(argument.Value.WalkDownConversion(c => c.IsImplicit)) && argument.
Parent
is IInvocationOperation invocation)
Microsoft.NetCore.Analyzers\Runtime\PreferConstCharOverConstUnitString.Fixer.cs (4)
67
var variableDeclarationOperation = (IVariableDeclarationOperation?)variableDeclaratorOperation.
Parent
;
73
var variableGroupDeclarationOperation = (IVariableDeclarationGroupOperation?)variableDeclarationOperation.
Parent
;
116
IVariableDeclarationOperation variableDeclarationOperation = (IVariableDeclarationOperation)variableDeclaratorOperation.
Parent
!;
117
IVariableDeclarationGroupOperation variableGroupDeclarationOperation = (IVariableDeclarationGroupOperation)variableDeclarationOperation.
Parent
!;
Microsoft.NetCore.Analyzers\Runtime\PreferStringContainsOverIndexOfAnalyzer.cs (4)
130
var parent = localReference.
Parent
;
152
var parent = invocationOperation.
Parent
;
163
if (variableInitializer.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
167
else if (variableInitializer.
Parent
is IVariableDeclarationOperation variableDeclarationOperation && variableDeclarationOperation.Declarators.Length == 1)
Microsoft.NetCore.Analyzers\Runtime\PreferTypedStringBuilderAppendOverloads.Fixer.cs (1)
57
argOp.
Parent
is IInvocationOperation invocationOp &&
Microsoft.NetCore.Analyzers\Runtime\UseAsyncMethodInAsyncContext.cs (1)
160
if (propertyReferenceOperation.
Parent
is not INameOfOperation)
Microsoft.NetCore.Analyzers\Runtime\UseExceptionThrowHelpers.cs (3)
164
IConditionalOperation? condition = throwOperation.
Parent
as IConditionalOperation;
167
if (throwOperation.
Parent
is IBlockOperation parentBlock && parentBlock.Children.Count() == 1)
169
condition = parentBlock.
Parent
as IConditionalOperation;
Microsoft.NetCore.Analyzers\Runtime\UseStringEqualsOverStringCompare.Fixer.cs (1)
136
return i.Instance?.
Parent
is IUnaryOperation { OperatorKind: UnaryOperatorKind.Not }
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInIFormatterSerializableObjectGraphAnalyzer.cs (3)
101
&& invocationOperation.
Parent
?.Kind == OperationKind.Conversion
102
&& invocationOperation.
Parent
is IConversionOperation conversionOperation))
129
invocationOperation.
Parent
.Syntax.GetLocation(),
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInSerializableObjectGraphAnalyzer.cs (4)
158
&& invocationOperation.
Parent
?.Kind == OperationKind.Conversion
159
&& invocationOperation.
Parent
is IConversionOperation javaScriptConversionOperation)
230
else if (invocationOperation.
Parent
?.Kind == OperationKind.Conversion
231
&& invocationOperation.
Parent
is IConversionOperation conversionOperation)
Microsoft.NetCore.Analyzers\Tasks\DoNotUseWhenAllOrWaitAllWithSingleArgumentFixer.cs (2)
84
var currentOperation = operation.
Parent
;
93
currentOperation = currentOperation.
Parent
;
Microsoft.NetCore.Analyzers\Tasks\UseValueTasksCorrectly.cs (17)
116
if (invocation.
Parent
is IInvocationOperation parentIo)
126
case nameof(ValueTask.GetAwaiter) when parentIo.
Parent
is IInvocationOperation { TargetMethod.Name: nameof(ValueTaskAwaiter.GetResult) }:
137
else if (invocation.
Parent
is IPropertyReferenceOperation { Property.Name: nameof(ValueTask<int>.Result) })
144
while (operation.
Parent
!= null) // for walking up the operation tree if necessary
146
switch (operation.
Parent
.Kind)
159
var arg = (IArgumentOperation)operation.
Parent
;
181
case OperationKind.SimpleAssignment when operation.
Parent
is ISimpleAssignmentOperation sao && sao.Target is IDiscardOperation:
187
var conversion = (IConversionOperation)operation.
Parent
;
191
operation = operation.
Parent
;
205
operation = operation.
Parent
;
221
if (TryGetLocalSymbolAssigned(operation.
Parent
, out var valueTypeSymbol, out var startingBlock))
390
case OperationKind.VariableInitializer when operation.
Parent
is IVariableDeclaratorOperation decl:
439
op.
Parent
?.Kind switch
445
OperationKind.PropertyReference when op.
Parent
is IPropertyReferenceOperation { Property.Name: "Result" } => true,
523
op.
Parent
?.Kind switch
525
OperationKind.PropertyReference when op.
Parent
is IPropertyReferenceOperation { Property.Name: nameof(ValueTask<int>.Result) } => true,
526
OperationKind.Invocation when op.
Parent
is IInvocationOperation { TargetMethod.Name: nameof(ValueTask.GetAwaiter) } => true,
Microsoft.NetCore.Analyzers\Usage\PreferGenericOverloads.cs (1)
193
public IOperation? Parent => Invocation.
Parent
;
Microsoft.NetFramework.Analyzers\DoNotUseInsecureDtdProcessing.cs (1)
606
else if (context.Operation?.
Parent
?.Kind != OperationKind.ObjectOrCollectionInitializer)
Microsoft.NetFramework.Analyzers\DoNotUseInsecureXSLTScriptExecution.cs (5)
185
var invocationOrObjCreation = settingsOperation.
Parent
!.
Parent
!;
227
env.XsltSettingsDefinition = lhs.
Parent
;
277
env.XsltSettingsDefinition = lhs.
Parent
;
289
env.XsltSettingsDefinition = lhs.
Parent
;
src\40daf5e1cab76dff\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (1)
462
if (operation.
Parent
is IInvocationOperation invocationOperation)
src\47c588c5b8785708\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
160
return operation.
Parent
switch
src\afc74d572e54ec72\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (3)
190
if (operation.
Parent
is IInvocationOperation invocation &&
339
operation.
Parent
is IInvocationOperation invocation &&
382
return operation.
Parent
switch
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (2)
300
if (operation.
Parent
!= null)
302
switch (operation.
Parent
.Kind)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (1)
260
if (operationBlock != null && operationBlock.
Parent
== null)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IOperationExtensions.cs (34)
198
return operation.Kind == OperationKind.None && operation.
Parent
== null;
215
currentOperation = currentOperation.
Parent
;
234
currentOperation = currentOperation.
Parent
;
257
ancestor = ancestor.
Parent
;
291
ancestor = ancestor.
Parent
;
330
for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.
Parent
)
432
while (operation.
Parent
!= null)
434
operation = operation.
Parent
;
563
&& operation.GetAncestor(s_LambdaAndLocalFunctionKinds)?.
Parent
?.Type?.OriginalDefinition is { } lambdaType
603
var currentOperation = tupleOperation.
Parent
;
612
currentOperation = currentOperation.
Parent
;
694
while (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
740
while (operation.
Parent
is IConversionOperation conversionOperation)
839
while (potentialLeftSide.
Parent
is IParenthesizedOperation or ITupleOperation)
841
potentialLeftSide = potentialLeftSide.
Parent
;
844
return potentialLeftSide.
Parent
switch
942
switch (operation.
Parent
)
999
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
1002
return operation.
Parent
.IsAnyCompoundAssignment()
1006
else if (operation.
Parent
is IIncrementOrDecrementOperation)
1010
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
1018
else if (operation.
Parent
is INameOfOperation or
1024
else if (operation.
Parent
is IArgumentOperation argumentOperation)
1034
else if (operation.
Parent
is IReturnOperation returnOperation)
1043
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
1055
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
1058
return reDimClauseOperation.
Parent
is IReDimOperation { Preserve: true }
1062
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
1070
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation &&
1071
variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
1091
operation = operation.
Parent
;
1105
operation = operation.
Parent
;
1124
operation = operation?.
Parent
;
1136
operation = operation.
Parent
;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\Extensions\IOperationExtensions_FlowAnalysis.cs (1)
52
=> flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (1)
159
operation.
Parent
is IArgumentOperation argument && argument.Parameter?.RefKind == RefKind.Out) &&
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityFactory.cs (1)
163
if (conditionalAccessInstance.
Parent
is IMemberReferenceOperation memberReferenceParent)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResult.cs (1)
117
Debug.Assert(operation.GetAncestor<IBlockOperation>(OperationKind.Block, predicate: b => b.
Parent
== null) == null);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (6)
975
=> operation.
Parent
is IInvocationOperation invocation &&
1492
var current = operation.
Parent
;
1499
current = current.
Parent
;
1512
var current = operation.
Parent
;
1519
current = current.
Parent
;
2779
var pendingArguments = _pendingArgumentsToPostProcess.ExtractAll(static (arg, operation) => arg.
Parent
== operation, operation);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\LValueFlowCapturesProvider.cs (1)
65
operations.Single().
Parent
?.Kind == OperationKind.FlowCapture)
Microsoft.CodeAnalysis.ResxSourceGenerator (50)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (2)
298
if (operation.
Parent
!= null)
300
switch (operation.
Parent
.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (1)
258
if (operationBlock != null && operationBlock.
Parent
== null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (11)
122
return operation is { Kind: OperationKind.None,
Parent
: null };
142
ancestor = ancestor.
Parent
;
176
ancestor = ancestor.
Parent
;
215
for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.
Parent
)
260
while (operation.
Parent
!= null)
262
operation = operation.
Parent
;
416
var currentOperation = tupleOperation.
Parent
;
425
currentOperation = currentOperation.
Parent
;
478
while (potentialLeftSide.
Parent
is IParenthesizedOperation or ITupleOperation)
480
potentialLeftSide = potentialLeftSide.
Parent
;
483
return potentialLeftSide.
Parent
switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (24)
19
=> operation.
Parent
is IAssignmentOperation assignmentOperation &&
21
assignmentOperation.
Parent
?.Kind == OperationKind.ObjectOrCollectionInitializer;
66
while (operation.
Parent
is IBinaryPatternOperation or INegatedPatternOperation or IRelationalPatternOperation)
67
operation = operation.
Parent
;
69
switch (operation.
Parent
)
130
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
133
return operation.
Parent
.IsAnyCompoundAssignment()
137
else if (operation.
Parent
is ISimpleAssignmentOperation { IsRef: true } simpleAssignmentOperation &&
142
else if (operation.
Parent
is IIncrementOrDecrementOperation)
146
else if (operation.
Parent
is IForToLoopOperation forToLoopOperation && forToLoopOperation.LoopControlVariable.Equals(operation))
150
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
158
else if (operation.
Parent
is INameOfOperation or ITypeOfOperation or ISizeOfOperation)
162
else if (operation.
Parent
is IArgumentOperation argumentOperation)
179
else if (operation.
Parent
is IReturnOperation returnOperation)
188
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
200
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
203
return reDimClauseOperation.
Parent
is IReDimOperation { Preserve: true }
207
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
215
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation)
217
if (variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
241
operation = operation?.
Parent
;
253
operation = operation.
Parent
;
264
var current = operation.
Parent
;
278
current = current.
Parent
;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (1)
203
if (operation?.
Parent
is INameOfOperation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\LValueFlowCaptureProvider.cs (2)
56
if (flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
61
var captureKind = flowCaptureReference.
Parent
.IsAnyCompoundAssignment() || rvalueFlowCaptureIds.Contains(flowCaptureReference.Id)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (9)
130
if (operation.
Parent
is IFlowCaptureOperation flowCapture &&
152
if (operation.
Parent
is IIncrementOrDecrementOperation &&
153
operation.
Parent
.
Parent
?.Kind != OperationKind.ExpressionStatement)
163
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
191
operation.
Parent
?.Kind != OperationKind.ExpressionStatement;
271
operation.
Parent
is IForEachLoopOperation forEachLoop && forEachLoop.LoopControlVariable == operation ||
272
operation.
Parent
is ICatchClauseOperation catchClause && catchClause.ExceptionDeclarationOrExpression == operation)
420
else if (write.
Parent
is ISimpleAssignmentOperation simpleAssignment)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (1)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\SimplifyLinqExpression\VisualBasicSimplifyLinqExpressionDiagnosticAnalyzer.vb (1)
28
Return TryCast(invocation.
Parent
, IInvocationOperation)
Microsoft.CodeAnalysis.VisualBasic.Features (1)
src\roslyn\src\Analyzers\VisualBasic\Analyzers\SimplifyLinqExpression\VisualBasicSimplifyLinqExpressionDiagnosticAnalyzer.vb (1)
28
Return TryCast(invocation.
Parent
, IInvocationOperation)
Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers (2)
Microsoft.NetCore.Analyzers\Runtime\BasicUseSpanBasedStringConcat.vb (2)
18
Dim parentBinaryOperation = TryCast(WalkUpImplicitConversionToObject(binaryOperation.
Parent
), IBinaryOperation)
38
Return conversion.
Parent
Microsoft.CodeAnalysis.Workspaces (38)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (24)
19
=> operation.
Parent
is IAssignmentOperation assignmentOperation &&
21
assignmentOperation.
Parent
?.Kind == OperationKind.ObjectOrCollectionInitializer;
66
while (operation.
Parent
is IBinaryPatternOperation or INegatedPatternOperation or IRelationalPatternOperation)
67
operation = operation.
Parent
;
69
switch (operation.
Parent
)
130
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
133
return operation.
Parent
.IsAnyCompoundAssignment()
137
else if (operation.
Parent
is ISimpleAssignmentOperation { IsRef: true } simpleAssignmentOperation &&
142
else if (operation.
Parent
is IIncrementOrDecrementOperation)
146
else if (operation.
Parent
is IForToLoopOperation forToLoopOperation && forToLoopOperation.LoopControlVariable.Equals(operation))
150
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
158
else if (operation.
Parent
is INameOfOperation or ITypeOfOperation or ISizeOfOperation)
162
else if (operation.
Parent
is IArgumentOperation argumentOperation)
179
else if (operation.
Parent
is IReturnOperation returnOperation)
188
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
200
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
203
return reDimClauseOperation.
Parent
is IReDimOperation { Preserve: true }
207
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
215
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation)
217
if (variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
241
operation = operation?.
Parent
;
253
operation = operation.
Parent
;
264
var current = operation.
Parent
;
278
current = current.
Parent
;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (1)
203
if (operation?.
Parent
is INameOfOperation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\LValueFlowCaptureProvider.cs (2)
56
if (flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
61
var captureKind = flowCaptureReference.
Parent
.IsAnyCompoundAssignment() || rvalueFlowCaptureIds.Contains(flowCaptureReference.Id)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (9)
130
if (operation.
Parent
is IFlowCaptureOperation flowCapture &&
152
if (operation.
Parent
is IIncrementOrDecrementOperation &&
153
operation.
Parent
.
Parent
?.Kind != OperationKind.ExpressionStatement)
163
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
191
operation.
Parent
?.Kind != OperationKind.ExpressionStatement;
271
operation.
Parent
is IForEachLoopOperation forEachLoop && forEachLoop.LoopControlVariable == operation ||
272
operation.
Parent
is ICatchClauseOperation catchClause && catchClause.ExceptionDeclarationOrExpression == operation)
420
else if (write.
Parent
is ISimpleAssignmentOperation simpleAssignment)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (2)
37
rootOperation.
Parent
is not null)
39
rootOperation = rootOperation.
Parent
;
Roslyn.Diagnostics.Analyzers (58)
PooledArrayBuilderAsRefAnalyzer.cs (3)
72
if (declaration is not {
Parent
: IVariableDeclarationOperation {
Parent
: IVariableDeclarationGroupOperation {
Parent
: IUsingOperation or IUsingDeclarationOperation } } })
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (2)
298
if (operation.
Parent
!= null)
300
switch (operation.
Parent
.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (1)
258
if (operationBlock != null && operationBlock.
Parent
== null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (11)
122
return operation is { Kind: OperationKind.None,
Parent
: null };
142
ancestor = ancestor.
Parent
;
176
ancestor = ancestor.
Parent
;
215
for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.
Parent
)
260
while (operation.
Parent
!= null)
262
operation = operation.
Parent
;
416
var currentOperation = tupleOperation.
Parent
;
425
currentOperation = currentOperation.
Parent
;
478
while (potentialLeftSide.
Parent
is IParenthesizedOperation or ITupleOperation)
480
potentialLeftSide = potentialLeftSide.
Parent
;
483
return potentialLeftSide.
Parent
switch
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (24)
19
=> operation.
Parent
is IAssignmentOperation assignmentOperation &&
21
assignmentOperation.
Parent
?.Kind == OperationKind.ObjectOrCollectionInitializer;
66
while (operation.
Parent
is IBinaryPatternOperation or INegatedPatternOperation or IRelationalPatternOperation)
67
operation = operation.
Parent
;
69
switch (operation.
Parent
)
130
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
133
return operation.
Parent
.IsAnyCompoundAssignment()
137
else if (operation.
Parent
is ISimpleAssignmentOperation { IsRef: true } simpleAssignmentOperation &&
142
else if (operation.
Parent
is IIncrementOrDecrementOperation)
146
else if (operation.
Parent
is IForToLoopOperation forToLoopOperation && forToLoopOperation.LoopControlVariable.Equals(operation))
150
else if (operation.
Parent
is IParenthesizedOperation parenthesizedOperation)
158
else if (operation.
Parent
is INameOfOperation or ITypeOfOperation or ISizeOfOperation)
162
else if (operation.
Parent
is IArgumentOperation argumentOperation)
179
else if (operation.
Parent
is IReturnOperation returnOperation)
188
else if (operation.
Parent
is IConditionalOperation conditionalOperation)
200
else if (operation.
Parent
is IReDimClauseOperation reDimClauseOperation &&
203
return reDimClauseOperation.
Parent
is IReDimOperation { Preserve: true }
207
else if (operation.
Parent
is IDeclarationExpressionOperation declarationExpression)
215
else if (operation.
Parent
is IVariableInitializerOperation variableInitializerOperation)
217
if (variableInitializerOperation.
Parent
is IVariableDeclaratorOperation variableDeclaratorOperation)
241
operation = operation?.
Parent
;
253
operation = operation.
Parent
;
264
var current = operation.
Parent
;
278
current = current.
Parent
;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SymbolUsageInfo.cs (1)
203
if (operation?.
Parent
is INameOfOperation)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\LValueFlowCaptureProvider.cs (2)
56
if (flowCaptureReference.
Parent
is IAssignmentOperation assignment &&
61
var captureKind = flowCaptureReference.
Parent
.IsAnyCompoundAssignment() || rvalueFlowCaptureIds.Contains(flowCaptureReference.Id)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (9)
130
if (operation.
Parent
is IFlowCaptureOperation flowCapture &&
152
if (operation.
Parent
is IIncrementOrDecrementOperation &&
153
operation.
Parent
.
Parent
?.Kind != OperationKind.ExpressionStatement)
163
if (operation.
Parent
is IAssignmentOperation assignmentOperation &&
191
operation.
Parent
?.Kind != OperationKind.ExpressionStatement;
271
operation.
Parent
is IForEachLoopOperation forEachLoop && forEachLoop.LoopControlVariable == operation ||
272
operation.
Parent
is ICatchClauseOperation catchClause && catchClause.ExceptionDeclarationOrExpression == operation)
420
else if (write.
Parent
is ISimpleAssignmentOperation simpleAssignment)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (2)
37
rootOperation.
Parent
is not null)
39
rootOperation = rootOperation.
Parent
;
TemporaryArrayAsRefAnalyzer.cs (3)
70
if (declaration is not {
Parent
: IVariableDeclarationOperation {
Parent
: IVariableDeclarationGroupOperation {
Parent
: IUsingOperation or IUsingDeclarationOperation } } })
Roslyn.Diagnostics.CSharp.Analyzers (13)
CSharpDoNotCapturePrimaryContructorParameters.cs (2)
49
for (; rootOperation.
Parent
!= null; rootOperation = rootOperation.
Parent
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (11)
92
Parent
.Kind: OperationKind.DelegateCreation,
96
var current = castExpressionOperation.
Parent
.
Parent
;
98
current = current.
Parent
;
107
if (current.
Parent
is IConversionOperation { Type: { } parentConversionType, IsImplicit: false } &&
267
if (rewrittenOperation.
Parent
is not IDelegateCreationOperation rewrittenDelegateCreationOperation)
278
if (originalDelegateCreationOperation.
Parent
is IConversionOperation conversionOperation &&
405
if (originalConversionOperation.
Parent
is IConversionOperation { Conversion.IsUserDefined: true } originalParentConversionOperation)
774
if (originalConversionOperation.
Parent
is not IConversionOperation outerOriginalConversionOperation)
827
if (rewrittenOperation.
Parent
is not IConversionOperation rewrittenBitwiseNotConversionOperation)
982
if (rewrittenOperation.
Parent
is IConversionOperation conditionalParentConversion &&
System.Private.CoreLib.Generators (1)
IntrinsicsInSystemPrivateCoreLibAnalyzer.cs (1)
506
operationSearch = operationSearch.
Parent
;