129 implementations of Kind
Microsoft.CodeAnalysis (129)
Generated\Operations.Generated.cs (123)
3679
public override OperationKind
Kind
=> OperationKind.Block;
3734
public override OperationKind
Kind
=> OperationKind.VariableDeclarationGroup;
3804
public override OperationKind
Kind
=> OperationKind.Switch;
3910
public override OperationKind
Kind
=> OperationKind.Loop;
4002
public override OperationKind
Kind
=> OperationKind.Loop;
4114
public override OperationKind
Kind
=> OperationKind.Loop;
4138
public override OperationKind
Kind
=> OperationKind.Loop;
4191
public override OperationKind
Kind
=> OperationKind.Labeled;
4211
public override OperationKind
Kind
=> OperationKind.Branch;
4225
public override OperationKind
Kind
=> OperationKind.Empty;
4277
public override OperationKind
Kind
{ get; }
4341
public override OperationKind
Kind
=> OperationKind.Lock;
4420
public override OperationKind
Kind
=> OperationKind.Try;
4488
public override OperationKind
Kind
=> OperationKind.Using;
4539
public override OperationKind
Kind
=> OperationKind.ExpressionStatement;
4603
public override OperationKind
Kind
=> OperationKind.LocalFunction;
4617
public override OperationKind
Kind
=> OperationKind.Stop;
4631
public override OperationKind
Kind
=> OperationKind.End;
4697
public override OperationKind
Kind
=> OperationKind.RaiseEvent;
4715
public override OperationKind
Kind
=> OperationKind.Literal;
4775
public override OperationKind
Kind
=> OperationKind.Conversion;
4848
public override OperationKind
Kind
=> OperationKind.Invocation;
4915
public override OperationKind
Kind
=> OperationKind.ArrayElementReference;
4937
public override OperationKind
Kind
=> OperationKind.LocalReference;
4956
public override OperationKind
Kind
=> OperationKind.ParameterReference;
5021
public override OperationKind
Kind
=> OperationKind.FieldReference;
5077
public override OperationKind
Kind
=> OperationKind.MethodReference;
5146
public override OperationKind
Kind
=> OperationKind.PropertyReference;
5200
public override OperationKind
Kind
=> OperationKind.EventReference;
5263
public override OperationKind
Kind
=> OperationKind.Unary;
5341
public override OperationKind
Kind
=> OperationKind.Binary;
5418
public override OperationKind
Kind
=> OperationKind.Conditional;
5485
public override OperationKind
Kind
=> OperationKind.Coalesce;
5538
public override OperationKind
Kind
=> OperationKind.AnonymousFunction;
5608
public override OperationKind
Kind
=> OperationKind.ObjectCreation;
5660
public override OperationKind
Kind
=> OperationKind.TypeParameterObjectCreation;
5727
public override OperationKind
Kind
=> OperationKind.ArrayCreation;
5746
public override OperationKind
Kind
=> OperationKind.InstanceReference;
5802
public override OperationKind
Kind
=> OperationKind.IsType;
5854
public override OperationKind
Kind
=> OperationKind.Await;
5927
public override OperationKind
Kind
=> OperationKind.SimpleAssignment;
6002
public override OperationKind
Kind
=> OperationKind.CompoundAssignment;
6055
public override OperationKind
Kind
=> OperationKind.Parenthesized;
6120
public override OperationKind
Kind
=> OperationKind.EventAssignment;
6183
public override OperationKind
Kind
=> OperationKind.ConditionalAccess;
6200
public override OperationKind
Kind
=> OperationKind.ConditionalAccessInstance;
6257
public override OperationKind
Kind
=> OperationKind.InterpolatedString;
6313
public override OperationKind
Kind
=> OperationKind.AnonymousObjectCreation;
6369
public override OperationKind
Kind
=> OperationKind.ObjectOrCollectionInitializer;
6432
public override OperationKind
Kind
=> OperationKind.MemberInitializer;
6485
public override OperationKind
Kind
=> OperationKind.NameOf;
6543
public override OperationKind
Kind
=> OperationKind.Tuple;
6601
public override OperationKind
Kind
=> OperationKind.DynamicMemberReference;
6653
public override OperationKind
Kind
=> OperationKind.TranslatedQuery;
6705
public override OperationKind
Kind
=> OperationKind.DelegateCreation;
6723
public override OperationKind
Kind
=> OperationKind.DefaultValue;
6742
public override OperationKind
Kind
=> OperationKind.TypeOf;
6762
public override OperationKind
Kind
=> OperationKind.SizeOf;
6814
public override OperationKind
Kind
=> OperationKind.AddressOf;
6877
public override OperationKind
Kind
=> OperationKind.IsPattern;
6940
public override OperationKind
Kind
{ get; }
6992
public override OperationKind
Kind
=> OperationKind.Throw;
7051
public override OperationKind
Kind
=> OperationKind.DeconstructionAssignment;
7103
public override OperationKind
Kind
=> OperationKind.DeclarationExpression;
7120
public override OperationKind
Kind
=> OperationKind.OmittedArgument;
7182
public override OperationKind
Kind
=> OperationKind.FieldInitializer;
7229
public override OperationKind
Kind
=> OperationKind.VariableInitializer;
7280
public override OperationKind
Kind
=> OperationKind.PropertyInitializer;
7331
public override OperationKind
Kind
=> OperationKind.ParameterInitializer;
7386
public override OperationKind
Kind
=> OperationKind.ArrayInitializer;
7454
public override OperationKind
Kind
=> OperationKind.VariableDeclarator;
7535
public override OperationKind
Kind
=> OperationKind.VariableDeclaration;
7596
public override OperationKind
Kind
=> OperationKind.Argument;
7673
public override OperationKind
Kind
=> OperationKind.CatchClause;
7747
public override OperationKind
Kind
=> OperationKind.SwitchCase;
7771
public override OperationKind
Kind
=> OperationKind.CaseClause;
7834
public override OperationKind
Kind
=> OperationKind.CaseClause;
7896
public override OperationKind
Kind
=> OperationKind.CaseClause;
7949
public override OperationKind
Kind
=> OperationKind.CaseClause;
8000
public override OperationKind
Kind
=> OperationKind.CaseClause;
8056
public override OperationKind
Kind
=> OperationKind.InterpolatedStringText;
8129
public override OperationKind
Kind
=> OperationKind.Interpolation;
8191
public override OperationKind
Kind
=> OperationKind.ConstantPattern;
8213
public override OperationKind
Kind
=> OperationKind.DeclarationPattern;
8278
public override OperationKind
Kind
=> OperationKind.TupleBinary;
8345
public override OperationKind
Kind
=> OperationKind.MethodBody;
8416
public override OperationKind
Kind
=> OperationKind.ConstructorBody;
8435
public override OperationKind
Kind
=> OperationKind.Discard;
8488
public override OperationKind
Kind
=> OperationKind.FlowCapture;
8510
public override OperationKind
Kind
=> OperationKind.FlowCaptureReference;
8563
public override OperationKind
Kind
=> OperationKind.IsNull;
8580
public override OperationKind
Kind
=> OperationKind.CaughtException;
8599
public override OperationKind
Kind
=> OperationKind.StaticLocalInitializationSemaphore;
8658
public override OperationKind
Kind
=> OperationKind.CoalesceAssignment;
8725
public override OperationKind
Kind
=> OperationKind.Range;
8782
public override OperationKind
Kind
=> OperationKind.ReDim;
8848
public override OperationKind
Kind
=> OperationKind.ReDimClause;
8924
public override OperationKind
Kind
=> OperationKind.RecursivePattern;
8938
public override OperationKind
Kind
=> OperationKind.DiscardPattern;
9007
public override OperationKind
Kind
=> OperationKind.SwitchExpression;
9082
public override OperationKind
Kind
=> OperationKind.SwitchExpressionArm;
9144
public override OperationKind
Kind
=> OperationKind.PropertySubpattern;
9207
public override OperationKind
Kind
=> OperationKind.None;
9271
public override OperationKind
Kind
=> OperationKind.None;
9323
public override OperationKind
Kind
=> OperationKind.None;
9342
public override OperationKind
Kind
=> OperationKind.None;
9404
public override OperationKind
Kind
=> OperationKind.None;
9459
public override OperationKind
Kind
=> OperationKind.UsingDeclaration;
9510
public override OperationKind
Kind
=> OperationKind.NegatedPattern;
9574
public override OperationKind
Kind
=> OperationKind.BinaryPattern;
9592
public override OperationKind
Kind
=> OperationKind.TypePattern;
9645
public override OperationKind
Kind
=> OperationKind.RelationalPattern;
9710
public override OperationKind
Kind
=> OperationKind.With;
9777
public override OperationKind
Kind
=> OperationKind.InterpolatedStringHandlerCreation;
9839
public override OperationKind
Kind
=> OperationKind.InterpolatedStringAddition;
9891
public override OperationKind
Kind
{ get; }
9911
public override OperationKind
Kind
=> OperationKind.InterpolatedStringHandlerArgumentPlaceholder;
9978
public override OperationKind
Kind
=> OperationKind.FunctionPointerInvocation;
10039
public override OperationKind
Kind
=> OperationKind.ListPattern;
10092
public override OperationKind
Kind
=> OperationKind.SlicePattern;
10159
public override OperationKind
Kind
=> OperationKind.ImplicitIndexerReference;
10178
public override OperationKind
Kind
=> OperationKind.Utf8String;
10229
public override OperationKind
Kind
=> OperationKind.Attribute;
Operations\Operation.cs (1)
66
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;
479 references to Kind
Microsoft.CodeAnalysis (84)
DiagnosticAnalyzer\AnalysisContextInfo.cs (1)
85
sb.AppendLine($"{nameof(IOperation)}: {_operation.
Kind
}");
DiagnosticAnalyzer\AnalyzerDriver.cs (4)
2830
switch (operationBlock.Parent.
Kind
)
2840
Debug.Assert(operationBlock.
Kind
== OperationKind.Invocation);
2851
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)
1095
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 (73)
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
)
861
value.
Kind
!= OperationKind.LocalReference ||
1280
|| slot.operationOpt.
Kind
== OperationKind.FlowCaptureReference
1281
|| slot.operationOpt.
Kind
== OperationKind.DeclarationExpression
1282
|| slot.operationOpt.
Kind
== OperationKind.Discard
1283
|| slot.operationOpt.
Kind
== OperationKind.OmittedArgument));
1613
if (operation.WhenTrue is IConversionOperation whenTrueConversion && whenTrueConversion.Operand.
Kind
== OperationKind.Throw)
1616
Debug.Assert(rewrittenThrow!.
Kind
== OperationKind.None);
1625
else if (operation.WhenFalse is IConversionOperation whenFalseConversion && whenFalseConversion.Operand.
Kind
== OperationKind.Throw)
1634
Debug.Assert(rewrittenThrow.
Kind
== OperationKind.None);
1681
if (result.
Kind
!= OperationKind.FlowCaptureReference ||
1843
if (operationOpt.
Kind
!= OperationKind.FlowCaptureReference
1844
&& operationOpt.
Kind
!= OperationKind.DeclarationExpression
1845
&& operationOpt.
Kind
!= OperationKind.Discard
1846
&& operationOpt.
Kind
!= OperationKind.OmittedArgument)
2708
if (condition.
Kind
== OperationKind.Binary)
2770
switch (condition.
Kind
)
2908
if (conversion.Operand.
Kind
== OperationKind.Throw)
2912
Debug.Assert(rewrittenThrow.
Kind
== OperationKind.None);
2935
while (condition.
Kind
== OperationKind.Parenthesized)
3028
bool alternativeThrows = conversion?.Operand.
Kind
== OperationKind.Throw;
3054
Debug.Assert(rewrittenThrow.
Kind
== OperationKind.None);
3087
bool isStatement = _currentStatement == operation || operation.Parent.
Kind
== OperationKind.ExpressionStatement;
3350
bool isOnStatementLevel = _currentStatement == operation || (_currentStatement == operation.Parent && _currentStatement?.
Kind
== OperationKind.ExpressionStatement);
3545
Debug.Assert(operation.Operation.
Kind
== OperationKind.ConditionalAccess || operation.Operation.
Kind
== OperationKind.CoalesceAssignment);
3548
else if (operation.Operation.
Kind
== OperationKind.Throw)
3774
if (exceptionDeclarationOrExpression.
Kind
== OperationKind.VariableDeclarator)
3815
switch (operation.
Kind
)
3832
throw ExceptionUtilities.UnexpectedValue(operation.
Kind
);
3965
Debug.Assert(resources.
Kind
!= OperationKind.VariableDeclaration);
3966
Debug.Assert(resources.
Kind
!= OperationKind.VariableDeclarator);
4383
if (!operation.Locals.IsEmpty && operation.LoopControlVariable.
Kind
== OperationKind.VariableDeclarator)
4559
switch (operation.LoopControlVariable.
Kind
)
5258
Debug.Assert(controlVariableReferenceForAssignment.
Kind
== OperationKind.FlowCaptureReference);
5328
switch (operation.LoopControlVariable.
Kind
)
5642
if (initialization.Length == 1 && initialization[0].
Kind
== OperationKind.VariableDeclarationGroup)
5950
switch (innerInitializer.
Kind
)
5968
Debug.Assert(validKinds.Contains(innerInitializer.
Kind
));
6054
switch (instance.
Kind
)
6061
if (memberReference.
Kind
== OperationKind.PropertyReference)
6107
Debug.Assert(instance.
Kind
== OperationKind.Invalid || instance.
Kind
== OperationKind.None);
6115
switch (originalTarget.
Kind
)
6153
throw ExceptionUtilities.UnexpectedValue(originalTarget.
Kind
);
6196
Debug.Assert(propertyReference.Instance.
Kind
== OperationKind.InstanceReference);
6307
if (elementValue.
Kind
== OperationKind.ArrayInitializer)
6326
if (elementValue.
Kind
== OperationKind.ArrayInitializer)
6374
if (operation.Operation.
Kind
== OperationKind.DynamicMemberReference)
6390
if (operation.Operation.
Kind
== OperationKind.DynamicMemberReference)
6435
if (value.
Kind
== OperationKind.Tuple)
6455
if (value.
Kind
== OperationKind.Tuple)
6676
throw ExceptionUtilities.UnexpectedValue(currentAddition.Left.
Kind
);
6688
throw ExceptionUtilities.UnexpectedValue(currentAddition.Left.
Kind
);
6795
if (element.
Kind
== OperationKind.Interpolation)
6836
throw ExceptionUtilities.UnexpectedValue(element.
Kind
);
7091
switch (current.
Kind
)
7132
operation.
Kind
, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation));
7210
if (children.Count != 0 && children.Last().
Kind
== OperationKind.ObjectOrCollectionInitializer)
7557
if (statement.
Kind
== OperationKind.LocalFunction)
7721
if (simpleAssignment.Target.
Kind
!= OperationKind.PropertyReference)
7733
Debug.Assert(propertyReference.Instance.
Kind
== OperationKind.InstanceReference);
7814
if (simpleAssignment.Target.
Kind
!= OperationKind.PropertyReference)
Operations\OperationMapBuilder.cs (2)
69
$"Duplicate operation node for {operation.Syntax}. Existing node is {(argument.TryGetValue(operation.Syntax, out var original) ? 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.CodeStyle (33)
AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (1)
247
if (fieldReference.Instance?.
Kind
!= OperationKind.InstanceReference ||
AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (2)
90
if (instanceOperation.
Kind
!= OperationKind.InstanceReference)
94
if (context.Operation.Parent?.
Kind
== OperationKind.PropertySubpattern)
AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (1)
93
if (operand.ConstantValue.HasValue && operand.
Kind
== OperationKind.Literal &&
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (11)
225
Debug.Assert(operation.
Kind
is OperationKind.DelegateCreation or OperationKind.AnonymousFunction);
241
(assignment.Target.
Kind
== OperationKind.LocalReference ||
242
assignment.Target.
Kind
== OperationKind.ParameterReference))
250
if (operation.
Kind
== OperationKind.AnonymousFunction &&
274
Debug.Assert(operation.
Kind
is OperationKind.LocalReference or OperationKind.ParameterReference);
308
(assignmentOperation.Target.
Kind
== OperationKind.LocalReference ||
309
assignmentOperation.Target.
Kind
== OperationKind.ParameterReference))
334
switch (operationBlock.
Kind
)
356
if (operation.
Kind
== OperationKind.None)
627
switch (assignmentValue.
Kind
)
638
return fieldReference.Instance == null || fieldReference.Instance.
Kind
== OperationKind.InstanceReference;
AbstractSimplifyInterpolationHelpers.cs (1)
212
: alignmentOp is {
Kind
: OperationKind.Literal })
ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
235
switch (operation.
Kind
)
259
switch (current.
Kind
)
366
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
369
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
192
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
SymbolUsageAnalysis.Walker.cs (6)
154
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
162
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
192
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
196
if (write.
Kind
!= OperationKind.FlowCaptureReference)
409
switch (currentOperation.
Kind
)
524
switch (target.
Kind
)
UseConditionalExpressionForReturnHelpers.cs (4)
89
trueReturn.
Kind
!= falseReturn.
Kind
)
96
if (trueReturn?.
Kind
== OperationKind.YieldBreak)
103
if (trueReturn?.
Kind
== OperationKind.YieldReturn &&
Microsoft.CodeAnalysis.CodeStyle.Fixes (3)
AbstractUseConditionalExpressionForReturnCodeFixProvider.cs (1)
76
var returnStatement = anyReturn.
Kind
== OperationKind.YieldReturn
SyntaxGeneratorExtensions_Negate.cs (2)
451
if (operation?.
Kind
== OperationKind.Literal && operation.ConstantValue.HasValue && operation.ConstantValue.Value is true)
455
else if (operation?.
Kind
== OperationKind.Literal && operation.ConstantValue.HasValue && operation.ConstantValue.Value is false)
Microsoft.CodeAnalysis.CSharp.CodeStyle (2)
CastSimplifier.cs (2)
90
Kind
: OperationKind.MethodReference,
91
Parent.
Kind
: OperationKind.DelegateCreation,
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (2)
CodeGen\CodeGenLocalFunctionTests.cs (2)
161
Assert.Equal(OperationKind.ExpressionStatement, objectCreationOperation.Parent.
Kind
);
162
Assert.Equal(OperationKind.Block, objectCreationOperation.Parent.Parent.
Kind
);
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (2)
Diagnostics\GetDiagnosticsTests.cs (2)
1257
AssertEx.All(analyzer.AnalyzedOperations, operation => operation.
Kind
== OperationKind.VariableDeclaration);
1261
AssertEx.All(analyzer.AnalyzedOperationsInsideOperationBlock, operation => operation.
Kind
== OperationKind.VariableDeclaration);
Microsoft.CodeAnalysis.CSharp.Features (2)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (1)
65
var v => throw ExceptionUtilities.UnexpectedValue(v.
Kind
)
ConvertLinq\CSharpConvertLinqQueryToForEachProvider.cs (1)
924
return operation.
Kind
is OperationKind.LocalReference or OperationKind.ParameterReference;
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (16)
IOperation\IOperationTests.cs (6)
467
Assert.Equal(OperationKind.DeconstructionAssignment, operation1.
Kind
);
473
Assert.Equal(OperationKind.DeconstructionAssignment, operation2.
Kind
);
479
Assert.Equal(OperationKind.DeconstructionAssignment, operation3.
Kind
);
513
Assert.Equal(OperationKind.ExpressionStatement, operation.
Kind
);
562
Assert.Equal(OperationKind.FieldReference, operation.
Kind
);
689
Assert.Equal(expectedRootOperationKind, operation.
Kind
);
IOperation\IOperationTests_IConversionExpression.cs (2)
183
Assert.Equal(OperationKind.Invalid, initializerOperation.
Kind
);
5246
if (operation.
Kind
== OperationKind.Conversion)
IOperation\IOperationTests_IVariableDeclaration.cs (8)
614
Assert.Equal(OperationKind.Literal, declarator.ChildOperations.First().
Kind
);
615
Assert.Equal(OperationKind.VariableInitializer, declarator.ChildOperations.ElementAt(1).
Kind
);
636
Assert.Equal(OperationKind.Literal, declarator.ChildOperations.First().
Kind
);
657
Assert.Equal(OperationKind.VariableInitializer, declarator.ChildOperations.ElementAt(0).
Kind
);
852
Assert.Equal(OperationKind.Literal, declaration.ChildOperations.First().
Kind
);
853
Assert.Equal(OperationKind.VariableDeclarator, declaration.ChildOperations.ElementAt(1).
Kind
);
874
Assert.Equal(OperationKind.Literal, declaration.ChildOperations.First().
Kind
);
875
Assert.Equal(OperationKind.VariableDeclarator, declaration.ChildOperations.ElementAt(1).
Kind
);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (68)
Semantics\OutVarTests.cs (3)
35940
Assert.Equal(OperationKind.ExpressionStatement, initializerOperation.Parent.
Kind
);
35963
Assert.Equal(OperationKind.ConstructorBody, blockBodyOperation.Parent.
Kind
);
36084
Assert.Equal(OperationKind.MethodBody, expressionBodyOperation.Parent.
Kind
);
Semantics\PrimaryConstructorTests.cs (32)
3933
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
3936
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
3944
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
3947
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
3950
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[2].
Kind
);
3958
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
3961
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
3964
Assert.Equal(OperationKind.Block, context.OperationBlocks[2].
Kind
);
3966
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[3].
Kind
);
3973
Assert.Equal(OperationKind.Block, context.OperationBlocks[0].
Kind
);
4067
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
4070
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
4080
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
4083
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
4086
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[2].
Kind
);
4096
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
4099
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
4102
Assert.Equal(OperationKind.Block, context.OperationBlocks[2].
Kind
);
4104
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[3].
Kind
);
4113
Assert.Equal(OperationKind.Block, context.OperationBlocks[0].
Kind
);
4141
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
4144
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
4152
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
4155
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
4158
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[2].
Kind
);
4166
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
4169
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
4172
Assert.Equal(OperationKind.Block, context.OperationBlocks[2].
Kind
);
4174
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[3].
Kind
);
4181
Assert.Equal(OperationKind.Block, context.OperationBlocks[0].
Kind
);
5209
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
5212
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
Semantics\RecordStructTests.cs (2)
6486
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
6489
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
Semantics\RecordTests.cs (30)
26994
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
26997
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27005
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
27008
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27011
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[2].
Kind
);
27019
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
27022
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27025
Assert.Equal(OperationKind.Block, context.OperationBlocks[2].
Kind
);
27027
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[3].
Kind
);
27034
Assert.Equal(OperationKind.Block, context.OperationBlocks[0].
Kind
);
27128
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
27131
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27141
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
27144
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27147
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[2].
Kind
);
27157
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
27160
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27163
Assert.Equal(OperationKind.Block, context.OperationBlocks[2].
Kind
);
27165
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[3].
Kind
);
27174
Assert.Equal(OperationKind.Block, context.OperationBlocks[0].
Kind
);
27202
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
27205
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27213
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
27216
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27219
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[2].
Kind
);
27227
Assert.Equal(OperationKind.ParameterInitializer, context.OperationBlocks[0].
Kind
);
27230
Assert.Equal(OperationKind.Attribute, context.OperationBlocks[1].
Kind
);
27233
Assert.Equal(OperationKind.Block, context.OperationBlocks[2].
Kind
);
27235
Assert.Equal(OperationKind.Invocation, context.OperationBlocks[3].
Kind
);
27242
Assert.Equal(OperationKind.Block, context.OperationBlocks[0].
Kind
);
Semantics\TopLevelStatementsTests.cs (1)
9669
Assert.Equal(OperationKind.Literal, model.GetOperation(tree.GetRoot().DescendantNodes().OfType<LiteralExpressionSyntax>().Single()).
Kind
);
Microsoft.CodeAnalysis.CSharp.Workspaces (2)
CastSimplifier.cs (2)
90
Kind
: OperationKind.MethodReference,
91
Parent.
Kind
: OperationKind.DelegateCreation,
Microsoft.CodeAnalysis.Features (28)
AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (1)
247
if (fieldReference.Instance?.
Kind
!= OperationKind.InstanceReference ||
AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (2)
90
if (instanceOperation.
Kind
!= OperationKind.InstanceReference)
94
if (context.Operation.Parent?.
Kind
== OperationKind.PropertySubpattern)
AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (1)
93
if (operand.ConstantValue.HasValue && operand.
Kind
== OperationKind.Literal &&
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (11)
225
Debug.Assert(operation.
Kind
is OperationKind.DelegateCreation or OperationKind.AnonymousFunction);
241
(assignment.Target.
Kind
== OperationKind.LocalReference ||
242
assignment.Target.
Kind
== OperationKind.ParameterReference))
250
if (operation.
Kind
== OperationKind.AnonymousFunction &&
274
Debug.Assert(operation.
Kind
is OperationKind.LocalReference or OperationKind.ParameterReference);
308
(assignmentOperation.Target.
Kind
== OperationKind.LocalReference ||
309
assignmentOperation.Target.
Kind
== OperationKind.ParameterReference))
334
switch (operationBlock.
Kind
)
356
if (operation.
Kind
== OperationKind.None)
627
switch (assignmentValue.
Kind
)
638
return fieldReference.Instance == null || fieldReference.Instance.
Kind
== OperationKind.InstanceReference;
AbstractSimplifyInterpolationHelpers.cs (1)
212
: alignmentOp is {
Kind
: OperationKind.Literal })
AbstractUseConditionalExpressionForReturnCodeFixProvider.cs (1)
76
var returnStatement = anyReturn.
Kind
== OperationKind.YieldReturn
ConvertForEachToFor\AbstractConvertForEachToForCodeRefactoringProvider.cs (1)
374
switch (operation.
Kind
)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.cs (1)
145
return op.
Kind
;
InitializeParameter\AbstractInitializeParameterCodeRefactoringProvider.cs (1)
172
switch (operation.
Kind
)
InlineMethod\AbstractInlineMethodRefactoringProvider.InlineContext.cs (1)
428
if (operation.
Kind
is OperationKind.AnonymousFunction or OperationKind.LocalFunction)
IntroduceParameter\AbstractIntroduceParameterCodeRefactoringProvider.cs (1)
220
containsClassSpecificStatement = operation.Descendants().Any(op => op.
Kind
== OperationKind.InstanceReference);
IntroduceUsingStatement\AbstractIntroduceUsingStatementCodeRefactoringProvider.cs (1)
91
if (initializer is null || initializer.
Kind
== OperationKind.Invalid)
IntroduceVariable\AbstractIntroduceVariableService.cs (1)
373
memberReferenceOperation.Instance?.
Kind
== OperationKind.InstanceReference;
UseConditionalExpressionForReturnHelpers.cs (4)
89
trueReturn.
Kind
!= falseReturn.
Kind
)
96
if (trueReturn?.
Kind
== OperationKind.YieldBreak)
103
if (trueReturn?.
Kind
== OperationKind.YieldReturn &&
Microsoft.CodeAnalysis.Test.Utilities (199)
Compilation\ControlFlowGraphVerifier.cs (12)
33
operationRoot = operationRoot.
Kind
== OperationKind.Block &&
34
(operationRoot.Parent?.
Kind
== OperationKind.ConstructorBody ||
35
operationRoot.Parent?.
Kind
== OperationKind.MethodBody) ?
738
query.Operation.
Kind
== OperationKind.AnonymousObjectCreation)
1080
if (operation.Parent == null && operation is IsNullOperation isNull && isNull.Operand.
Kind
== OperationKind.FlowCaptureReference)
1549
Assert.Equal(OperationKind.LocalFunction, g.OriginalOperation.
Kind
);
1659
Assert.True(CanBeInControlFlowGraph(root), $"Unexpected node kind OperationKind.{root.
Kind
}");
1667
Assert.True(CanBeInControlFlowGraph(operation), $"Unexpected node kind OperationKind.{operation.
Kind
}");
1851
Assert.Equal(OperationKind.AnonymousFunction, g.OriginalOperation.
Kind
);
1860
switch (n.
Kind
)
1922
simpleAssignment.Parent.
Kind
== OperationKind.AnonymousObjectCreation);
2007
Assert.True(false, $"Unhandled node kind OperationKind.{n.
Kind
}");
Compilation\OperationTreeVerifier.cs (12)
103
LogString($"{nameof(OperationKind)}.{GetKindText(operation.
Kind
)}");
180
var operationKind = (int)operation.
Kind
;
400
if (!children.IsEmpty || operation.
Kind
!= OperationKind.None)
627
Assert.Equal(OperationKind.Loop, operation.
Kind
);
760
Assert.NotEqual(OperationKind.VariableDeclaration, operation.Resources.
Kind
);
761
Assert.NotEqual(OperationKind.VariableDeclarator, operation.Resources.
Kind
);
1452
Assert.Equal(OperationKind.InstanceReference, propertyReference.Instance.
Kind
);
1785
Assert.Equal(OperationKind.CaseClause, operation.
Kind
);
1873
if (operation.Text.
Kind
!= OperationKind.Literal)
1875
Assert.Equal(OperationKind.Literal, ((IConversionOperation)operation.Text).Operand.
Kind
);
1889
if (operation.FormatString != null && operation.FormatString.
Kind
!= OperationKind.Literal)
1891
Assert.Equal(OperationKind.Literal, ((IConversionOperation)operation.FormatString).Operand.
Kind
);
Compilation\TestOperationVisitor.cs (137)
39
Assert.Equal(OperationKind.None, operation.
Kind
);
55
Assert.Equal(OperationKind.None, operation.
Kind
);
119
Assert.Equal(OperationKind.Block, operation.
Kind
);
127
Assert.Equal(OperationKind.VariableDeclarationGroup, operation.
Kind
);
133
Assert.Equal(OperationKind.VariableDeclarator, operation.
Kind
);
148
Assert.Equal(OperationKind.VariableDeclaration, operation.
Kind
);
162
Assert.Equal(OperationKind.Switch, operation.
Kind
);
170
Assert.Equal(OperationKind.SwitchCase, operation.
Kind
);
222
Assert.Equal(OperationKind.CaseClause, operation.
Kind
);
359
Assert.Equal(OperationKind.Loop, operation.
Kind
);
367
Assert.Equal(OperationKind.Labeled, operation.
Kind
);
382
Assert.Equal(OperationKind.Branch, operation.
Kind
);
401
Assert.Equal(OperationKind.Empty, operation.
Kind
);
407
Assert.Contains(operation.
Kind
, new[] { OperationKind.Return, OperationKind.YieldReturn, OperationKind.YieldBreak });
410
Assert.NotEqual(OperationKind.YieldReturn, operation.
Kind
);
421
Assert.Equal(OperationKind.Lock, operation.
Kind
);
427
Assert.Equal(OperationKind.Try, operation.
Kind
);
441
Assert.Equal(OperationKind.CatchClause, operation.
Kind
);
462
Assert.Equal(OperationKind.Using, operation.
Kind
);
465
Assert.NotEqual(OperationKind.VariableDeclaration, operation.Resources.
Kind
);
466
Assert.NotEqual(OperationKind.VariableDeclarator, operation.Resources.
Kind
);
482
Assert.Equal(OperationKind.None, operation.
Kind
);
489
Assert.Equal(OperationKind.None, operation.
Kind
);
495
Assert.Equal(OperationKind.ExpressionStatement, operation.
Kind
);
501
Assert.Equal(OperationKind.None, operation.
Kind
);
507
Assert.Equal(OperationKind.Stop, operation.
Kind
);
513
Assert.Equal(OperationKind.End, operation.
Kind
);
519
Assert.Equal(OperationKind.Invocation, operation.
Kind
);
552
Assert.Equal(OperationKind.FunctionPointerInvocation, operation.
Kind
);
566
Assert.Equal(OperationKind.Argument, operation.
Kind
);
582
Assert.Equal(OperationKind.OmittedArgument, operation.
Kind
);
588
Assert.Equal(OperationKind.ArrayElementReference, operation.
Kind
);
594
Assert.Equal(OperationKind.ImplicitIndexerReference, operation.
Kind
);
603
Assert.Equal(OperationKind.None, operation.
Kind
);
609
Assert.Equal(OperationKind.LocalReference, operation.
Kind
);
617
Assert.Equal(OperationKind.ParameterReference, operation.
Kind
);
624
Assert.Equal(OperationKind.InstanceReference, operation.
Kind
);
663
Assert.Equal(OperationKind.FieldReference, operation.
Kind
);
673
Assert.Equal(OperationKind.MethodReference, operation.
Kind
);
687
Assert.Equal(OperationKind.PropertyReference, operation.
Kind
);
695
Assert.Equal(OperationKind.EventReference, operation.
Kind
);
703
Assert.Equal(OperationKind.EventAssignment, operation.
Kind
);
710
Assert.Equal(OperationKind.ConditionalAccess, operation.
Kind
);
717
Assert.Equal(OperationKind.ConditionalAccessInstance, operation.
Kind
);
723
Assert.Equal(OperationKind.None, operation.
Kind
);
729
Assert.Equal(OperationKind.UnaryOperator, operation.
Kind
);
730
Assert.Equal(OperationKind.Unary, operation.
Kind
);
744
Assert.Equal(OperationKind.BinaryOperator, operation.
Kind
);
745
Assert.Equal(OperationKind.Binary, operation.
Kind
);
813
Assert.Equal(OperationKind.TupleBinaryOperator, operation.
Kind
);
814
Assert.Equal(OperationKind.TupleBinary, operation.
Kind
);
822
Assert.Equal(OperationKind.Conversion, operation.
Kind
);
870
Assert.Equal(OperationKind.Conditional, operation.
Kind
);
885
Assert.Equal(OperationKind.Coalesce, operation.
Kind
);
892
Assert.Equal(OperationKind.CoalesceAssignment, operation.
Kind
);
898
Assert.Equal(OperationKind.IsType, operation.
Kind
);
906
Assert.Equal(OperationKind.SizeOf, operation.
Kind
);
913
Assert.Equal(OperationKind.TypeOf, operation.
Kind
);
920
Assert.Equal(OperationKind.AnonymousFunction, operation.
Kind
);
927
Assert.Equal(OperationKind.FlowAnonymousFunction, operation.
Kind
);
934
Assert.Equal(OperationKind.LocalFunction, operation.
Kind
);
960
Assert.Equal(OperationKind.Literal, operation.
Kind
);
966
Assert.Equal(OperationKind.Utf8String, operation.
Kind
);
973
Assert.Equal(OperationKind.Await, operation.
Kind
);
979
Assert.Equal(OperationKind.NameOf, operation.
Kind
);
985
Assert.Equal(OperationKind.Throw, operation.
Kind
);
998
Assert.Equal(OperationKind.AddressOf, operation.
Kind
);
1004
Assert.Equal(OperationKind.ObjectCreation, operation.
Kind
);
1029
Assert.Equal(OperationKind.AnonymousObjectCreation, operation.
Kind
);
1036
Assert.Equal(OperationKind.InstanceReference, propertyReference.Instance.
Kind
);
1043
Assert.Equal(OperationKind.DynamicObjectCreation, operation.
Kind
);
1056
Assert.Equal(OperationKind.DynamicInvocation, operation.
Kind
);
1062
Assert.Equal(OperationKind.DynamicIndexerAccess, operation.
Kind
);
1068
Assert.Equal(OperationKind.ObjectOrCollectionInitializer, operation.
Kind
);
1074
Assert.Equal(OperationKind.MemberInitializer, operation.
Kind
);
1086
Assert.Equal(OperationKind.FieldInitializer, operation.
Kind
);
1096
Assert.Equal(OperationKind.VariableInitializer, operation.
Kind
);
1103
Assert.Equal(OperationKind.PropertyInitializer, operation.
Kind
);
1113
Assert.Equal(OperationKind.ParameterInitializer, operation.
Kind
);
1120
Assert.Equal(OperationKind.ArrayCreation, operation.
Kind
);
1133
Assert.Equal(OperationKind.ArrayInitializer, operation.
Kind
);
1145
Assert.Equal(OperationKind.SimpleAssignment, operation.
Kind
);
1152
Assert.Equal(OperationKind.CompoundAssignment, operation.
Kind
);
1181
Assert.Contains(operation.
Kind
, new[] { OperationKind.Increment, OperationKind.Decrement });
1193
Assert.Equal(OperationKind.Parenthesized, operation.
Kind
);
1199
Assert.Equal(OperationKind.DynamicMemberReference, operation.
Kind
);
1221
Assert.Equal(OperationKind.DefaultValue, operation.
Kind
);
1227
Assert.Equal(OperationKind.TypeParameterObjectCreation, operation.
Kind
);
1240
Assert.Equal(OperationKind.None, operation.
Kind
);
1253
Assert.Equal(OperationKind.Invalid, operation.
Kind
);
1258
Assert.Equal(OperationKind.Tuple, operation.
Kind
);
1265
Assert.Equal(OperationKind.InterpolatedString, operation.
Kind
);
1271
Assert.Equal(OperationKind.InterpolatedStringText, operation.
Kind
);
1272
if (operation.Text.
Kind
!= OperationKind.Literal)
1274
Assert.Equal(OperationKind.Literal, ((IConversionOperation)operation.Text).Operand.
Kind
);
1281
Assert.Equal(OperationKind.Interpolation, operation.
Kind
);
1290
if (operation.FormatString.
Kind
!= OperationKind.Literal)
1292
Assert.Equal(OperationKind.Literal, ((IConversionOperation)operation.FormatString).Operand.
Kind
);
1302
Assert.Equal(OperationKind.InterpolatedStringHandlerCreation, operation.
Kind
);
1313
Assert.Equal(OperationKind.InterpolatedStringAddition, operation.
Kind
);
1321
Assert.Equal(OperationKind.InterpolatedStringHandlerArgumentPlaceholder, operation.
Kind
);
1335
Assert.True(operation.
Kind
is OperationKind.InterpolatedStringAppendFormatted or OperationKind.InterpolatedStringAppendLiteral or OperationKind.InterpolatedStringAppendInvalid);
1349
Assert.Equal(OperationKind.ConstantPattern, operation.
Kind
);
1356
Assert.Equal(OperationKind.RelationalPattern, operation.
Kind
);
1369
Assert.Equal(OperationKind.BinaryPattern, operation.
Kind
);
1380
Assert.Equal(OperationKind.NegatedPattern, operation.
Kind
);
1387
Assert.Equal(OperationKind.TypePattern, operation.
Kind
);
1395
Assert.Equal(OperationKind.DeclarationPattern, operation.
Kind
);
1428
Assert.Equal(OperationKind.SlicePattern, operation.
Kind
);
1443
Assert.Equal(OperationKind.ListPattern, operation.
Kind
);
1461
Assert.Equal(OperationKind.RecursivePattern, operation.
Kind
);
1509
if (operation.Member.
Kind
== OperationKind.Invalid)
1533
Assert.Equal(OperationKind.SwitchExpression, operation.
Kind
);
1555
Assert.Equal(OperationKind.IsPattern, operation.
Kind
);
1577
Assert.Equal(OperationKind.TranslatedQuery, operation.
Kind
);
1583
Assert.Equal(OperationKind.DeclarationExpression, operation.
Kind
);
1589
Assert.Equal(OperationKind.DeconstructionAssignment, operation.
Kind
);
1595
Assert.Equal(OperationKind.DelegateCreation, operation.
Kind
);
1601
Assert.Equal(OperationKind.RaiseEvent, operation.
Kind
);
1614
Assert.Equal(OperationKind.ConstructorBodyOperation, operation.
Kind
);
1615
Assert.Equal(OperationKind.ConstructorBody, operation.
Kind
);
1641
Assert.Equal(OperationKind.MethodBodyOperation, operation.
Kind
);
1642
Assert.Equal(OperationKind.MethodBody, operation.
Kind
);
1667
Assert.Equal(OperationKind.Discard, operation.
Kind
);
1676
Assert.Equal(OperationKind.DiscardPattern, operation.
Kind
);
1683
Assert.Equal(OperationKind.FlowCapture, operation.
Kind
);
1687
switch (operation.Value.
Kind
)
1700
Assert.False(true, $"A {operation.Value.
Kind
} node should not be spilled or captured.");
1715
Assert.Equal(OperationKind.FlowCaptureReference, operation.
Kind
);
1722
Assert.Equal(OperationKind.IsNull, operation.
Kind
);
1729
Assert.Equal(OperationKind.CaughtException, operation.
Kind
);
1736
Assert.Equal(OperationKind.StaticLocalInitializationSemaphore, operation.
Kind
);
1745
Assert.Equal(OperationKind.Range, operation.
Kind
);
1766
Assert.Equal(OperationKind.ReDim, operation.
Kind
);
1773
Assert.Equal(OperationKind.ReDimClause, operation.
Kind
);
1800
Assert.Equal(OperationKind.With, operation.
Kind
);
1808
Assert.Equal(OperationKind.Attribute, operation.
Kind
);
Diagnostics\BoxingOperationAnalyzer.cs (2)
45
if (operation.
Kind
== OperationKind.Conversion)
58
if (operation.
Kind
== OperationKind.Invocation)
Diagnostics\CommonDiagnosticAnalyzers.cs (1)
1282
var diagnostic = Diagnostic.Create(Descriptor, c.OwningSymbol.Locations[0], c.OwningSymbol.Name, operationRoot.
Kind
);
Diagnostics\CouldHaveMoreSpecificTypeAnalyzer.cs (2)
239
OperationKind targetKind = target.
Kind
;
281
if (value.
Kind
== OperationKind.Conversion)
Diagnostics\FieldCouldBeReadOnlyAnalyzer.cs (2)
113
if (target.
Kind
== OperationKind.FieldReference)
118
switch (fieldReference.Instance.
Kind
)
Diagnostics\LocalCouldBeConstAnalyzer.cs (2)
116
if (target.
Kind
== OperationKind.LocalReference)
123
else if (target.
Kind
== OperationKind.FieldReference)
Diagnostics\OperationTestAnalyzer.cs (28)
152
if (forCondition.
Kind
== OperationKind.Binary)
160
conditionLeft.
Kind
== OperationKind.LocalReference)
170
if (setup.
Kind
== OperationKind.ExpressionStatement && ((IExpressionStatementOperation)setup).Operation.
Kind
== OperationKind.SimpleAssignment)
173
if (setupAssignment.Target.
Kind
== OperationKind.LocalReference &&
185
if (advance.
Kind
== OperationKind.ExpressionStatement)
234
if (advanceExpression.
Kind
== OperationKind.SimpleAssignment)
238
if (advanceAssignment.Target.
Kind
== OperationKind.LocalReference &&
240
advanceAssignment.Value.
Kind
== OperationKind.Binary &&
247
advanceOperation.LeftOperand.
Kind
== OperationKind.LocalReference &&
258
else if (advanceExpression.
Kind
== OperationKind.CompoundAssignment)
262
if (advanceAssignment.Target.
Kind
== OperationKind.LocalReference &&
272
else if (advanceExpression.
Kind
== OperationKind.Increment)
276
if (advanceAssignment.Target.
Kind
== OperationKind.LocalReference &&
716
Report(operationContext, initializer.Syntax, initializer.
Kind
== OperationKind.FieldReference ? DoNotUseFieldInitializerDescriptor : DoNotUsePropertyInitializerDescriptor);
753
var kind = assignment.Target.
Kind
;
899
switch (operationContext.Operation.
Kind
)
1044
if (eventAssignment.EventReference.
Kind
== OperationKind.Invalid || eventAssignment.HasErrors(operationContext.Compilation, operationContext.CancellationToken))
1264
if (addressOfOperation.Reference.
Kind
== OperationKind.Invalid && addressOfOperation.HasErrors(operationContext.Compilation, operationContext.CancellationToken))
1328
if (statement.
Kind
== OperationKind.None)
1381
switch (operation.
Kind
)
1615
if (left.
Kind
== OperationKind.LocalReference)
1620
if (right.
Kind
== OperationKind.Literal)
1642
if (operand.
Kind
== OperationKind.LocalReference)
1735
if (operation.
Kind
== OperationKind.Argument)
1786
if (operation.
Kind
== OperationKind.Binary)
1794
else if (operation.
Kind
== OperationKind.Unary)
1802
else if (operation.
Kind
== OperationKind.Increment)
Extensions\OperationExtensions.cs (1)
13
switch (operation.
Kind
)
Microsoft.CodeAnalysis.Workspaces (16)
ControlFlowGraphExtensions.cs (1)
32
=> cfg.DescendantOperations().Where(d => d?.
Kind
== operationKind).Cast<T>();
OperationExtensions.cs (5)
21
assignmentOperation.Parent?.
Kind
== OperationKind.ObjectOrCollectionInitializer;
235
switch (operation.
Kind
)
259
switch (current.
Kind
)
366
=> operationBlocks.HasAnyOperationDescendant(predicate: operation => operation.
Kind
== kind);
369
=> operation.
Kind
== OperationKind.Literal && operation.Type.IsNumericType();
Shared\Extensions\SemanticEquivalence.cs (1)
129
=> operation is IMemberReferenceOperation { Instance.
Kind
: OperationKind.InstanceReference };
SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
192
if (operation.
Kind
is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
SymbolUsageAnalysis.Walker.cs (6)
154
operation.Parent.Parent?.
Kind
!= OperationKind.ExpressionStatement)
162
Debug.Assert(symbolOpt != null || operation.
Kind
== OperationKind.FlowCaptureReference);
192
operation.Parent?.
Kind
!= OperationKind.ExpressionStatement;
196
if (write.
Kind
!= OperationKind.FlowCaptureReference)
409
switch (currentOperation.
Kind
)
524
switch (target.
Kind
)
SyntaxGeneratorExtensions_Negate.cs (2)
451
if (operation?.
Kind
== OperationKind.Literal && operation.ConstantValue.HasValue && operation.ConstantValue.Value is true)
455
else if (operation?.
Kind
== OperationKind.Literal && operation.ConstantValue.HasValue && operation.ConstantValue.Value is false)
Roslyn.Compilers.VisualBasic.IOperation.UnitTests (22)
IOperation\IOperationTests.vb (19)
61
Assert.Equal(statement1.
Kind
, OperationKind.ExpressionStatement)
63
Assert.Equal(expression1.
Kind
, OperationKind.SimpleAssignment)
65
Assert.Equal(assignment1.Value.
Kind
, OperationKind.Binary)
70
Assert.Equal(left1.
Kind
, OperationKind.LocalReference)
73
Assert.Equal(right1.
Kind
, OperationKind.Literal)
94
Assert.Equal(statement2.
Kind
, OperationKind.ExpressionStatement)
96
Assert.Equal(expression2.
Kind
, OperationKind.SimpleAssignment)
98
Assert.Equal(assignment2.Value.
Kind
, OperationKind.Binary)
104
Assert.Equal(left2.
Kind
, OperationKind.LocalReference)
107
Assert.Equal(right2.
Kind
, OperationKind.LocalReference)
127
Assert.Equal(statement3.
Kind
, OperationKind.ExpressionStatement)
129
Assert.Equal(expression3.
Kind
, OperationKind.SimpleAssignment)
131
Assert.Equal(assignment3.Value.
Kind
, OperationKind.Unary)
136
Assert.Equal(operand3.
Kind
, OperationKind.LocalReference)
186
Assert.Equal(statement1.
Kind
, OperationKind.ExpressionStatement)
188
Assert.Equal(expression1.
Kind
, OperationKind.CompoundAssignment)
214
Assert.Equal(statement2.
Kind
, OperationKind.ExpressionStatement)
216
Assert.Equal(expression2.
Kind
, OperationKind.CompoundAssignment)
870
Assert.Equal(OperationKind.FieldReference, operation.
Kind
)
IOperation\IOperationTests_IConversionExpression.vb (2)
3347
If (conv.
Kind
= OperationKind.Conversion) Then
3399
Select Case operation.
Kind
IOperation\IOperationTests_IUsingStatement.vb (1)
85
Assert.Equal(OperationKind.Invalid, op.Resources.
Kind
)