133 implementations of Kind
Microsoft.CodeAnalysis (133)
Generated\Operations.Generated.cs (127)
4090
public override OperationKind
Kind
=> OperationKind.Block;
4145
public override OperationKind
Kind
=> OperationKind.VariableDeclarationGroup;
4215
public override OperationKind
Kind
=> OperationKind.Switch;
4321
public override OperationKind
Kind
=> OperationKind.Loop;
4413
public override OperationKind
Kind
=> OperationKind.Loop;
4525
public override OperationKind
Kind
=> OperationKind.Loop;
4549
public override OperationKind
Kind
=> OperationKind.Loop;
4602
public override OperationKind
Kind
=> OperationKind.Labeled;
4622
public override OperationKind
Kind
=> OperationKind.Branch;
4636
public override OperationKind
Kind
=> OperationKind.Empty;
4688
public override OperationKind
Kind
{ get; }
4752
public override OperationKind
Kind
=> OperationKind.Lock;
4831
public override OperationKind
Kind
=> OperationKind.Try;
4899
public override OperationKind
Kind
=> OperationKind.Using;
4950
public override OperationKind
Kind
=> OperationKind.ExpressionStatement;
5014
public override OperationKind
Kind
=> OperationKind.LocalFunction;
5028
public override OperationKind
Kind
=> OperationKind.Stop;
5042
public override OperationKind
Kind
=> OperationKind.End;
5108
public override OperationKind
Kind
=> OperationKind.RaiseEvent;
5126
public override OperationKind
Kind
=> OperationKind.Literal;
5186
public override OperationKind
Kind
=> OperationKind.Conversion;
5259
public override OperationKind
Kind
=> OperationKind.Invocation;
5326
public override OperationKind
Kind
=> OperationKind.ArrayElementReference;
5348
public override OperationKind
Kind
=> OperationKind.LocalReference;
5367
public override OperationKind
Kind
=> OperationKind.ParameterReference;
5432
public override OperationKind
Kind
=> OperationKind.FieldReference;
5488
public override OperationKind
Kind
=> OperationKind.MethodReference;
5557
public override OperationKind
Kind
=> OperationKind.PropertyReference;
5611
public override OperationKind
Kind
=> OperationKind.EventReference;
5674
public override OperationKind
Kind
=> OperationKind.Unary;
5752
public override OperationKind
Kind
=> OperationKind.Binary;
5829
public override OperationKind
Kind
=> OperationKind.Conditional;
5896
public override OperationKind
Kind
=> OperationKind.Coalesce;
5949
public override OperationKind
Kind
=> OperationKind.AnonymousFunction;
6019
public override OperationKind
Kind
=> OperationKind.ObjectCreation;
6071
public override OperationKind
Kind
=> OperationKind.TypeParameterObjectCreation;
6138
public override OperationKind
Kind
=> OperationKind.ArrayCreation;
6157
public override OperationKind
Kind
=> OperationKind.InstanceReference;
6213
public override OperationKind
Kind
=> OperationKind.IsType;
6265
public override OperationKind
Kind
=> OperationKind.Await;
6338
public override OperationKind
Kind
=> OperationKind.SimpleAssignment;
6413
public override OperationKind
Kind
=> OperationKind.CompoundAssignment;
6466
public override OperationKind
Kind
=> OperationKind.Parenthesized;
6531
public override OperationKind
Kind
=> OperationKind.EventAssignment;
6594
public override OperationKind
Kind
=> OperationKind.ConditionalAccess;
6611
public override OperationKind
Kind
=> OperationKind.ConditionalAccessInstance;
6668
public override OperationKind
Kind
=> OperationKind.InterpolatedString;
6724
public override OperationKind
Kind
=> OperationKind.AnonymousObjectCreation;
6780
public override OperationKind
Kind
=> OperationKind.ObjectOrCollectionInitializer;
6843
public override OperationKind
Kind
=> OperationKind.MemberInitializer;
6896
public override OperationKind
Kind
=> OperationKind.NameOf;
6954
public override OperationKind
Kind
=> OperationKind.Tuple;
7012
public override OperationKind
Kind
=> OperationKind.DynamicMemberReference;
7064
public override OperationKind
Kind
=> OperationKind.TranslatedQuery;
7116
public override OperationKind
Kind
=> OperationKind.DelegateCreation;
7134
public override OperationKind
Kind
=> OperationKind.DefaultValue;
7153
public override OperationKind
Kind
=> OperationKind.TypeOf;
7173
public override OperationKind
Kind
=> OperationKind.SizeOf;
7225
public override OperationKind
Kind
=> OperationKind.AddressOf;
7288
public override OperationKind
Kind
=> OperationKind.IsPattern;
7351
public override OperationKind
Kind
{ get; }
7403
public override OperationKind
Kind
=> OperationKind.Throw;
7462
public override OperationKind
Kind
=> OperationKind.DeconstructionAssignment;
7514
public override OperationKind
Kind
=> OperationKind.DeclarationExpression;
7531
public override OperationKind
Kind
=> OperationKind.OmittedArgument;
7593
public override OperationKind
Kind
=> OperationKind.FieldInitializer;
7640
public override OperationKind
Kind
=> OperationKind.VariableInitializer;
7691
public override OperationKind
Kind
=> OperationKind.PropertyInitializer;
7742
public override OperationKind
Kind
=> OperationKind.ParameterInitializer;
7797
public override OperationKind
Kind
=> OperationKind.ArrayInitializer;
7865
public override OperationKind
Kind
=> OperationKind.VariableDeclarator;
7946
public override OperationKind
Kind
=> OperationKind.VariableDeclaration;
8007
public override OperationKind
Kind
=> OperationKind.Argument;
8084
public override OperationKind
Kind
=> OperationKind.CatchClause;
8158
public override OperationKind
Kind
=> OperationKind.SwitchCase;
8182
public override OperationKind
Kind
=> OperationKind.CaseClause;
8245
public override OperationKind
Kind
=> OperationKind.CaseClause;
8307
public override OperationKind
Kind
=> OperationKind.CaseClause;
8360
public override OperationKind
Kind
=> OperationKind.CaseClause;
8411
public override OperationKind
Kind
=> OperationKind.CaseClause;
8467
public override OperationKind
Kind
=> OperationKind.InterpolatedStringText;
8540
public override OperationKind
Kind
=> OperationKind.Interpolation;
8602
public override OperationKind
Kind
=> OperationKind.ConstantPattern;
8624
public override OperationKind
Kind
=> OperationKind.DeclarationPattern;
8689
public override OperationKind
Kind
=> OperationKind.TupleBinary;
8756
public override OperationKind
Kind
=> OperationKind.MethodBody;
8827
public override OperationKind
Kind
=> OperationKind.ConstructorBody;
8846
public override OperationKind
Kind
=> OperationKind.Discard;
8899
public override OperationKind
Kind
=> OperationKind.FlowCapture;
8921
public override OperationKind
Kind
=> OperationKind.FlowCaptureReference;
8974
public override OperationKind
Kind
=> OperationKind.IsNull;
8991
public override OperationKind
Kind
=> OperationKind.CaughtException;
9010
public override OperationKind
Kind
=> OperationKind.StaticLocalInitializationSemaphore;
9069
public override OperationKind
Kind
=> OperationKind.CoalesceAssignment;
9136
public override OperationKind
Kind
=> OperationKind.Range;
9193
public override OperationKind
Kind
=> OperationKind.ReDim;
9259
public override OperationKind
Kind
=> OperationKind.ReDimClause;
9335
public override OperationKind
Kind
=> OperationKind.RecursivePattern;
9349
public override OperationKind
Kind
=> OperationKind.DiscardPattern;
9418
public override OperationKind
Kind
=> OperationKind.SwitchExpression;
9493
public override OperationKind
Kind
=> OperationKind.SwitchExpressionArm;
9555
public override OperationKind
Kind
=> OperationKind.PropertySubpattern;
9618
public override OperationKind
Kind
=> OperationKind.None;
9682
public override OperationKind
Kind
=> OperationKind.None;
9734
public override OperationKind
Kind
=> OperationKind.None;
9753
public override OperationKind
Kind
=> OperationKind.None;
9815
public override OperationKind
Kind
=> OperationKind.None;
9870
public override OperationKind
Kind
=> OperationKind.UsingDeclaration;
9921
public override OperationKind
Kind
=> OperationKind.NegatedPattern;
9985
public override OperationKind
Kind
=> OperationKind.BinaryPattern;
10003
public override OperationKind
Kind
=> OperationKind.TypePattern;
10056
public override OperationKind
Kind
=> OperationKind.RelationalPattern;
10121
public override OperationKind
Kind
=> OperationKind.With;
10188
public override OperationKind
Kind
=> OperationKind.InterpolatedStringHandlerCreation;
10250
public override OperationKind
Kind
=> OperationKind.InterpolatedStringAddition;
10302
public override OperationKind
Kind
{ get; }
10322
public override OperationKind
Kind
=> OperationKind.InterpolatedStringHandlerArgumentPlaceholder;
10389
public override OperationKind
Kind
=> OperationKind.FunctionPointerInvocation;
10450
public override OperationKind
Kind
=> OperationKind.ListPattern;
10503
public override OperationKind
Kind
=> OperationKind.SlicePattern;
10570
public override OperationKind
Kind
=> OperationKind.ImplicitIndexerReference;
10589
public override OperationKind
Kind
=> OperationKind.Utf8String;
10640
public override OperationKind
Kind
=> OperationKind.Attribute;
10703
public override OperationKind
Kind
=> OperationKind.InlineArrayAccess;
10776
public override OperationKind
Kind
=> OperationKind.CollectionExpression;
10832
public override OperationKind
Kind
=> OperationKind.Spread;
10849
public override OperationKind
Kind
=> OperationKind.CollectionExpressionElementsPlaceholder;
Operations\Operation.cs (1)
65
public abstract OperationKind
Kind
{ get; }
Operations\OperationNodes.cs (5)
137
public override OperationKind
Kind
=> OperationKind.Invalid;
168
public override OperationKind
Kind
=> OperationKind.FlowAnonymousFunction;
260
public override OperationKind
Kind
=> OperationKind.DynamicObjectCreation;
402
public override OperationKind
Kind
=> OperationKind.DynamicInvocation;
424
public override OperationKind
Kind
=> OperationKind.DynamicIndexerAccess;
581 references to Kind
GenerateDocumentationAndConfigFiles (26)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
64
switch (operation.
Kind
)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122
return operation is {
Kind
: OperationKind.None, Parent: null };
143
} while (ancestor != null && ancestor.
Kind
!= ancestorKind);
177
} while (ancestor != null && !ancestorKinds.Contains(ancestor.
Kind
));
215
for (IOperation? current = operation; current != null && current.
Kind
!= OperationKind.Block; current = current.Parent)
217
switch (current.
Kind
)
320
Debug.Assert(operation.
Kind
is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.
Kind
}");
344
switch (child.
Kind
)
419
switch (currentOperation.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
244
switch (operation.
Kind
)
268
switch (current.
Kind
)
375
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
378
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
126
=> operation is IMemberReferenceOperation { Instance.
Kind
: OperationKind.InstanceReference };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
161
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
191
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
195
if (write.
Kind
!= OperationKind.FlowCaptureReference)
436
switch (currentOperation.
Kind
)
551
switch (target.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } })
485
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
ILLink.RoslynAnalyzer (8)
DataFlow\CapturedReferenceValue.cs (1)
17
switch (operation.
Kind
)
DataFlow\ControlFlowGraphExtensions.cs (1)
34
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
DataFlow\UnexpectedOperationHandler.cs (3)
22
if (operation.
Kind
is OperationKind.None)
25
if (operation.
Kind
is OperationKind.Invalid)
39
if (descendant.
Kind
is OperationKind.Invalid)
IOperationExtensions.cs (2)
218
switch (operation.
Kind
)
242
switch (current.
Kind
)
TrimAnalysis\HandleCallAction.cs (1)
43
_isNewObj = operation.
Kind
== OperationKind.ObjectCreation;
Microsoft.Analyzers.Extra (8)
AsyncCallInsideUsingBlockAnalyzer.cs (1)
86
switch (operation.
Kind
)
CoalesceAnalyzer.cs (2)
39
if (op.Target.
Kind
== OperationKind.ParameterReference)
66
if (op.Value.
Kind
== OperationKind.ParameterReference)
ConditionalAccessAnalyzer.cs (2)
37
switch (op.Operation.
Kind
)
98
if (op.Operation.
Kind
== OperationKind.ParameterReference)
LegacyLoggingFixer.cs (1)
368
if (invocationOp.Parent?.
Kind
== OperationKind.ConditionalAccess)
LegacyLoggingFixer.FixDetails.cs (2)
106
var op = invocationOp.Arguments[LogLevelParamIndex].Descendants().SingleOrDefault(x => x.
Kind
== OperationKind.Literal || x.
Kind
== OperationKind.FieldReference);
Microsoft.AspNetCore.App.Analyzers (4)
Http\RequestDelegateReturnTypeAnalyzer.cs (2)
32
parent.
Kind
== OperationKind.DelegateCreation &&
48
parent.
Kind
== OperationKind.DelegateCreation &&
RouteHandlers\RouteHandlerAnalyzer.cs (2)
105
if (delegateCreation.Target.
Kind
== OperationKind.AnonymousFunction)
115
else if (delegateCreation.Target.
Kind
== OperationKind.MethodReference)
Microsoft.AspNetCore.Components.Analyzers (2)
ComponentParameterUsageAnalyzer.cs (1)
59
if (leftHandSide.
Kind
!= OperationKind.PropertyReference)
InternalUsageAnalyzer.cs (1)
69
_ => throw new InvalidOperationException("Unexpected operation kind: " + context.Operation.
Kind
),
Microsoft.AspNetCore.Components.SdkAnalyzers (2)
ComponentParameterUsageAnalyzer.cs (1)
59
if (leftHandSide.
Kind
!= OperationKind.PropertyReference)
InternalUsageAnalyzer.cs (1)
69
_ => throw new InvalidOperationException("Unexpected operation kind: " + context.Operation.
Kind
),
Microsoft.AspNetCore.Mvc.Analyzers (4)
TagHelpersInCodeBlocksAnalyzer.cs (4)
48
if (awaitOperation.Operation.
Kind
!= OperationKind.Invocation)
115
if (operation.
Kind
== OperationKind.LocalFunction)
120
if (operation.
Kind
== OperationKind.MethodBody)
125
if (operation.
Kind
== OperationKind.AnonymousFunction)
Microsoft.CodeAnalysis (87)
DiagnosticAnalyzer\AnalysisContextInfo.cs (1)
85
sb.AppendLine($"{nameof(IOperation)}: {_operation.
Kind
}");
DiagnosticAnalyzer\AnalyzerDriver.cs (4)
3028
switch (operationBlock.Parent.
Kind
)
3039
Debug.Assert(operationBlock.
Kind
is OperationKind.Invocation or OperationKind.Invalid);
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)
1294
if (operationActionsByKind.TryGetValue(operation.
Kind
, out var actionsForKind))
Operations\ControlFlowGraph.cs (2)
40
Debug.Assert(parent != null == (originalOperation.
Kind
== OperationKind.LocalFunction || originalOperation.
Kind
== OperationKind.AnonymousFunction));
Operations\ControlFlowGraphBuilder.cs (76)
96
Debug.Assert(body.
Kind
== OperationKind.Block ||
97
body.
Kind
== OperationKind.MethodBody ||
98
body.
Kind
== OperationKind.ConstructorBody ||
99
body.
Kind
== OperationKind.FieldInitializer ||
100
body.
Kind
== OperationKind.PropertyInitializer ||
101
body.
Kind
== OperationKind.ParameterInitializer ||
102
body.
Kind
== OperationKind.Attribute,
103
$"Unexpected root operation kind: {body.
Kind
}");
108
Debug.Assert(body.
Kind
== OperationKind.LocalFunction || body.
Kind
== OperationKind.AnonymousFunction);
124
switch (body.
Kind
)
869
value.
Kind
!= OperationKind.LocalReference ||
1288
|| slot.operationOpt.
Kind
== OperationKind.FlowCaptureReference
1289
|| slot.operationOpt.
Kind
== OperationKind.DeclarationExpression
1290
|| slot.operationOpt.
Kind
== OperationKind.Discard
1291
|| slot.operationOpt.
Kind
== OperationKind.OmittedArgument
1292
|| slot.operationOpt.
Kind
== OperationKind.CollectionExpressionElementsPlaceholder));
1628
if (operation.WhenTrue is IConversionOperation whenTrueConversion && whenTrueConversion.Operand.
Kind
== OperationKind.Throw)
1631
Debug.Assert(rewrittenThrow!.
Kind
== OperationKind.None);
1640
else if (operation.WhenFalse is IConversionOperation whenFalseConversion && whenFalseConversion.Operand.
Kind
== OperationKind.Throw)
1649
Debug.Assert(rewrittenThrow.
Kind
== OperationKind.None);
1696
if (result.
Kind
!= OperationKind.FlowCaptureReference ||
1858
if (operationOpt.
Kind
!= OperationKind.FlowCaptureReference
1859
&& operationOpt.
Kind
!= OperationKind.DeclarationExpression
1860
&& operationOpt.
Kind
!= OperationKind.Discard
1861
&& operationOpt.
Kind
!= OperationKind.OmittedArgument
1862
&& operationOpt.
Kind
!= OperationKind.CollectionExpressionElementsPlaceholder)
2735
if (condition.
Kind
== OperationKind.Binary)
2797
switch (condition.
Kind
)
2935
if (conversion.Operand.
Kind
== OperationKind.Throw)
2939
Debug.Assert(rewrittenThrow.
Kind
== OperationKind.None);
2962
while (condition.
Kind
== OperationKind.Parenthesized)
3055
bool alternativeThrows = conversion?.Operand.
Kind
== OperationKind.Throw;
3081
Debug.Assert(rewrittenThrow.
Kind
== OperationKind.None);
3114
bool isStatement = _currentStatement == operation || operation.Parent.
Kind
== OperationKind.ExpressionStatement;
3377
bool isOnStatementLevel = _currentStatement == operation || (_currentStatement == operation.Parent && _currentStatement?.
Kind
== OperationKind.ExpressionStatement);
3572
Debug.Assert(operation.Operation.
Kind
== OperationKind.ConditionalAccess || operation.Operation.
Kind
== OperationKind.CoalesceAssignment);
3575
else if (operation.Operation.
Kind
== OperationKind.Throw)
3801
if (exceptionDeclarationOrExpression.
Kind
== OperationKind.VariableDeclarator)
3842
switch (operation.
Kind
)
3859
throw ExceptionUtilities.UnexpectedValue(operation.
Kind
);
3996
Debug.Assert(resources.
Kind
!= OperationKind.VariableDeclaration);
3997
Debug.Assert(resources.
Kind
!= OperationKind.VariableDeclarator);
4475
if (!operation.Locals.IsEmpty && operation.LoopControlVariable.
Kind
== OperationKind.VariableDeclarator)
4667
switch (operation.LoopControlVariable.
Kind
)
5366
Debug.Assert(controlVariableReferenceForAssignment.
Kind
== OperationKind.FlowCaptureReference);
5436
switch (operation.LoopControlVariable.
Kind
)
5750
if (initialization.Length == 1 && initialization[0].
Kind
== OperationKind.VariableDeclarationGroup)
6058
switch (innerInitializer.
Kind
)
6077
Debug.Assert(validKinds.Contains(innerInitializer.
Kind
));
6171
switch (instance.
Kind
)
6178
if (memberReference.
Kind
== OperationKind.PropertyReference)
6231
Debug.Assert(instance.
Kind
== OperationKind.Invalid || instance.
Kind
== OperationKind.None);
6239
switch (originalTarget.
Kind
)
6285
throw ExceptionUtilities.UnexpectedValue(originalTarget.
Kind
);
6357
throw ExceptionUtilities.UnexpectedValue(lhs.
Kind
);
6406
Debug.Assert(propertyReference.Instance.
Kind
== OperationKind.InstanceReference);
6517
if (elementValue.
Kind
== OperationKind.ArrayInitializer)
6536
if (elementValue.
Kind
== OperationKind.ArrayInitializer)
6645
if (operation.Operation.
Kind
== OperationKind.DynamicMemberReference)
6661
if (operation.Operation.
Kind
== OperationKind.DynamicMemberReference)
6706
if (value.
Kind
== OperationKind.Tuple)
6726
if (value.
Kind
== OperationKind.Tuple)
6947
throw ExceptionUtilities.UnexpectedValue(currentAddition.Left.
Kind
);
6959
throw ExceptionUtilities.UnexpectedValue(currentAddition.Left.
Kind
);
7069
if (element.
Kind
== OperationKind.Interpolation)
7110
throw ExceptionUtilities.UnexpectedValue(element.
Kind
);
7365
switch (current.
Kind
)
7406
operation.
Kind
, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation));
7490
if (children.Count != 0 && children.Last().
Kind
== OperationKind.ObjectOrCollectionInitializer)
7865
if (statement.
Kind
== OperationKind.LocalFunction)
8029
if (simpleAssignment.Target.
Kind
!= OperationKind.PropertyReference)
8041
Debug.Assert(propertyReference.Instance.
Kind
== OperationKind.InstanceReference);
8122
if (simpleAssignment.Target.
Kind
!= OperationKind.PropertyReference)
Operations\OperationMapBuilder.cs (2)
114
$"Duplicate operation node for {operation.Syntax}. Existing node is {(argument.TryGetValue(operation.Syntax, out var original) ? (OperationKind?)original.
Kind
: null)}, new node is {operation.
Kind
}.");
Operations\OperationNodes.cs (1)
699
Debug.Assert(statements.All(s => s.Parent != this && s.Parent!.
Kind
is OperationKind.Block or OperationKind.SwitchCase));
Microsoft.CodeAnalysis.Analyzers (37)
MetaAnalyzers\ConfigureGeneratedCodeAnalysisAnalyzer.cs (1)
116
if (invocation.Instance?.
Kind
!= OperationKind.ParameterReference)
MetaAnalyzers\EnableConcurrentExecutionAnalyzer.cs (1)
116
if (invocation.Instance?.
Kind
!= OperationKind.ParameterReference)
MetaAnalyzers\Fixers\CompareSymbolsCorrectlyFix.cs (1)
227
if (instance.
Kind
!= OperationKind.ConditionalAccessInstance)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
64
switch (operation.
Kind
)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
102
if ((operationBlock.
Kind
is OperationKind.None or OperationKind.Attribute) &&
133
switch (operation.
Kind
)
300
switch (operation.Parent.
Kind
)
318
return operation.
Kind
== OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0;
328
return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.
Kind
is not (OperationKind.Branch or OperationKind.Attribute)));
335
distinctOperatorKindsBuilder.Add(operation.
Kind
);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
260
switch (operationBlock.
Kind
)
326
switch (operation.
Kind
)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122
return operation is {
Kind
: OperationKind.None, Parent: null };
143
} while (ancestor != null && ancestor.
Kind
!= ancestorKind);
177
} while (ancestor != null && !ancestorKinds.Contains(ancestor.
Kind
));
215
for (IOperation? current = operation; current != null && current.
Kind
!= OperationKind.Block; current = current.Parent)
217
switch (current.
Kind
)
320
Debug.Assert(operation.
Kind
is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.
Kind
}");
344
switch (child.
Kind
)
419
switch (currentOperation.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
244
switch (operation.
Kind
)
268
switch (current.
Kind
)
375
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
378
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
126
=> operation is IMemberReferenceOperation { Instance.
Kind
: OperationKind.InstanceReference };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
161
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
191
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
195
if (write.
Kind
!= OperationKind.FlowCaptureReference)
436
switch (currentOperation.
Kind
)
551
switch (target.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } })
485
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
Microsoft.CodeAnalysis.AnalyzerUtilities (68)
src\1e7e9f16bf7f1945\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (2)
189
return operation.
Kind
== OperationKind.None ?
245
var operationKind = operation.
Kind
== OperationKind.Increment ? BinaryOperatorKind.Add : BinaryOperatorKind.Subtract;
src\66dd3055a1c91c38\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (1)
724
target.
Kind
== OperationKind.ArrayElementReference)
src\683181b2796de991\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
157
if (operation.
Kind
== OperationKind.ConditionalAccessInstance)
src\a03b2aad21e28a8a\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (7)
225
&& (operation.Target.
Kind
== OperationKind.PropertyReference
226
|| operation.Target.
Kind
== OperationKind.FieldReference
227
|| operation.Target.
Kind
== OperationKind.FlowCaptureReference))
230
if (operation.Target.
Kind
== OperationKind.FlowCaptureReference)
277
if (propertyReferenceOperation == null && operation.Target.
Kind
== OperationKind.FlowCaptureReference)
708
if (flowCaptureReferenceOperation != null && flowCaptureReferenceOperation.
Kind
== OperationKind.FlowCaptureReference)
714
if (kinds == null || kinds.Contains(lValueOperation.
Kind
))
src\a172c07bebba4cd8\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (3)
243
operation.
Kind
!= OperationKind.ObjectCreation &&
279
if (visitedInstance?.
Kind
!= OperationKind.InstanceReference)
403
operation.Instance?.
Kind
== OperationKind.InstanceReference)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
102
if ((operationBlock.
Kind
is OperationKind.None or OperationKind.Attribute) &&
133
switch (operation.
Kind
)
300
switch (operation.Parent.
Kind
)
318
return operation.
Kind
== OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0;
328
return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.
Kind
is not (OperationKind.Branch or OperationKind.Attribute)));
335
distinctOperatorKindsBuilder.Add(operation.
Kind
);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
260
switch (operationBlock.
Kind
)
326
switch (operation.
Kind
)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122
return operation is {
Kind
: OperationKind.None, Parent: null };
143
} while (ancestor != null && ancestor.
Kind
!= ancestorKind);
177
} while (ancestor != null && !ancestorKinds.Contains(ancestor.
Kind
));
215
for (IOperation? current = operation; current != null && current.
Kind
!= OperationKind.Block; current = current.Parent)
217
switch (current.
Kind
)
320
Debug.Assert(operation.
Kind
is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.
Kind
}");
344
switch (child.
Kind
)
419
switch (currentOperation.
Kind
)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\ControlFlowGraphExtensions.cs (1)
22
cfg.OriginalOperation.
Kind
is OperationKind.Attribute or OperationKind.None or OperationKind.ParameterInitializer)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (1)
159
=> (s_DisposableCreationKinds.Contains(operation.
Kind
) ||
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataSymbolMapExtensions.cs (3)
70
pointsToAnalysisResult[o.
Kind
, o.Syntax])));
93
arguments.SelectAsArray(o => pointsToAnalysisResult[o.
Kind
, o.Syntax]),
94
arguments.SelectAsArray(o => valueContentAnalysisResult[o.
Kind
, o.Syntax])));
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResult.cs (3)
130
if (kvp.Key.
Kind
== operationKind && kvp.Key.Syntax == syntax)
170
Debug.Assert(lambdaOrLocalFunctionOperation.
Kind
is OperationKind.AnonymousFunction or OperationKind.LocalFunction);
189
if (lambdaOrLocalFunctionOperation.
Kind
== OperationKind.LocalFunction)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (14)
906
instance.
Kind
!= OperationKind.InstanceReference &&
1256
if (sourceOperand.
Kind
== OperationKind.Throw)
1389
Debug.Assert(operation.
Kind
is OperationKind.BinaryOperator or
1408
if (operation.
Kind
== OperationKind.FlowCaptureReference)
1432
if (operation.
Kind
== OperationKind.FlowCaptureReference)
1489
if (operation.
Kind
== OperationKind.Argument)
1498
switch (current.
Kind
)
1518
switch (current.
Kind
)
1563
switch (isPatternOperation.Pattern.
Kind
)
1641
Debug.Fail($"Unknown pattern kind '{isPatternOperation.Pattern.
Kind
}'");
2485
Debug.Assert(originalOperation.
Kind
== OperationKind.ObjectCreation);
2576
switch (operation.
Kind
)
2807
if (operation.
Kind
== OperationKind.None)
3828
Debug.Assert(operation.
Kind
== OperationKind.YieldReturn, "IReturnOperation must have been lowered in the CFG");
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\ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
244
switch (operation.
Kind
)
268
switch (current.
Kind
)
375
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
378
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
126
=> operation is IMemberReferenceOperation { Instance.
Kind
: OperationKind.InstanceReference };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
161
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
191
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
195
if (write.
Kind
!= OperationKind.FlowCaptureReference)
436
switch (currentOperation.
Kind
)
551
switch (target.
Kind
)
Microsoft.CodeAnalysis.CodeStyle (35)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (11)
275
Debug.Assert(operation.
Kind
is OperationKind.DelegateCreation or OperationKind.AnonymousFunction);
291
(assignment.Target.
Kind
== OperationKind.LocalReference ||
292
assignment.Target.
Kind
== OperationKind.ParameterReference))
300
if (operation.
Kind
== OperationKind.AnonymousFunction &&
324
Debug.Assert(operation.
Kind
is OperationKind.LocalReference or OperationKind.ParameterReference);
358
(assignmentOperation.Target.
Kind
== OperationKind.LocalReference ||
359
assignmentOperation.Target.
Kind
== OperationKind.ParameterReference))
384
switch (operationBlock.
Kind
)
406
if (operation.
Kind
== OperationKind.None)
685
switch (assignmentValue.
Kind
)
696
return fieldReference.Instance == null || fieldReference.Instance.
Kind
== OperationKind.InstanceReference;
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (1)
294
if (fieldReference.Instance?.
Kind
!= OperationKind.InstanceReference ||
src\roslyn\src\Analyzers\Core\Analyzers\QualifyMemberAccess\AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (2)
81
if (instanceOperation.
Kind
!= OperationKind.InstanceReference)
85
if (context.Operation.Parent?.
Kind
== OperationKind.PropertySubpattern)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (1)
126
Kind
: OperationKind.Literal,
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
262
if (operation is {
Kind
: OperationKind.None, Parent: INameOfOperation { Argument: var nameofArgument } } &&
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (1)
287
: alignmentOp is {
Kind
: OperationKind.Literal })
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForReturn\UseConditionalExpressionForReturnHelpers.cs (4)
97
trueReturn.
Kind
!= falseReturn.
Kind
)
104
if (trueReturn?.
Kind
== OperationKind.YieldBreak)
111
if (trueReturn?.
Kind
== OperationKind.YieldReturn &&
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
244
switch (operation.
Kind
)
268
switch (current.
Kind
)
375
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
378
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
126
=> operation is IMemberReferenceOperation { Instance.
Kind
: OperationKind.InstanceReference };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
161
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
191
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
195
if (write.
Kind
!= OperationKind.FlowCaptureReference)
436
switch (currentOperation.
Kind
)
551
switch (target.
Kind
)
Microsoft.CodeAnalysis.CodeStyle.Fixes (4)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
64
switch (operation.
Kind
)
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\ForReturn\AbstractUseConditionalExpressionForReturnCodeFixProvider.cs (1)
78
var returnStatement = anyReturn.
Kind
== OperationKind.YieldReturn
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } })
485
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
Microsoft.CodeAnalysis.CSharp.CodeStyle (5)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
284
if (operation.
Kind
== OperationKind.None)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
91
Kind
: OperationKind.MethodReference,
92
Parent.
Kind
: OperationKind.DelegateCreation,
1351
if (oldInterpolationPart.
Kind
!= newInterpolationPart.
Kind
)
Microsoft.CodeAnalysis.CSharp.Features (3)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (1)
64
var v => throw ExceptionUtilities.UnexpectedValue(v.
Kind
)
ConvertLinq\CSharpConvertLinqQueryToForEachProvider.cs (1)
914
return operation.
Kind
is OperationKind.LocalReference or OperationKind.ParameterReference;
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
284
if (operation.
Kind
== OperationKind.None)
Microsoft.CodeAnalysis.CSharp.Workspaces (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
91
Kind
: OperationKind.MethodReference,
92
Parent.
Kind
: OperationKind.DelegateCreation,
1351
if (oldInterpolationPart.
Kind
!= newInterpolationPart.
Kind
)
Microsoft.CodeAnalysis.Features (28)
ConvertForEachToFor\AbstractConvertForEachToForCodeRefactoringProvider.cs (1)
374
switch (operation.
Kind
)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.cs (1)
146
return op.
Kind
;
InitializeParameter\AbstractInitializeParameterCodeRefactoringProvider.cs (1)
165
switch (operation.
Kind
)
InlineMethod\AbstractInlineMethodRefactoringProvider.InlineContext.cs (1)
420
if (operation.
Kind
is OperationKind.AnonymousFunction or OperationKind.LocalFunction)
IntroduceParameter\AbstractIntroduceParameterCodeRefactoringProvider.cs (1)
290
containsClassSpecificStatement = operation.Descendants().Any(op => op.
Kind
== OperationKind.InstanceReference);
IntroduceUsingStatement\AbstractIntroduceUsingStatementCodeRefactoringProvider.cs (1)
126
if (initializer is null || initializer.
Kind
== OperationKind.Invalid)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (11)
275
Debug.Assert(operation.
Kind
is OperationKind.DelegateCreation or OperationKind.AnonymousFunction);
291
(assignment.Target.
Kind
== OperationKind.LocalReference ||
292
assignment.Target.
Kind
== OperationKind.ParameterReference))
300
if (operation.
Kind
== OperationKind.AnonymousFunction &&
324
Debug.Assert(operation.
Kind
is OperationKind.LocalReference or OperationKind.ParameterReference);
358
(assignmentOperation.Target.
Kind
== OperationKind.LocalReference ||
359
assignmentOperation.Target.
Kind
== OperationKind.ParameterReference))
384
switch (operationBlock.
Kind
)
406
if (operation.
Kind
== OperationKind.None)
685
switch (assignmentValue.
Kind
)
696
return fieldReference.Instance == null || fieldReference.Instance.
Kind
== OperationKind.InstanceReference;
src\roslyn\src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (1)
294
if (fieldReference.Instance?.
Kind
!= OperationKind.InstanceReference ||
src\roslyn\src\Analyzers\Core\Analyzers\QualifyMemberAccess\AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (2)
81
if (instanceOperation.
Kind
!= OperationKind.InstanceReference)
85
if (context.Operation.Parent?.
Kind
== OperationKind.PropertySubpattern)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (1)
126
Kind
: OperationKind.Literal,
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
262
if (operation is {
Kind
: OperationKind.None, Parent: INameOfOperation { Argument: var nameofArgument } } &&
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (1)
287
: alignmentOp is {
Kind
: OperationKind.Literal })
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForReturn\UseConditionalExpressionForReturnHelpers.cs (4)
97
trueReturn.
Kind
!= falseReturn.
Kind
)
104
if (trueReturn?.
Kind
== OperationKind.YieldBreak)
111
if (trueReturn?.
Kind
== OperationKind.YieldReturn &&
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\ForReturn\AbstractUseConditionalExpressionForReturnCodeFixProvider.cs (1)
78
var returnStatement = anyReturn.
Kind
== OperationKind.YieldReturn
Microsoft.CodeAnalysis.NetAnalyzers (164)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ImplementIDisposableCorrectly.cs (13)
475
else if (invocationExpression.Instance.
Kind
!= OperationKind.InstanceReference ||
487
if (argument.Value.
Kind
!= OperationKind.Literal)
536
if (!operation.IsImplicit && operation.
Kind
!= OperationKind.Attribute && !ValidateOperation(operation))
547
switch (operation.
Kind
)
566
if (expressionStatement.Operation == null || expressionStatement.Operation.
Kind
!= OperationKind.Invocation)
609
if (argumentValue.
Kind
!= OperationKind.Conversion)
615
if (conversion.Operand == null || conversion.Operand.
Kind
!= OperationKind.InstanceReference)
664
var shouldAnalyze = (!operation.IsImplicit && operation.
Kind
!= OperationKind.Attribute) || operation.
Kind
== OperationKind.Try || operation.
Kind
== OperationKind.ExpressionStatement;
676
return operation.
Kind
switch
688
if (expressionStatement.Operation?.
Kind
!= OperationKind.Invocation)
706
else if (_type.BaseType != null && invocation.Instance != null && invocation.Instance.
Kind
== OperationKind.InstanceReference)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\InterfaceMethodsShouldBeCallableByChildTypes.cs (1)
81
topmostExplicitOperations[0].
Kind
== OperationKind.Throw)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\TypesThatOwnDisposableFieldsShouldBeDisposable.cs (2)
84
&& assignment.Value.WalkDownConversion().
Kind
== OperationKind.ObjectCreation
90
else if (ctx.Operation is IFieldInitializerOperation initializer && initializer.Value.WalkDownConversion().
Kind
== OperationKind.ObjectCreation)
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidDeadConditionalCode.cs (7)
85
op.
Kind
== OperationKind.Coalesce ||
86
op.
Kind
== OperationKind.ConditionalAccess ||
87
op.
Kind
== OperationKind.IsNull ||
88
op.
Kind
== OperationKind.IsPattern)
121
if (operation.IsImplicit && operation.
Kind
!= OperationKind.IsNull)
126
switch (operation.
Kind
)
199
Debug.Assert(operation.
Kind
is OperationKind.BinaryOperator or
Microsoft.CodeQuality.Analyzers\Maintainability\DoNotIgnoreMethodResults.cs (2)
169
switch (expression.
Kind
)
279
var hasAnonymousFunctionParent = enclosingBlock.Parent?.
Kind
== OperationKind.AnonymousFunction;
Microsoft.CodeQuality.Analyzers\Maintainability\UseNameofInPlaceOfString.cs (1)
57
|| argument.Value.
Kind
!= OperationKind.Literal
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AssigningSymbolAndItsMemberInSameStatement.cs (1)
83
while (assignmentOperation.Value.
Kind
== OperationKind.SimpleAssignment)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidInfiniteRecursion.cs (3)
73
ancestor.
Kind
!= OperationKind.AnonymousFunction &&
74
ancestor.
Kind
!= OperationKind.LocalFunction &&
75
ancestor.
Kind
!= OperationKind.Conditional);
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerations.cs (1)
320
var result = analysisResult[operation.
Kind
, operation.Syntax];
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidMultipleEnumerations\AvoidMultipleEnumerations.DataFlowOperationVisitor.cs (1)
64
var pointToResult = DataFlowAnalysisContext.PointsToAnalysisResult[parameterOrLocalReferenceOperation.
Kind
, parameterOrLocalReferenceOperation.Syntax];
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidPropertySelfAssignment.cs (2)
90
if (targetArg.
Kind
!= valueArg.
Kind
)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\DoNotCallOverridableMethodsInConstructors.cs (1)
68
if (operation.Instance?.
Kind
== OperationKind.InstanceReference &&
Microsoft.CodeQuality.Analyzers\QualityGuidelines\MarkMembersAsStatic.Fixer.cs (1)
224
switch (operation.
Kind
)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\RemoveEmptyFinalizers.cs (2)
69
if (operation.
Kind
== OperationKind.Throw)
74
if (operation.
Kind
== OperationKind.Invocation)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\RethrowToPreserveStackDetails.cs (3)
51
ancestor.
Kind
!= OperationKind.AnonymousFunction &&
52
ancestor.
Kind
!= OperationKind.LocalFunction)
54
if (ancestor.
Kind
== OperationKind.CatchClause &&
Microsoft.CodeQuality.Analyzers\QualityGuidelines\UseLiteralsWhereAppropriate.cs (1)
86
if (fieldInitializerValue.
Kind
== OperationKind.InterpolatedString &&
Microsoft.NetCore.Analyzers\Data\ReviewSqlQueriesForSecurityVulnerabilities.cs (1)
228
ValueContentAbstractValue value = valueContentResult[argumentValue.
Kind
, argumentValue.Syntax];
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.cs (2)
367
var value = analysisResult[platformSpecificOperation.Key.
Kind
, platformSpecificOperation.Key.Syntax];
427
var localValue = localResult[platformSpecificOperation.
Kind
, platformSpecificOperation.Syntax];
Microsoft.NetCore.Analyzers\Performance\DoNotGuardCall.cs (2)
158
argumentValue1.
Kind
!= argumentValue2.
Kind
||
Microsoft.NetCore.Analyzers\Performance\PreferDictionaryTryMethodsOverContainsKeyGuardAnalyzer.cs (1)
348
&& invocation.Arguments[1].Value.
Kind
is OperationKind.Literal or OperationKind.LocalReference or OperationKind.FieldReference or OperationKind.ParameterReference or OperationKind.ConstantPattern
Microsoft.NetCore.Analyzers\Performance\UseAsSpanInsteadOfRangeIndexer.cs (1)
119
else if (operationContext.Operation.
Kind
is OperationKind.None or OperationKind.ImplicitIndexerReference)
Microsoft.NetCore.Analyzers\Performance\UseCompositeFormat.cs (4)
152
if (operation.
Kind
== OperationKind.Literal)
157
if (operation.
Kind
== OperationKind.FieldReference)
162
if (operation.
Kind
== OperationKind.PropertyReference)
167
if (operation.
Kind
== OperationKind.Invocation)
Microsoft.NetCore.Analyzers\Performance\UseConcreteTypeAnalyzer.Collector.cs (8)
100
if (instance.
Kind
== OperationKind.ConditionalAccessInstance)
109
switch (instance.
Kind
)
161
if (instance.
Kind
== OperationKind.ConditionalAccessInstance)
170
switch (instance.
Kind
)
282
switch (op.Target.
Kind
)
378
if (op.Expression.
Kind
== OperationKind.LocalReference)
433
switch (op?.
Kind
)
556
switch (op.
Kind
)
Microsoft.NetCore.Analyzers\Runtime\AvoidConstArrays.cs (1)
162
if (ancestor?.
Kind
is OperationKind.FieldInitializer or OperationKind.PropertyInitializer or
Microsoft.NetCore.Analyzers\Runtime\DisposableFieldsShouldBeDisposed.cs (2)
156
if (field.IsStatic || fieldReference.Instance?.
Kind
!= OperationKind.InstanceReference)
200
PointsToAbstractValue assignedPointsToValue = lazyPointsToAnalysisResult[simpleAssignmentOperation.Value.
Kind
, simpleAssignmentOperation.Value.Syntax];
Microsoft.NetCore.Analyzers\Runtime\DisposableTypesShouldDeclareFinalizer.cs (2)
69
if (target.
Kind
!= OperationKind.FieldReference)
101
if (assignment.Value == null || assignment.Value.
Kind
!= OperationKind.Invocation)
Microsoft.NetCore.Analyzers\Runtime\DoNotCallEnumerableCastOrOfTypeWithIncompatibleTypesAnalyzer.cs (1)
119
if (operation.
Kind
== OperationKind.ArrayCreation)
Microsoft.NetCore.Analyzers\Runtime\DoNotPassLiteralsAsLocalizedParameters.cs (1)
121
ValueContentAbstractValue stringContentValue = lazyValueContentResult.Value[operation.
Kind
, operation.Syntax];
Microsoft.NetCore.Analyzers\Runtime\ForwardCancellationTokenToInvocations.Analyzer.cs (4)
207
if (currentOperation.
Kind
== OperationKind.AnonymousFunction)
211
else if (currentOperation.
Kind
== OperationKind.LocalFunction)
225
if (currentOperation.
Kind
== OperationKind.AnonymousFunction)
233
if (currentOperation.
Kind
== OperationKind.LocalFunction && ancestor.IsStatic)
Microsoft.NetCore.Analyzers\Runtime\InstantiateArgumentExceptionsCorrectly.cs (1)
226
switch (operation.
Kind
)
Microsoft.NetCore.Analyzers\Runtime\TestForEmptyStringsUsingStringLength.cs (1)
154
if (expression.
Kind
== OperationKind.FieldReference)
Microsoft.NetCore.Analyzers\Runtime\UseOrdinalStringComparison.cs (1)
66
if (lastArgument.Value.
Kind
== OperationKind.FieldReference)
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInIFormatterSerializableObjectGraphAnalyzer.cs (1)
101
&& invocationOperation.Parent?.
Kind
== OperationKind.Conversion
Microsoft.NetCore.Analyzers\Security\DataSetDataTableInSerializableObjectGraphAnalyzer.cs (2)
158
&& invocationOperation.Parent?.
Kind
== OperationKind.Conversion
230
else if (invocationOperation.Parent?.
Kind
== OperationKind.Conversion
Microsoft.NetCore.Analyzers\Security\DoNotAlwaysSkipTokenValidationInDelegates.cs (3)
90
switch (delegateCreationOperation.Target.
Kind
)
122
Debug.Fail("Unhandled OperationKind " + delegateCreationOperation.Target.
Kind
);
205
if (descendant.
Kind
== OperationKind.Return)
Microsoft.NetCore.Analyzers\Security\DoNotDisableCertificateValidation.cs (2)
72
switch (delegateCreationOperation.Target.
Kind
)
161
if (descendant.
Kind
== OperationKind.Return)
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureCryptographicAlgorithms.cs (1)
83
Debug.Fail($"Unhandled IOperation {operationAnalysisContext.Operation.
Kind
}");
Microsoft.NetCore.Analyzers\Security\DoNotUseInsecureDeserializerJavascriptSerializerWithSimpleTypeResolver.cs (1)
124
&& (l.Creation == null || l.Creation.
Kind
!= OperationKind.ObjectCreation)))
Microsoft.NetCore.Analyzers\Security\SslProtocolsAnalyzer.cs (1)
146
Debug.Fail("Unhandled IOperation " + operationAnalysisContext.Operation.
Kind
);
Microsoft.NetCore.Analyzers\Security\UseContainerLevelAccessPolicy.cs (1)
155
var pointsToAbstractValue = pointsToAnalysisResult[argumentOperation.
Kind
, argumentOperation.Syntax];
Microsoft.NetCore.Analyzers\Security\UseSharedAccessProtocolHttpsOnly.cs (1)
154
var protocolsArgument = valueContentAnalysisResult[protocolsArgumentOperation.
Kind
, protocolsArgumentOperation.Syntax];
Microsoft.NetCore.Analyzers\Security\UseXmlReaderBase.cs (1)
62
switch (operation.
Kind
)
Microsoft.NetCore.Analyzers\Tasks\DoNotCreateTaskCompletionSourceWithWrongArguments.cs (1)
50
switch (operationContext.Operation.
Kind
)
Microsoft.NetCore.Analyzers\Tasks\UseValueTasksCorrectly.cs (6)
146
switch (operation.Parent.
Kind
)
388
switch (operation?.
Kind
)
439
op.Parent?.
Kind
switch
523
op.Parent?.
Kind
switch
539
switch (op.
Kind
)
565
op?.
Kind
switch
Microsoft.NetCore.Analyzers\Usage\DoNotPassNonNullableValueToArgumentNullExceptionThrowIfNull.cs (1)
67
|| invocation.Arguments[0].Value.WalkDownConversion().
Kind
is OperationKind.NameOf or OperationKind.ObjectCreation or OperationKind.ObjectOrCollectionInitializer)
Microsoft.NetFramework.Analyzers\DoNotUseInsecureDtdProcessing.cs (2)
224
switch (context.Operation.
Kind
)
606
else if (context.Operation?.Parent?.
Kind
!= OperationKind.ObjectOrCollectionInitializer)
Microsoft.NetFramework.Analyzers\DoNotUseInsecureDtdProcessingInApiDesign.cs (1)
515
if (propertyReference.Instance.
Kind
!= OperationKind.InstanceReference)
Microsoft.NetFramework.Analyzers\DoNotUseInsecureXSLTScriptExecution.cs (4)
186
RoslynDebug.Assert(invocationOrObjCreation.
Kind
is OperationKind.Invocation
196
var lhsSymbol = lhs.
Kind
switch
212
IMethodSymbol? rhsMethodSymbol = rhs.
Kind
switch
236
var arguments = rhs.
Kind
switch
src\11b41c7305441175\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (7)
222
&& (operation.Target.
Kind
== OperationKind.PropertyReference
223
|| operation.Target.
Kind
== OperationKind.FieldReference
224
|| operation.Target.
Kind
== OperationKind.FlowCaptureReference))
227
if (operation.Target.
Kind
== OperationKind.FlowCaptureReference)
274
if (propertyReferenceOperation == null && operation.Target.
Kind
== OperationKind.FlowCaptureReference)
705
if (flowCaptureReferenceOperation != null && flowCaptureReferenceOperation.
Kind
== OperationKind.FlowCaptureReference)
711
if (kinds == null || kinds.Contains(lValueOperation.
Kind
))
src\40daf5e1cab76dff\TaintedDataSymbolMapExtensions.cs (3)
69
pointsToAnalysisResult[o.
Kind
, o.Syntax]).ToImmutableArray()));
92
arguments.Select(o => pointsToAnalysisResult[o.
Kind
, o.Syntax]).ToImmutableArray(),
93
arguments.Select(o => valueContentAnalysisResult[o.
Kind
, o.Syntax]).ToImmutableArray()));
src\440320f3f10733a8\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (2)
188
return operation.
Kind
== OperationKind.None ?
244
var operationKind = operation.
Kind
== OperationKind.Increment ? BinaryOperatorKind.Add : BinaryOperatorKind.Subtract;
src\47c588c5b8785708\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
155
if (operation.
Kind
== OperationKind.ConditionalAccessInstance)
src\afc74d572e54ec72\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (3)
240
operation.
Kind
!= OperationKind.ObjectCreation &&
276
if (visitedInstance?.
Kind
!= OperationKind.InstanceReference)
400
operation.Instance?.
Kind
== OperationKind.InstanceReference)
src\ffd9070534249528\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (1)
721
target.
Kind
== OperationKind.ArrayElementReference)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
103
if ((operationBlock.
Kind
is OperationKind.None or OperationKind.Attribute) &&
134
switch (operation.
Kind
)
301
switch (operation.Parent.
Kind
)
319
return operation.
Kind
== OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0;
329
return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.
Kind
is not (OperationKind.Branch or OperationKind.Attribute)));
336
distinctOperatorKindsBuilder.Add(operation.
Kind
);
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
261
switch (operationBlock.
Kind
)
327
switch (operation.
Kind
)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IOperationExtensions.cs (12)
197
return operation.
Kind
== OperationKind.None && operation.Parent == null;
257
} while (ancestor != null && ancestor.
Kind
!= ancestorKind);
291
} while (ancestor != null && !ancestorKinds.Contains(ancestor.
Kind
));
329
for (IOperation? current = operation; current != null && current.
Kind
!= OperationKind.Block; current = current.Parent)
331
switch (current.
Kind
)
388
return operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
491
Debug.Assert(operation.
Kind
is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.
Kind
}");
514
switch (child.
Kind
)
605
switch (currentOperation.
Kind
)
1094
switch (operation.
Kind
)
1126
switch (operation.
Kind
)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\OperationBlockAnalysisContextExtension.cs (2)
25
if (operationBlocks.Length == 1 && operationBlocks[0].
Kind
== OperationKind.Block)
33
if (block.
Kind
== OperationKind.Block)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\Extensions\ControlFlowGraphExtensions.cs (2)
31
if (descendant?.
Kind
== operationKind)
45
cfg.OriginalOperation.
Kind
is OperationKind.Attribute or OperationKind.None or OperationKind.ParameterInitializer)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysisHelper.cs (1)
158
=> (s_DisposableCreationKinds.Contains(operation.
Kind
) ||
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResult.cs (3)
129
if (kvp.Key.
Kind
== operationKind && kvp.Key.Syntax == syntax)
169
Debug.Assert(lambdaOrLocalFunctionOperation.
Kind
is OperationKind.AnonymousFunction or OperationKind.LocalFunction);
188
if (lambdaOrLocalFunctionOperation.
Kind
== OperationKind.LocalFunction)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (14)
903
instance.
Kind
!= OperationKind.InstanceReference &&
1253
if (sourceOperand.
Kind
== OperationKind.Throw)
1386
Debug.Assert(operation.
Kind
is OperationKind.BinaryOperator or
1405
if (operation.
Kind
== OperationKind.FlowCaptureReference)
1429
if (operation.
Kind
== OperationKind.FlowCaptureReference)
1486
if (operation.
Kind
== OperationKind.Argument)
1495
switch (current.
Kind
)
1515
switch (current.
Kind
)
1560
switch (isPatternOperation.Pattern.
Kind
)
1638
Debug.Fail($"Unknown pattern kind '{isPatternOperation.Pattern.
Kind
}'");
2482
Debug.Assert(originalOperation.
Kind
== OperationKind.ObjectCreation);
2573
switch (operation.
Kind
)
2804
if (operation.
Kind
== OperationKind.None)
3825
Debug.Assert(operation.
Kind
== OperationKind.YieldReturn, "IReturnOperation must have been lowered in the CFG");
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 (31)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
102
if ((operationBlock.
Kind
is OperationKind.None or OperationKind.Attribute) &&
133
switch (operation.
Kind
)
300
switch (operation.Parent.
Kind
)
318
return operation.
Kind
== OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0;
328
return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.
Kind
is not (OperationKind.Branch or OperationKind.Attribute)));
335
distinctOperatorKindsBuilder.Add(operation.
Kind
);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
260
switch (operationBlock.
Kind
)
326
switch (operation.
Kind
)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122
return operation is {
Kind
: OperationKind.None, Parent: null };
143
} while (ancestor != null && ancestor.
Kind
!= ancestorKind);
177
} while (ancestor != null && !ancestorKinds.Contains(ancestor.
Kind
));
215
for (IOperation? current = operation; current != null && current.
Kind
!= OperationKind.Block; current = current.Parent)
217
switch (current.
Kind
)
320
Debug.Assert(operation.
Kind
is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.
Kind
}");
344
switch (child.
Kind
)
419
switch (currentOperation.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
244
switch (operation.
Kind
)
268
switch (current.
Kind
)
375
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
378
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
126
=> operation is IMemberReferenceOperation { Instance.
Kind
: OperationKind.InstanceReference };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
161
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
191
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
195
if (write.
Kind
!= OperationKind.FlowCaptureReference)
436
switch (currentOperation.
Kind
)
551
switch (target.
Kind
)
Microsoft.CodeAnalysis.Workspaces (17)
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
64
switch (operation.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
244
switch (operation.
Kind
)
268
switch (current.
Kind
)
375
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
378
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
126
=> operation is IMemberReferenceOperation { Instance.
Kind
: OperationKind.InstanceReference };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
161
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
191
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
195
if (write.
Kind
!= OperationKind.FlowCaptureReference)
436
switch (currentOperation.
Kind
)
551
switch (target.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } })
485
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
Roslyn.Diagnostics.Analyzers (38)
AbstractDoNotCopyValue.cs (4)
1127
&& target.
Kind
!= OperationKind.Discard
1366
switch (operation.
Kind
)
1569
_context.ReportDiagnostic(operation.Syntax.CreateDiagnostic(AvoidNullableWrapperRule, type, operation.
Kind
));
1645
var operationKind = operation.
Kind
;
src\b310f676f7308b7f\SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\ce8c1e82c1124a2b\AbstractInitializerParameterService.cs (1)
64
switch (operation.
Kind
)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
102
if ((operationBlock.
Kind
is OperationKind.None or OperationKind.Attribute) &&
133
switch (operation.
Kind
)
300
switch (operation.Parent.
Kind
)
318
return operation.
Kind
== OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0;
328
return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.
Kind
is not (OperationKind.Branch or OperationKind.Attribute)));
335
distinctOperatorKindsBuilder.Add(operation.
Kind
);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
260
switch (operationBlock.
Kind
)
326
switch (operation.
Kind
)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122
return operation is {
Kind
: OperationKind.None, Parent: null };
143
} while (ancestor != null && ancestor.
Kind
!= ancestorKind);
177
} while (ancestor != null && !ancestorKinds.Contains(ancestor.
Kind
));
215
for (IOperation? current = operation; current != null && current.
Kind
!= OperationKind.Block; current = current.Parent)
217
switch (current.
Kind
)
320
Debug.Assert(operation.
Kind
is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.
Kind
}");
344
switch (child.
Kind
)
419
switch (currentOperation.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
244
switch (operation.
Kind
)
268
switch (current.
Kind
)
375
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
378
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
126
=> operation is IMemberReferenceOperation { Instance.
Kind
: OperationKind.InstanceReference };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
161
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
191
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
195
if (write.
Kind
!= OperationKind.FlowCaptureReference)
436
switch (currentOperation.
Kind
)
551
switch (target.
Kind
)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } })
485
operation is {
Kind
: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
Roslyn.Diagnostics.CSharp.Analyzers (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
91
Kind
: OperationKind.MethodReference,
92
Parent.
Kind
: OperationKind.DelegateCreation,
1351
if (oldInterpolationPart.
Kind
!= newInterpolationPart.
Kind
)
System.Private.CoreLib.Generators (2)
IntrinsicsInSystemPrivateCoreLibAnalyzer.cs (2)
493
if (operationSearch.
Kind
== OperationKind.AnonymousFunction)
498
if (operationSearch.
Kind
== OperationKind.LocalFunction)