133 implementations of Kind
Microsoft.CodeAnalysis (133)
Generated\Operations.Generated.cs (127)
4092public override OperationKind Kind => OperationKind.Block; 4147public override OperationKind Kind => OperationKind.VariableDeclarationGroup; 4217public override OperationKind Kind => OperationKind.Switch; 4323public override OperationKind Kind => OperationKind.Loop; 4415public override OperationKind Kind => OperationKind.Loop; 4527public override OperationKind Kind => OperationKind.Loop; 4551public override OperationKind Kind => OperationKind.Loop; 4604public override OperationKind Kind => OperationKind.Labeled; 4624public override OperationKind Kind => OperationKind.Branch; 4638public override OperationKind Kind => OperationKind.Empty; 4690public override OperationKind Kind { get; } 4754public override OperationKind Kind => OperationKind.Lock; 4833public override OperationKind Kind => OperationKind.Try; 4901public override OperationKind Kind => OperationKind.Using; 4952public override OperationKind Kind => OperationKind.ExpressionStatement; 5016public override OperationKind Kind => OperationKind.LocalFunction; 5030public override OperationKind Kind => OperationKind.Stop; 5044public override OperationKind Kind => OperationKind.End; 5110public override OperationKind Kind => OperationKind.RaiseEvent; 5128public override OperationKind Kind => OperationKind.Literal; 5188public override OperationKind Kind => OperationKind.Conversion; 5261public override OperationKind Kind => OperationKind.Invocation; 5328public override OperationKind Kind => OperationKind.ArrayElementReference; 5350public override OperationKind Kind => OperationKind.LocalReference; 5369public override OperationKind Kind => OperationKind.ParameterReference; 5434public override OperationKind Kind => OperationKind.FieldReference; 5490public override OperationKind Kind => OperationKind.MethodReference; 5559public override OperationKind Kind => OperationKind.PropertyReference; 5613public override OperationKind Kind => OperationKind.EventReference; 5676public override OperationKind Kind => OperationKind.Unary; 5754public override OperationKind Kind => OperationKind.Binary; 5831public override OperationKind Kind => OperationKind.Conditional; 5898public override OperationKind Kind => OperationKind.Coalesce; 5951public override OperationKind Kind => OperationKind.AnonymousFunction; 6021public override OperationKind Kind => OperationKind.ObjectCreation; 6073public override OperationKind Kind => OperationKind.TypeParameterObjectCreation; 6140public override OperationKind Kind => OperationKind.ArrayCreation; 6159public override OperationKind Kind => OperationKind.InstanceReference; 6215public override OperationKind Kind => OperationKind.IsType; 6267public override OperationKind Kind => OperationKind.Await; 6340public override OperationKind Kind => OperationKind.SimpleAssignment; 6415public override OperationKind Kind => OperationKind.CompoundAssignment; 6468public override OperationKind Kind => OperationKind.Parenthesized; 6533public override OperationKind Kind => OperationKind.EventAssignment; 6596public override OperationKind Kind => OperationKind.ConditionalAccess; 6613public override OperationKind Kind => OperationKind.ConditionalAccessInstance; 6670public override OperationKind Kind => OperationKind.InterpolatedString; 6726public override OperationKind Kind => OperationKind.AnonymousObjectCreation; 6782public override OperationKind Kind => OperationKind.ObjectOrCollectionInitializer; 6845public override OperationKind Kind => OperationKind.MemberInitializer; 6898public override OperationKind Kind => OperationKind.NameOf; 6956public override OperationKind Kind => OperationKind.Tuple; 7014public override OperationKind Kind => OperationKind.DynamicMemberReference; 7066public override OperationKind Kind => OperationKind.TranslatedQuery; 7118public override OperationKind Kind => OperationKind.DelegateCreation; 7136public override OperationKind Kind => OperationKind.DefaultValue; 7155public override OperationKind Kind => OperationKind.TypeOf; 7175public override OperationKind Kind => OperationKind.SizeOf; 7227public override OperationKind Kind => OperationKind.AddressOf; 7290public override OperationKind Kind => OperationKind.IsPattern; 7353public override OperationKind Kind { get; } 7405public override OperationKind Kind => OperationKind.Throw; 7464public override OperationKind Kind => OperationKind.DeconstructionAssignment; 7516public override OperationKind Kind => OperationKind.DeclarationExpression; 7533public override OperationKind Kind => OperationKind.OmittedArgument; 7595public override OperationKind Kind => OperationKind.FieldInitializer; 7642public override OperationKind Kind => OperationKind.VariableInitializer; 7693public override OperationKind Kind => OperationKind.PropertyInitializer; 7744public override OperationKind Kind => OperationKind.ParameterInitializer; 7799public override OperationKind Kind => OperationKind.ArrayInitializer; 7867public override OperationKind Kind => OperationKind.VariableDeclarator; 7948public override OperationKind Kind => OperationKind.VariableDeclaration; 8009public override OperationKind Kind => OperationKind.Argument; 8086public override OperationKind Kind => OperationKind.CatchClause; 8160public override OperationKind Kind => OperationKind.SwitchCase; 8184public override OperationKind Kind => OperationKind.CaseClause; 8247public override OperationKind Kind => OperationKind.CaseClause; 8309public override OperationKind Kind => OperationKind.CaseClause; 8362public override OperationKind Kind => OperationKind.CaseClause; 8413public override OperationKind Kind => OperationKind.CaseClause; 8469public override OperationKind Kind => OperationKind.InterpolatedStringText; 8542public override OperationKind Kind => OperationKind.Interpolation; 8604public override OperationKind Kind => OperationKind.ConstantPattern; 8626public override OperationKind Kind => OperationKind.DeclarationPattern; 8691public override OperationKind Kind => OperationKind.TupleBinary; 8758public override OperationKind Kind => OperationKind.MethodBody; 8829public override OperationKind Kind => OperationKind.ConstructorBody; 8848public override OperationKind Kind => OperationKind.Discard; 8901public override OperationKind Kind => OperationKind.FlowCapture; 8923public override OperationKind Kind => OperationKind.FlowCaptureReference; 8976public override OperationKind Kind => OperationKind.IsNull; 8993public override OperationKind Kind => OperationKind.CaughtException; 9012public override OperationKind Kind => OperationKind.StaticLocalInitializationSemaphore; 9071public override OperationKind Kind => OperationKind.CoalesceAssignment; 9138public override OperationKind Kind => OperationKind.Range; 9195public override OperationKind Kind => OperationKind.ReDim; 9261public override OperationKind Kind => OperationKind.ReDimClause; 9337public override OperationKind Kind => OperationKind.RecursivePattern; 9351public override OperationKind Kind => OperationKind.DiscardPattern; 9420public override OperationKind Kind => OperationKind.SwitchExpression; 9495public override OperationKind Kind => OperationKind.SwitchExpressionArm; 9557public override OperationKind Kind => OperationKind.PropertySubpattern; 9620public override OperationKind Kind => OperationKind.None; 9684public override OperationKind Kind => OperationKind.None; 9736public override OperationKind Kind => OperationKind.None; 9755public override OperationKind Kind => OperationKind.None; 9817public override OperationKind Kind => OperationKind.None; 9872public override OperationKind Kind => OperationKind.UsingDeclaration; 9923public override OperationKind Kind => OperationKind.NegatedPattern; 9987public override OperationKind Kind => OperationKind.BinaryPattern; 10005public override OperationKind Kind => OperationKind.TypePattern; 10058public override OperationKind Kind => OperationKind.RelationalPattern; 10123public override OperationKind Kind => OperationKind.With; 10190public override OperationKind Kind => OperationKind.InterpolatedStringHandlerCreation; 10252public override OperationKind Kind => OperationKind.InterpolatedStringAddition; 10304public override OperationKind Kind { get; } 10324public override OperationKind Kind => OperationKind.InterpolatedStringHandlerArgumentPlaceholder; 10391public override OperationKind Kind => OperationKind.FunctionPointerInvocation; 10452public override OperationKind Kind => OperationKind.ListPattern; 10505public override OperationKind Kind => OperationKind.SlicePattern; 10572public override OperationKind Kind => OperationKind.ImplicitIndexerReference; 10591public override OperationKind Kind => OperationKind.Utf8String; 10642public override OperationKind Kind => OperationKind.Attribute; 10705public override OperationKind Kind => OperationKind.InlineArrayAccess; 10778public override OperationKind Kind => OperationKind.CollectionExpression; 10834public override OperationKind Kind => OperationKind.Spread; 10851public override OperationKind Kind => OperationKind.CollectionExpressionElementsPlaceholder;
Operations\Operation.cs (1)
65public abstract OperationKind Kind { get; }
Operations\OperationNodes.cs (5)
137public override OperationKind Kind => OperationKind.Invalid; 168public override OperationKind Kind => OperationKind.FlowAnonymousFunction; 260public override OperationKind Kind => OperationKind.DynamicObjectCreation; 402public override OperationKind Kind => OperationKind.DynamicInvocation; 424public override OperationKind Kind => OperationKind.DynamicIndexerAccess;
425 references to Kind
GenerateDocumentationAndConfigFiles (26)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122return operation is { Kind: OperationKind.None, Parent: null }; 143} while (ancestor != null && ancestor.Kind != ancestorKind); 177} while (ancestor != null && !ancestorKinds.Contains(ancestor.Kind)); 215for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.Parent) 217switch (current.Kind) 320Debug.Assert(operation.Kind is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.Kind}"); 344switch (child.Kind) 419switch (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)
21assignmentOperation.Parent?.Kind == OperationKind.ObjectOrCollectionInitializer; 244switch (operation.Kind) 268switch (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.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207if (operation.Kind is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153operation.Parent.Parent?.Kind != OperationKind.ExpressionStatement) 161Debug.Assert(symbolOpt != null || operation.Kind == OperationKind.FlowCaptureReference); 191operation.Parent?.Kind != OperationKind.ExpressionStatement; 195if (write.Kind != OperationKind.FlowCaptureReference) 436switch (currentOperation.Kind) 551switch (target.Kind)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\AbstractInitializerParameterService.cs (1)
64switch (operation.Kind)
ILLink.RoslynAnalyzer (8)
DataFlow\CapturedReferenceValue.cs (1)
17switch (operation.Kind)
DataFlow\ControlFlowGraphExtensions.cs (1)
34=> cfg.DescendantOperations().Where(d => d?.Kind == operationKind).Cast<T>();
DataFlow\UnexpectedOperationHandler.cs (3)
22if (operation.Kind is OperationKind.None) 25if (operation.Kind is OperationKind.Invalid) 39if (descendant.Kind is OperationKind.Invalid)
IOperationExtensions.cs (2)
218switch (operation.Kind) 242switch (current.Kind)
TrimAnalysis\HandleCallAction.cs (1)
43_isNewObj = operation.Kind == OperationKind.ObjectCreation;
Microsoft.Analyzers.Extra (8)
AsyncCallInsideUsingBlockAnalyzer.cs (1)
86switch (operation.Kind)
CallAnalysis\Fixers\LegacyLoggingFixer.cs (1)
368if (invocationOp.Parent?.Kind == OperationKind.ConditionalAccess)
CallAnalysis\Fixers\LegacyLoggingFixer.FixDetails.cs (2)
106var op = invocationOp.Arguments[LogLevelParamIndex].Descendants().SingleOrDefault(x => x.Kind == OperationKind.Literal || x.Kind == OperationKind.FieldReference);
CoalesceAnalyzer.cs (2)
39if (op.Target.Kind == OperationKind.ParameterReference) 66if (op.Value.Kind == OperationKind.ParameterReference)
ConditionalAccessAnalyzer.cs (2)
37switch (op.Operation.Kind) 98if (op.Operation.Kind == OperationKind.ParameterReference)
Microsoft.AspNetCore.App.Analyzers (4)
Http\RequestDelegateReturnTypeAnalyzer.cs (2)
32parent.Kind == OperationKind.DelegateCreation && 48parent.Kind == OperationKind.DelegateCreation &&
RouteHandlers\RouteHandlerAnalyzer.cs (2)
105if (delegateCreation.Target.Kind == OperationKind.AnonymousFunction) 115else if (delegateCreation.Target.Kind == OperationKind.MethodReference)
Microsoft.AspNetCore.Components.Analyzers (2)
ComponentParameterUsageAnalyzer.cs (1)
59if (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)
59if (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)
48if (awaitOperation.Operation.Kind != OperationKind.Invocation) 115if (operation.Kind == OperationKind.LocalFunction) 120if (operation.Kind == OperationKind.MethodBody) 125if (operation.Kind == OperationKind.AnonymousFunction)
Microsoft.AspNetCore.Mvc.Api.Analyzers (8)
ApiActionsDoNotRequireExplicitModelValidationCheckAnalyzer.cs (8)
58if (parent.Kind == OperationKind.Block && parent.Parent != null) 63if (parent.Kind != OperationKind.MethodBodyOperation) 70if (trueStatement.Kind != OperationKind.Return) 131switch (condition.Kind) 164if (operation.Kind != OperationKind.Literal) 182if (operation.Kind != OperationKind.PropertyReference) 198if (propertyReference.Instance?.Kind != OperationKind.PropertyReference) 205if (modelStatePropertyReference.Instance?.Kind != OperationKind.InstanceReference)
Microsoft.CodeAnalysis (87)
DiagnosticAnalyzer\AnalysisContextInfo.cs (1)
85sb.AppendLine($"{nameof(IOperation)}: {_operation.Kind}");
DiagnosticAnalyzer\AnalyzerDriver.cs (4)
2991switch (operationBlock.Parent.Kind) 3002Debug.Assert(operationBlock.Kind is OperationKind.Invocation or OperationKind.Invalid); 3013Debug.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)
1258if (operationActionsByKind.TryGetValue(operation.Kind, out var actionsForKind))
Operations\ControlFlowGraph.cs (2)
40Debug.Assert(parent != null == (originalOperation.Kind == OperationKind.LocalFunction || originalOperation.Kind == OperationKind.AnonymousFunction));
Operations\ControlFlowGraphBuilder.cs (76)
96Debug.Assert(body.Kind == OperationKind.Block || 97body.Kind == OperationKind.MethodBody || 98body.Kind == OperationKind.ConstructorBody || 99body.Kind == OperationKind.FieldInitializer || 100body.Kind == OperationKind.PropertyInitializer || 101body.Kind == OperationKind.ParameterInitializer || 102body.Kind == OperationKind.Attribute, 103$"Unexpected root operation kind: {body.Kind}"); 108Debug.Assert(body.Kind == OperationKind.LocalFunction || body.Kind == OperationKind.AnonymousFunction); 124switch (body.Kind) 869value.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)); 1628if (operation.WhenTrue is IConversionOperation whenTrueConversion && whenTrueConversion.Operand.Kind == OperationKind.Throw) 1631Debug.Assert(rewrittenThrow!.Kind == OperationKind.None); 1640else if (operation.WhenFalse is IConversionOperation whenFalseConversion && whenFalseConversion.Operand.Kind == OperationKind.Throw) 1649Debug.Assert(rewrittenThrow.Kind == OperationKind.None); 1696if (result.Kind != OperationKind.FlowCaptureReference || 1858if (operationOpt.Kind != OperationKind.FlowCaptureReference 1859&& operationOpt.Kind != OperationKind.DeclarationExpression 1860&& operationOpt.Kind != OperationKind.Discard 1861&& operationOpt.Kind != OperationKind.OmittedArgument 1862&& operationOpt.Kind != OperationKind.CollectionExpressionElementsPlaceholder) 2735if (condition.Kind == OperationKind.Binary) 2797switch (condition.Kind) 2935if (conversion.Operand.Kind == OperationKind.Throw) 2939Debug.Assert(rewrittenThrow.Kind == OperationKind.None); 2962while (condition.Kind == OperationKind.Parenthesized) 3055bool alternativeThrows = conversion?.Operand.Kind == OperationKind.Throw; 3081Debug.Assert(rewrittenThrow.Kind == OperationKind.None); 3114bool isStatement = _currentStatement == operation || operation.Parent.Kind == OperationKind.ExpressionStatement; 3377bool isOnStatementLevel = _currentStatement == operation || (_currentStatement == operation.Parent && _currentStatement?.Kind == OperationKind.ExpressionStatement); 3572Debug.Assert(operation.Operation.Kind == OperationKind.ConditionalAccess || operation.Operation.Kind == OperationKind.CoalesceAssignment); 3575else if (operation.Operation.Kind == OperationKind.Throw) 3801if (exceptionDeclarationOrExpression.Kind == OperationKind.VariableDeclarator) 3842switch (operation.Kind) 3859throw ExceptionUtilities.UnexpectedValue(operation.Kind); 3996Debug.Assert(resources.Kind != OperationKind.VariableDeclaration); 3997Debug.Assert(resources.Kind != OperationKind.VariableDeclarator); 4475if (!operation.Locals.IsEmpty && operation.LoopControlVariable.Kind == OperationKind.VariableDeclarator) 4667switch (operation.LoopControlVariable.Kind) 5366Debug.Assert(controlVariableReferenceForAssignment.Kind == OperationKind.FlowCaptureReference); 5436switch (operation.LoopControlVariable.Kind) 5750if (initialization.Length == 1 && initialization[0].Kind == OperationKind.VariableDeclarationGroup) 6058switch (innerInitializer.Kind) 6077Debug.Assert(validKinds.Contains(innerInitializer.Kind)); 6171switch (instance.Kind) 6178if (memberReference.Kind == OperationKind.PropertyReference) 6231Debug.Assert(instance.Kind == OperationKind.Invalid || instance.Kind == OperationKind.None); 6239switch (originalTarget.Kind) 6285throw ExceptionUtilities.UnexpectedValue(originalTarget.Kind); 6357throw ExceptionUtilities.UnexpectedValue(lhs.Kind); 6406Debug.Assert(propertyReference.Instance.Kind == OperationKind.InstanceReference); 6517if (elementValue.Kind == OperationKind.ArrayInitializer) 6536if (elementValue.Kind == OperationKind.ArrayInitializer) 6645if (operation.Operation.Kind == OperationKind.DynamicMemberReference) 6661if (operation.Operation.Kind == OperationKind.DynamicMemberReference) 6706if (value.Kind == OperationKind.Tuple) 6726if (value.Kind == OperationKind.Tuple) 6947throw ExceptionUtilities.UnexpectedValue(currentAddition.Left.Kind); 6959throw ExceptionUtilities.UnexpectedValue(currentAddition.Left.Kind); 7069if (element.Kind == OperationKind.Interpolation) 7110throw ExceptionUtilities.UnexpectedValue(element.Kind); 7365switch (current.Kind) 7406operation.Kind, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7490if (children.Count != 0 && children.Last().Kind == OperationKind.ObjectOrCollectionInitializer) 7865if (statement.Kind == OperationKind.LocalFunction) 8029if (simpleAssignment.Target.Kind != OperationKind.PropertyReference) 8041Debug.Assert(propertyReference.Instance.Kind == OperationKind.InstanceReference); 8122if (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)
699Debug.Assert(statements.All(s => s.Parent != this && s.Parent!.Kind is OperationKind.Block or OperationKind.SwitchCase));
Microsoft.CodeAnalysis.Analyzers (37)
MetaAnalyzers\ConfigureGeneratedCodeAnalysisAnalyzer.cs (1)
116if (invocation.Instance?.Kind != OperationKind.ParameterReference)
MetaAnalyzers\EnableConcurrentExecutionAnalyzer.cs (1)
116if (invocation.Instance?.Kind != OperationKind.ParameterReference)
MetaAnalyzers\Fixers\CompareSymbolsCorrectlyFix.cs (1)
227if (instance.Kind != OperationKind.ConditionalAccessInstance)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
102if ((operationBlock.Kind is OperationKind.None or OperationKind.Attribute) && 133switch (operation.Kind) 300switch (operation.Parent.Kind) 318return operation.Kind == OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0; 328return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKind.Attribute))); 335distinctOperatorKindsBuilder.Add(operation.Kind);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
260switch (operationBlock.Kind) 326switch (operation.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122return operation is { Kind: OperationKind.None, Parent: null }; 143} while (ancestor != null && ancestor.Kind != ancestorKind); 177} while (ancestor != null && !ancestorKinds.Contains(ancestor.Kind)); 215for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.Parent) 217switch (current.Kind) 320Debug.Assert(operation.Kind is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.Kind}"); 344switch (child.Kind) 419switch (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)
21assignmentOperation.Parent?.Kind == OperationKind.ObjectOrCollectionInitializer; 244switch (operation.Kind) 268switch (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.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207if (operation.Kind is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153operation.Parent.Parent?.Kind != OperationKind.ExpressionStatement) 161Debug.Assert(symbolOpt != null || operation.Kind == OperationKind.FlowCaptureReference); 191operation.Parent?.Kind != OperationKind.ExpressionStatement; 195if (write.Kind != OperationKind.FlowCaptureReference) 436switch (currentOperation.Kind) 551switch (target.Kind)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\AbstractInitializerParameterService.cs (1)
64switch (operation.Kind)
Microsoft.CodeAnalysis.AnalyzerUtilities (68)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
102if ((operationBlock.Kind is OperationKind.None or OperationKind.Attribute) && 133switch (operation.Kind) 300switch (operation.Parent.Kind) 318return operation.Kind == OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0; 328return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKind.Attribute))); 335distinctOperatorKindsBuilder.Add(operation.Kind);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
260switch (operationBlock.Kind) 326switch (operation.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122return operation is { Kind: OperationKind.None, Parent: null }; 143} while (ancestor != null && ancestor.Kind != ancestorKind); 177} while (ancestor != null && !ancestorKinds.Contains(ancestor.Kind)); 215for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.Parent) 217switch (current.Kind) 320Debug.Assert(operation.Kind is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.Kind}"); 344switch (child.Kind) 419switch (currentOperation.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\Extensions\ControlFlowGraphExtensions.cs (1)
22cfg.OriginalOperation.Kind is OperationKind.Attribute or OperationKind.None or OperationKind.ParameterInitializer)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (3)
243operation.Kind != OperationKind.ObjectCreation && 279if (visitedInstance?.Kind != OperationKind.InstanceReference) 403operation.Instance?.Kind == OperationKind.InstanceReference)
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\ParameterValidationAnalysis\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (1)
157if (operation.Kind == OperationKind.ConditionalAccessInstance)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (1)
724target.Kind == OperationKind.ArrayElementReference)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (7)
225&& (operation.Target.Kind == OperationKind.PropertyReference 226|| operation.Target.Kind == OperationKind.FieldReference 227|| operation.Target.Kind == OperationKind.FlowCaptureReference)) 230if (operation.Target.Kind == OperationKind.FlowCaptureReference) 277if (propertyReferenceOperation == null && operation.Target.Kind == OperationKind.FlowCaptureReference) 708if (flowCaptureReferenceOperation != null && flowCaptureReferenceOperation.Kind == OperationKind.FlowCaptureReference) 714if (kinds == null || kinds.Contains(lValueOperation.Kind))
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataSymbolMapExtensions.cs (3)
70pointsToAnalysisResult[o.Kind, o.Syntax]))); 93arguments.SelectAsArray(o => pointsToAnalysisResult[o.Kind, o.Syntax]), 94arguments.SelectAsArray(o => valueContentAnalysisResult[o.Kind, o.Syntax])));
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (2)
189return operation.Kind == OperationKind.None ? 245var operationKind = operation.Kind == OperationKind.Increment ? BinaryOperatorKind.Add : BinaryOperatorKind.Subtract;
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowAnalysisResult.cs (3)
130if (kvp.Key.Kind == operationKind && kvp.Key.Syntax == syntax) 170Debug.Assert(lambdaOrLocalFunctionOperation.Kind is OperationKind.AnonymousFunction or OperationKind.LocalFunction); 189if (lambdaOrLocalFunctionOperation.Kind == OperationKind.LocalFunction)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (14)
906instance.Kind != OperationKind.InstanceReference && 1256if (sourceOperand.Kind == OperationKind.Throw) 1389Debug.Assert(operation.Kind is OperationKind.BinaryOperator or 1408if (operation.Kind == OperationKind.FlowCaptureReference) 1432if (operation.Kind == OperationKind.FlowCaptureReference) 1489if (operation.Kind == OperationKind.Argument) 1498switch (current.Kind) 1518switch (current.Kind) 1563switch (isPatternOperation.Pattern.Kind) 1641Debug.Fail($"Unknown pattern kind '{isPatternOperation.Pattern.Kind}'"); 2485Debug.Assert(originalOperation.Kind == OperationKind.ObjectCreation); 2576switch (operation.Kind) 2807if (operation.Kind == OperationKind.None) 3828Debug.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)
65operations.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)
21assignmentOperation.Parent?.Kind == OperationKind.ObjectOrCollectionInitializer; 244switch (operation.Kind) 268switch (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.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207if (operation.Kind is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153operation.Parent.Parent?.Kind != OperationKind.ExpressionStatement) 161Debug.Assert(symbolOpt != null || operation.Kind == OperationKind.FlowCaptureReference); 191operation.Parent?.Kind != OperationKind.ExpressionStatement; 195if (write.Kind != OperationKind.FlowCaptureReference) 436switch (currentOperation.Kind) 551switch (target.Kind)
Microsoft.CodeAnalysis.CodeStyle (35)
src\roslyn\src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (1)
294if (fieldReference.Instance?.Kind != OperationKind.InstanceReference ||
src\roslyn\src\Analyzers\Core\Analyzers\QualifyMemberAccess\AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (2)
81if (instanceOperation.Kind != OperationKind.InstanceReference) 85if (context.Operation.Parent?.Kind == OperationKind.PropertySubpattern)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (1)
126Kind: OperationKind.Literal,
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
262if (operation is { Kind: OperationKind.None, Parent: INameOfOperation { Argument: var nameofArgument } } &&
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (11)
259Debug.Assert(operation.Kind is OperationKind.DelegateCreation or OperationKind.AnonymousFunction); 275(assignment.Target.Kind == OperationKind.LocalReference || 276assignment.Target.Kind == OperationKind.ParameterReference)) 284if (operation.Kind == OperationKind.AnonymousFunction && 308Debug.Assert(operation.Kind is OperationKind.LocalReference or OperationKind.ParameterReference); 342(assignmentOperation.Target.Kind == OperationKind.LocalReference || 343assignmentOperation.Target.Kind == OperationKind.ParameterReference)) 368switch (operationBlock.Kind) 390if (operation.Kind == OperationKind.None) 669switch (assignmentValue.Kind) 680return fieldReference.Instance == null || fieldReference.Instance.Kind == OperationKind.InstanceReference;
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)
97trueReturn.Kind != falseReturn.Kind) 104if (trueReturn?.Kind == OperationKind.YieldBreak) 111if (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)
21assignmentOperation.Parent?.Kind == OperationKind.ObjectOrCollectionInitializer; 244switch (operation.Kind) 268switch (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.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207if (operation.Kind is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153operation.Parent.Parent?.Kind != OperationKind.ExpressionStatement) 161Debug.Assert(symbolOpt != null || operation.Kind == OperationKind.FlowCaptureReference); 191operation.Parent?.Kind != OperationKind.ExpressionStatement; 195if (write.Kind != OperationKind.FlowCaptureReference) 436switch (currentOperation.Kind) 551switch (target.Kind)
Microsoft.CodeAnalysis.CodeStyle.Fixes (4)
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\ForReturn\AbstractUseConditionalExpressionForReturnCodeFixProvider.cs (1)
76var returnStatement = anyReturn.Kind == OperationKind.YieldReturn
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\AbstractInitializerParameterService.cs (1)
64switch (operation.Kind)
Microsoft.CodeAnalysis.CSharp.CodeStyle (5)
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
284if (operation.Kind == OperationKind.None)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
91Kind: OperationKind.MethodReference, 92Parent.Kind: OperationKind.DelegateCreation, 1336if (oldInterpolationPart.Kind != newInterpolationPart.Kind)
Microsoft.CodeAnalysis.CSharp.Features (3)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (1)
64var v => throw ExceptionUtilities.UnexpectedValue(v.Kind)
ConvertLinq\CSharpConvertLinqQueryToForEachProvider.cs (1)
914return operation.Kind is OperationKind.LocalReference or OperationKind.ParameterReference;
src\roslyn\src\Analyzers\CSharp\Analyzers\MakeStructMemberReadOnly\CSharpMakeStructMemberReadOnlyAnalyzer.cs (1)
284if (operation.Kind == OperationKind.None)
Microsoft.CodeAnalysis.CSharp.Workspaces (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
91Kind: OperationKind.MethodReference, 92Parent.Kind: OperationKind.DelegateCreation, 1336if (oldInterpolationPart.Kind != newInterpolationPart.Kind)
Microsoft.CodeAnalysis.Features (28)
ConvertForEachToFor\AbstractConvertForEachToForCodeRefactoringProvider.cs (1)
374switch (operation.Kind)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.cs (1)
146return op.Kind;
InitializeParameter\AbstractInitializeParameterCodeRefactoringProvider.cs (1)
165switch (operation.Kind)
InlineMethod\AbstractInlineMethodRefactoringProvider.InlineContext.cs (1)
420if (operation.Kind is OperationKind.AnonymousFunction or OperationKind.LocalFunction)
IntroduceParameter\AbstractIntroduceParameterCodeRefactoringProvider.cs (1)
242containsClassSpecificStatement = operation.Descendants().Any(op => op.Kind == OperationKind.InstanceReference);
IntroduceUsingStatement\AbstractIntroduceUsingStatementCodeRefactoringProvider.cs (1)
126if (initializer is null || initializer.Kind == OperationKind.Invalid)
src\roslyn\src\Analyzers\Core\Analyzers\MakeFieldReadonly\AbstractMakeFieldReadonlyDiagnosticAnalyzer.cs (1)
294if (fieldReference.Instance?.Kind != OperationKind.InstanceReference ||
src\roslyn\src\Analyzers\Core\Analyzers\QualifyMemberAccess\AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (2)
81if (instanceOperation.Kind != OperationKind.InstanceReference) 85if (context.Operation.Parent?.Kind == OperationKind.PropertySubpattern)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (1)
126Kind: OperationKind.Literal,
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
262if (operation is { Kind: OperationKind.None, Parent: INameOfOperation { Argument: var nameofArgument } } &&
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedParametersAndValues\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (11)
259Debug.Assert(operation.Kind is OperationKind.DelegateCreation or OperationKind.AnonymousFunction); 275(assignment.Target.Kind == OperationKind.LocalReference || 276assignment.Target.Kind == OperationKind.ParameterReference)) 284if (operation.Kind == OperationKind.AnonymousFunction && 308Debug.Assert(operation.Kind is OperationKind.LocalReference or OperationKind.ParameterReference); 342(assignmentOperation.Target.Kind == OperationKind.LocalReference || 343assignmentOperation.Target.Kind == OperationKind.ParameterReference)) 368switch (operationBlock.Kind) 390if (operation.Kind == OperationKind.None) 669switch (assignmentValue.Kind) 680return fieldReference.Instance == null || fieldReference.Instance.Kind == OperationKind.InstanceReference;
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)
97trueReturn.Kind != falseReturn.Kind) 104if (trueReturn?.Kind == OperationKind.YieldBreak) 111if (trueReturn?.Kind == OperationKind.YieldReturn &&
src\roslyn\src\Analyzers\Core\CodeFixes\UseConditionalExpression\ForReturn\AbstractUseConditionalExpressionForReturnCodeFixProvider.cs (1)
76var returnStatement = anyReturn.Kind == OperationKind.YieldReturn
Microsoft.CodeAnalysis.ResxSourceGenerator (31)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
102if ((operationBlock.Kind is OperationKind.None or OperationKind.Attribute) && 133switch (operation.Kind) 300switch (operation.Parent.Kind) 318return operation.Kind == OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0; 328return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKind.Attribute))); 335distinctOperatorKindsBuilder.Add(operation.Kind);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
260switch (operationBlock.Kind) 326switch (operation.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122return operation is { Kind: OperationKind.None, Parent: null }; 143} while (ancestor != null && ancestor.Kind != ancestorKind); 177} while (ancestor != null && !ancestorKinds.Contains(ancestor.Kind)); 215for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.Parent) 217switch (current.Kind) 320Debug.Assert(operation.Kind is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.Kind}"); 344switch (child.Kind) 419switch (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)
21assignmentOperation.Parent?.Kind == OperationKind.ObjectOrCollectionInitializer; 244switch (operation.Kind) 268switch (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.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207if (operation.Kind is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153operation.Parent.Parent?.Kind != OperationKind.ExpressionStatement) 161Debug.Assert(symbolOpt != null || operation.Kind == OperationKind.FlowCaptureReference); 191operation.Parent?.Kind != OperationKind.ExpressionStatement; 195if (write.Kind != OperationKind.FlowCaptureReference) 436switch (currentOperation.Kind) 551switch (target.Kind)
Microsoft.CodeAnalysis.Workspaces (17)
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)
21assignmentOperation.Parent?.Kind == OperationKind.ObjectOrCollectionInitializer; 244switch (operation.Kind) 268switch (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.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207if (operation.Kind is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153operation.Parent.Parent?.Kind != OperationKind.ExpressionStatement) 161Debug.Assert(symbolOpt != null || operation.Kind == OperationKind.FlowCaptureReference); 191operation.Parent?.Kind != OperationKind.ExpressionStatement; 195if (write.Kind != OperationKind.FlowCaptureReference) 436switch (currentOperation.Kind) 551switch (target.Kind)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\AbstractInitializerParameterService.cs (1)
64switch (operation.Kind)
Roslyn.Diagnostics.Analyzers (38)
AbstractDoNotCopyValue.cs (4)
1127&& target.Kind != OperationKind.Discard 1366switch (operation.Kind) 1569_context.ReportDiagnostic(operation.Syntax.CreateDiagnostic(AvoidNullableWrapperRule, type, operation.Kind)); 1645var operationKind = operation.Kind;
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (6)
102if ((operationBlock.Kind is OperationKind.None or OperationKind.Attribute) && 133switch (operation.Kind) 300switch (operation.Parent.Kind) 318return operation.Kind == OperationKind.Conditional && hasAnyExplicitExpression(operation) ? 1 : 0; 328return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKind.Attribute))); 335distinctOperatorKindsBuilder.Add(operation.Kind);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\MetricsHelper.cs (2)
260switch (operationBlock.Kind) 326switch (operation.Kind)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (9)
122return operation is { Kind: OperationKind.None, Parent: null }; 143} while (ancestor != null && ancestor.Kind != ancestorKind); 177} while (ancestor != null && !ancestorKinds.Contains(ancestor.Kind)); 215for (IOperation? current = operation; current != null && current.Kind != OperationKind.Block; current = current.Parent) 217switch (current.Kind) 320Debug.Assert(operation.Kind is OperationKind.None or OperationKind.Attribute, $"Unexpected root operation kind: {operation.Kind}"); 344switch (child.Kind) 419switch (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)
21assignmentOperation.Parent?.Kind == OperationKind.ObjectOrCollectionInitializer; 244switch (operation.Kind) 268switch (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.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
207if (operation.Kind is OperationKind.LocalFunction or OperationKind.AnonymousFunction)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (6)
153operation.Parent.Parent?.Kind != OperationKind.ExpressionStatement) 161Debug.Assert(symbolOpt != null || operation.Kind == OperationKind.FlowCaptureReference); 191operation.Parent?.Kind != OperationKind.ExpressionStatement; 195if (write.Kind != OperationKind.FlowCaptureReference) 436switch (currentOperation.Kind) 551switch (target.Kind)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (2)
479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\InitializeParameter\AbstractInitializerParameterService.cs (1)
64switch (operation.Kind)
Roslyn.Diagnostics.CSharp.Analyzers (4)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (4)
91Kind: OperationKind.MethodReference, 92Parent.Kind: OperationKind.DelegateCreation, 1336if (oldInterpolationPart.Kind != newInterpolationPart.Kind)
System.Private.CoreLib.Generators (2)
IntrinsicsInSystemPrivateCoreLibAnalyzer.cs (2)
493if (operationSearch.Kind == OperationKind.AnonymousFunction) 498if (operationSearch.Kind == OperationKind.LocalFunction)