2334 references to BoundKind
Microsoft.CodeAnalysis.CSharp (2303)
Binder\Binder.cs (1)
862RoslynDebug.Assert(statement.Kind != BoundKind.StatementList);
Binder\Binder.ValueChecks.cs (221)
387case BoundKind.PropertyGroup: 395case BoundKind.Local: 399case BoundKind.OutVariablePendingInference: 400case BoundKind.OutDeconstructVarPendingInference: 404case BoundKind.DiscardExpression: 408case BoundKind.IndexerAccess: 412case BoundKind.UnconvertedObjectCreationExpression: 419case BoundKind.PointerIndirectionOperator: 427case BoundKind.PointerElementAccess: 442if (expr.Kind == BoundKind.MethodGroup && valueKind != BindValueKind.RValueOrMethodGroup) 467if ((object)otherSymbol != null && receiver?.Kind == BoundKind.TypeOrValueExpression) 506case BoundKind.TypeOrValueExpression: 507case BoundKind.QueryClause when ((BoundQueryClause)expression).Value.Kind == BoundKind.TypeOrValueExpression: 539case BoundKind.PropertyAccess: 540case BoundKind.IndexerAccess: 541case BoundKind.ImplicitIndexerAccess when ((BoundImplicitIndexerAccess)expr).IndexerOrSliceAccess.Kind == BoundKind.IndexerAccess: 544case BoundKind.EventAccess: 564case BoundKind.NamespaceExpression: 569case BoundKind.TypeExpression: 574case BoundKind.Lambda: 575case BoundKind.UnboundLambda: 580case BoundKind.UnconvertedAddressOfOperator: 585case BoundKind.MethodGroup when valueKind == BindValueKind.AddressOf: 590case BoundKind.MethodGroup: 596case BoundKind.RangeVariable: 612case BoundKind.Conversion: 623case BoundKind.ArrayAccess: 627case BoundKind.PointerIndirectionOperator: 629case BoundKind.RefValueOperator: 631case BoundKind.DynamicMemberAccess: 632case BoundKind.DynamicIndexerAccess: 633case BoundKind.DynamicObjectInitializerMember: 645case BoundKind.PointerElementAccess: 662case BoundKind.Parameter: 666case BoundKind.Local: 670case BoundKind.ThisReference: 698case BoundKind.ImplicitReceiver: 699case BoundKind.ObjectOrCollectionValuePlaceholder: 703case BoundKind.Call: 707case BoundKind.FunctionPointerInvocation: 715case BoundKind.ImplicitIndexerAccess: 729case BoundKind.ImplicitIndexerReceiverPlaceholder: 732case BoundKind.DeconstructValuePlaceholder: 735case BoundKind.ConditionalOperator: 749case BoundKind.FieldAccess: 755case BoundKind.AssignmentOperator: 807case BoundKind.NamespaceExpression: 810case BoundKind.TypeExpression: 1398return Flags.Includes(BinderFlags.ObjectInitializerMember) && receiver.Kind == BoundKind.ObjectOrCollectionValuePlaceholder || 1562ReportDiagnosticsIfObsolete(diagnostics, setMethod, node, receiver?.Kind == BoundKind.BaseReference); 1612ReportDiagnosticsIfObsolete(diagnostics, getMethod, node, receiver?.Kind == BoundKind.BaseReference); 1695if (receiverOpt?.Kind == BoundKind.BaseReference && member.IsAbstract) 2107if (argument.Kind == BoundKind.ArgListOperator) 2936case BoundKind.ArrayAccess: 2937case BoundKind.PointerIndirectionOperator: 2938case BoundKind.PointerElementAccess: 2942case BoundKind.RefValueOperator: 2948case BoundKind.DiscardExpression: 2952case BoundKind.DynamicMemberAccess: 2953case BoundKind.DynamicIndexerAccess: 2959case BoundKind.Parameter: 2962case BoundKind.Local: 2965case BoundKind.CapturedReceiverPlaceholder: 2969case BoundKind.ThisReference: 2974case BoundKind.ConditionalOperator: 2987case BoundKind.FieldAccess: 2990case BoundKind.EventAccess: 3009case BoundKind.Call: 3030case BoundKind.FunctionPointerInvocation: 3051case BoundKind.IndexerAccess: 3067case BoundKind.ImplicitIndexerAccess: 3113case BoundKind.PropertyAccess: 3127case BoundKind.AssignmentOperator: 3179case BoundKind.ArrayAccess: 3180case BoundKind.PointerIndirectionOperator: 3181case BoundKind.PointerElementAccess: 3185case BoundKind.RefValueOperator: 3196case BoundKind.DiscardExpression: 3200case BoundKind.DynamicMemberAccess: 3201case BoundKind.DynamicIndexerAccess: 3207case BoundKind.Parameter: 3211case BoundKind.Local: 3215case BoundKind.CapturedReceiverPlaceholder: 3223case BoundKind.ThisReference: 3228case BoundKind.ConditionalOperator: 3240case BoundKind.FieldAccess: 3244case BoundKind.EventAccess: 3254case BoundKind.Call: 3279case BoundKind.IndexerAccess: 3304case BoundKind.ImplicitIndexerAccess: 3363case BoundKind.FunctionPointerInvocation: 3386case BoundKind.PropertyAccess: 3410case BoundKind.AssignmentOperator: 3427case BoundKind.Conversion: 3435case BoundKind.ThrowExpression: 3494case BoundKind.ThisReference: 3498case BoundKind.DefaultLiteral: 3499case BoundKind.DefaultExpression: 3500case BoundKind.Utf8String: 3504case BoundKind.Parameter: 3507case BoundKind.FromEndIndexExpression: 3512case BoundKind.TupleLiteral: 3513case BoundKind.ConvertedTupleLiteral: 3517case BoundKind.MakeRefOperator: 3518case BoundKind.RefValueOperator: 3524case BoundKind.DiscardExpression: 3527case BoundKind.DeconstructValuePlaceholder: 3528case BoundKind.InterpolatedStringArgumentPlaceholder: 3529case BoundKind.AwaitableValuePlaceholder: 3532case BoundKind.Local: 3535case BoundKind.CapturedReceiverPlaceholder: 3540case BoundKind.StackAllocArrayCreation: 3541case BoundKind.ConvertedStackAllocExpression: 3544case BoundKind.ConditionalOperator: 3560case BoundKind.NullCoalescingOperator: 3566case BoundKind.FieldAccess: 3579case BoundKind.Call: 3594case BoundKind.FunctionPointerInvocation: 3608case BoundKind.IndexerAccess: 3624case BoundKind.ImplicitIndexerAccess: 3663case BoundKind.PropertyAccess: 3677case BoundKind.ObjectCreationExpression: 3699case BoundKind.WithExpression: 3705case BoundKind.UnaryOperator: 3708case BoundKind.Conversion: 3719case BoundKind.AssignmentOperator: 3722case BoundKind.IncrementOperator: 3725case BoundKind.CompoundAssignmentOperator: 3731case BoundKind.BinaryOperator: 3737case BoundKind.RangeExpression: 3743case BoundKind.UserDefinedConditionalLogicalOperator: 3749case BoundKind.QueryClause: 3752case BoundKind.RangeVariable: 3755case BoundKind.ObjectInitializerExpression: 3759case BoundKind.CollectionInitializerExpression: 3763case BoundKind.CollectionElementInitializer: 3767case BoundKind.ObjectInitializerMember: 3773case BoundKind.ImplicitReceiver: 3774case BoundKind.ObjectOrCollectionValuePlaceholder: 3779case BoundKind.InterpolatedStringHandlerPlaceholder: 3784case BoundKind.DisposableValuePlaceholder: 3789case BoundKind.PointerElementAccess: 3790case BoundKind.PointerIndirectionOperator: 3794case BoundKind.AsOperator: 3795case BoundKind.AwaitExpression: 3796case BoundKind.ConditionalAccess: 3797case BoundKind.ConditionalReceiver: 3798case BoundKind.ArrayAccess: 3802case BoundKind.ConvertedSwitchExpression: 3803case BoundKind.UnconvertedSwitchExpression: 3832if (expression.Kind == BoundKind.AssignmentOperator) 3901case BoundKind.ThisReference: 3906case BoundKind.DefaultLiteral: 3907case BoundKind.DefaultExpression: 3908case BoundKind.Utf8String: 3912case BoundKind.Parameter: 3915case BoundKind.TupleLiteral: 3916case BoundKind.ConvertedTupleLiteral: 3920case BoundKind.MakeRefOperator: 3921case BoundKind.RefValueOperator: 3925case BoundKind.DiscardExpression: 3929case BoundKind.DeconstructValuePlaceholder: 3930case BoundKind.AwaitableValuePlaceholder: 3931case BoundKind.InterpolatedStringArgumentPlaceholder: 3939case BoundKind.Local: 3948case BoundKind.CapturedReceiverPlaceholder: 3953case BoundKind.StackAllocArrayCreation: 3954case BoundKind.ConvertedStackAllocExpression: 3962case BoundKind.UnconvertedConditionalOperator: 3970case BoundKind.ConditionalOperator: 3986case BoundKind.NullCoalescingOperator: 3991case BoundKind.FieldAccess: 4004case BoundKind.Call: 4024case BoundKind.FunctionPointerInvocation: 4042case BoundKind.IndexerAccess: 4062case BoundKind.ImplicitIndexerAccess: 4111case BoundKind.PropertyAccess: 4129case BoundKind.ObjectCreationExpression: 4164case BoundKind.WithExpression: 4175case BoundKind.UnaryOperator: 4179case BoundKind.FromEndIndexExpression: 4183case BoundKind.Conversion: 4194case BoundKind.AssignmentOperator: 4198case BoundKind.IncrementOperator: 4202case BoundKind.CompoundAssignmentOperator: 4208case BoundKind.BinaryOperator: 4219case BoundKind.RangeExpression: 4229case BoundKind.UserDefinedConditionalLogicalOperator: 4235case BoundKind.QueryClause: 4239case BoundKind.RangeVariable: 4243case BoundKind.ObjectInitializerExpression: 4249case BoundKind.CollectionInitializerExpression: 4255case BoundKind.CollectionElementInitializer: 4259case BoundKind.PointerElementAccess: 4263case BoundKind.PointerIndirectionOperator: 4267case BoundKind.AsOperator: 4268case BoundKind.AwaitExpression: 4269case BoundKind.ConditionalAccess: 4270case BoundKind.ArrayAccess: 4274case BoundKind.UnconvertedSwitchExpression: 4275case BoundKind.ConvertedSwitchExpression: 4438if (expression.Kind == BoundKind.AssignmentOperator) 4595case BoundKind.ArrayAccess: 4605case BoundKind.PointerIndirectionOperator: 4606case BoundKind.RefValueOperator: 4609case BoundKind.ThisReference: 4624case BoundKind.ThrowExpression: 4628case BoundKind.Parameter: 4632case BoundKind.Local: 4639case BoundKind.Call: 4644case BoundKind.Dup: 4650case BoundKind.FieldAccess: 4653case BoundKind.Sequence: 4656case BoundKind.AssignmentOperator: 4666case BoundKind.ComplexConditionalReceiver: 4679goto case BoundKind.ConditionalReceiver; 4681case BoundKind.ConditionalReceiver: 4686case BoundKind.ConditionalOperator: 4799fieldAccess.ReceiverOpt.Kind == BoundKind.ThisReference;
Binder\Binder_Attributes.cs (5)
909case BoundKind.FieldAccess: 914case BoundKind.PropertyAccess: 959case BoundKind.Conversion: 961case BoundKind.TypeOfOperator: 963case BoundKind.ArrayCreation:
Binder\Binder_Await.cs (4)
78if (expression.Kind != BoundKind.Call || 340if (getAwaiterCall.Kind != BoundKind.Call) 378if (qualified.Kind != BoundKind.PropertyAccess) 446if (getAwaiterGetResultCall.Kind != BoundKind.Call)
Binder\Binder_Conversions.cs (14)
135if (conversion.IsAnonymousFunction && source.Kind == BoundKind.UnboundLambda) 211if (source.Kind == BoundKind.UnconvertedSwitchExpression) 233if (source.Kind == BoundKind.UnconvertedConditionalOperator) 648Debug.Assert(source.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda); 655if (source.Kind == BoundKind.UnboundLambda && 664source.Kind == BoundKind.MethodGroup && 1003if (node.Kind != BoundKind.MethodGroup) 1144if (receiverOpt.Kind == BoundKind.QueryClause) 1245while (receiverOpt.Kind == BoundKind.QueryClause) 1250return receiverOpt.Kind == BoundKind.TypeExpression; 1262case BoundKind.ThisReference: 1263case BoundKind.HostObjectMemberReference: 1264case BoundKind.PreviousSubmissionReference:
Binder\Binder_Deconstruct.cs (9)
212if (boundRHS.Kind == BoundKind.TupleLiteral) 371case BoundKind.DeconstructionVariablePendingInference: 376case BoundKind.DiscardExpression: 406case BoundKind.DeconstructionVariablePendingInference: 410case BoundKind.DiscardExpression: 488if (element.Kind == BoundKind.TupleLiteral) 597if (expression.Kind == BoundKind.DiscardExpression) 661if (memberAccess.Kind != BoundKind.MethodGroup) 792if (expression == null && checkedVariable.Kind != BoundKind.DiscardExpression)
Binder\Binder_Expressions.cs (64)
197BoundKind exprKind = expr.Kind; 199if (expr.HasAnyErrors && ((object)resultType != null || exprKind == BoundKind.UnboundLambda || exprKind == BoundKind.DefaultLiteral)) 204if (exprKind == BoundKind.BadExpression) 251if (valueOrType.Kind == BoundKind.TypeExpression) 399Debug.Assert(expr.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup); 520if (expr.Kind == BoundKind.ArgListOperator) 2514if (operand.Kind == BoundKind.UnboundLambda) 2563case BoundKind.MethodGroup: 2573case BoundKind.TupleLiteral: 2597case BoundKind.StackAllocArrayCreation: 2603case BoundKind.UnconvertedConditionalOperator when operand.Type is null: 2604case BoundKind.UnconvertedSwitchExpression when operand.Type is null: 2609case BoundKind.UnconvertedAddressOfOperator: 2854case BoundKind.PropertyAccess: 2855case BoundKind.IndexerAccess: 3188else if (argument.Kind == BoundKind.OutVariablePendingInference) 3193else if (argument.Kind == BoundKind.OutDeconstructVarPendingInference) 3198else if (argument.Kind == BoundKind.DiscardExpression && !argument.HasExpressionType()) 4579else if (argument.Kind == BoundKind.MethodGroup) 4958if (boundMember.Kind == BoundKind.PropertyGroup) 5001BoundKind boundMemberKind = boundMember.Kind; 5012case BoundKind.FieldAccess: 5029case BoundKind.EventAccess: 5032case BoundKind.PropertyAccess: 5036case BoundKind.IndexerAccess: 5069case BoundKind.DynamicObjectInitializerMember: 5072case BoundKind.DynamicIndexerAccess: 5082case BoundKind.ArrayAccess: 5083case BoundKind.PointerElementAccess: 5526if (addMethodInvocation.Kind == BoundKind.DynamicInvocation) 5537else if (addMethodInvocation.Kind == BoundKind.Call) 5566Debug.Assert(addMethodInvocation.Kind == BoundKind.BadExpression); 5901case BoundKind.ObjectCreationExpression: 5907case BoundKind.BadExpression: 6384if (boundValue.Kind == BoundKind.Conversion) 6574if (boundLeft.Kind == BoundKind.UnboundLambda) 6621case BoundKind.NamespaceExpression: 6631case BoundKind.TypeExpression: 6641case BoundKind.TypeOrValueExpression: 6651if (boundLeft.Kind == BoundKind.Literal && ((BoundLiteral)boundLeft).ConstantValueOpt == ConstantValue.Null) 6824case BoundKind.MethodGroup: 6846case BoundKind.PropertyGroup: 6879bool leftIsBaseReference = boundLeft.Kind == BoundKind.BaseReference; 6970if (boundLeft.HasAnyErrors && boundLeft.Kind != BoundKind.TypeOrValueExpression) 6992else if (boundLeft.Kind == BoundKind.TypeExpression || 6993boundLeft.Kind == BoundKind.BaseReference || 7208ReportDiagnosticsIfObsolete(diagnostics, symbol, node, hasBaseReceiver: left.Kind == BoundKind.BaseReference); 7596ReportDiagnosticsIfObsolete(diagnostics, propertySymbol, node, hasBaseReceiver: receiver?.Kind == BoundKind.BaseReference); 7691case BoundKind.PreviousSubmissionReference: 7694case BoundKind.TypeExpression: 7696case BoundKind.QueryClause: 7880if (receiver.Kind == BoundKind.PropertyGroup) 8056if (index.Kind == BoundKind.OutVariablePendingInference) 8060else if (index.Kind == BoundKind.DiscardExpression && !index.HasExpressionType()) 8248LookupOptions lookupOptions = expr.Kind == BoundKind.BaseReference ? LookupOptions.UseBaseReferenceAccessibility : LookupOptions.Default; 8362BoundKind receiverKind = receiver.Kind; 8363if (receiverKind == BoundKind.BaseReference) 8368else if (receiverKind == BoundKind.TypeOrValueExpression) 8484ReportDiagnosticsIfObsolete(diagnostics, property, syntax, hasBaseReceiver: receiver != null && receiver.Kind == BoundKind.BaseReference); 8493if (!gotError && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 9352if (access.Kind == BoundKind.MethodGroup) 9511if (receiver.Kind == BoundKind.UnboundLambda)
Binder\Binder_Initializers.cs (2)
268if (statement.Kind == BoundKind.LabeledStatement) 271while (labeledStatementBody.Kind == BoundKind.LabeledStatement)
Binder\Binder_Invocation.cs (37)
98if (!allowFieldsAndProperties && (boundExpression.Kind == BoundKind.FieldAccess || boundExpression.Kind == BoundKind.PropertyAccess)) 102if (boundExpression.Kind == BoundKind.FieldAccess) 127Debug.Assert(!args.Any(static e => e.Kind == BoundKind.OutVariablePendingInference || 128e.Kind == BoundKind.OutDeconstructVarPendingInference || 129e.Kind == BoundKind.DiscardExpression && !e.HasExpressionType())); 142if (queryClause != null && result.Kind == BoundKind.DynamicInvocation) 182string name = boundExpression.Kind == BoundKind.MethodGroup ? GetName(node.Expression) : null; 201if (argument.Kind == BoundKind.OutVariablePendingInference) 268else if (boundExpression.Kind == BoundKind.MethodGroup) 315if (expression.Kind == BoundKind.MethodGroup) 325case BoundKind.BaseReference: 330case BoundKind.ThisReference: 352case BoundKind.TypeOrValueExpression: 477if (arg.Kind == BoundKind.Lambda || arg.Kind == BoundKind.UnboundLambda) 483else if (arg.Kind == BoundKind.MethodGroup) 489else if (arg.Kind == BoundKind.ArgListOperator) 878case BoundKind.Call: 892else if (call.ReceiverOpt.Kind == BoundKind.BaseReference && this.ContainingType.IsRestrictedType()) 900case BoundKind.DynamicInvocation: 913case BoundKind.FunctionPointerInvocation: 1093if (!gotError && method.RequiresInstanceReceiver && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 1109bool hasBaseReceiver = receiver != null && receiver.Kind == BoundKind.BaseReference; 1528case BoundKind.TypeOrValueExpression: 1541case BoundKind.QueryClause: 1579if ((object)expr != null && expr.Kind != BoundKind.TypeExpression) 1695case BoundKind.UnboundLambda: 1714case BoundKind.OutVariablePendingInference: 1715case BoundKind.DiscardExpression: 1723if (argument.Kind == BoundKind.OutVariablePendingInference) 1734else if (argument.Kind == BoundKind.DiscardExpression) 1748case BoundKind.OutDeconstructVarPendingInference: 1753case BoundKind.Parameter: 1754case BoundKind.Local: 1843var originalMethods = (expr.Kind == BoundKind.MethodGroup) ? ((BoundMethodGroup)expr).Methods : ImmutableArray<MethodSymbol>.Empty; 1891if (!boundArgument.HasAnyErrors && syntaxIsOk && boundArgument.Kind == BoundKind.MethodGroup)
Binder\Binder_Operators.cs (42)
33if (left.Kind == BoundKind.EventAccess) 99if (left.Kind == BoundKind.EventAccess && !CheckEventValueKind((BoundEventAccess)left, BindValueKind.Assignable, diagnostics)) 241Debug.Assert(left.Kind != BoundKind.EventAccess || hasError); 474if (result.Kind == BoundKind.TypeExpression 479else if (result.Kind == BoundKind.BadExpression) 805case (BoundKind.DefaultLiteral, _) when !isEquality: 806case (_, BoundKind.DefaultLiteral) when !isEquality: 810case (BoundKind.DefaultLiteral, BoundKind.DefaultLiteral): 813case (BoundKind.DefaultLiteral, _) when right.Type is TypeParameterSymbol: 817case (_, BoundKind.DefaultLiteral) when left.Type is TypeParameterSymbol: 821case (BoundKind.UnconvertedObjectCreationExpression, _): 824case (_, BoundKind.UnconvertedObjectCreationExpression): 1915if (left.Kind == BoundKind.Conversion && right.Kind == BoundKind.Conversion) 2415case BoundKind.NamespaceExpression: 2416case BoundKind.TypeExpression: 2537BoundKind exprKind = expr.Kind; 2540case BoundKind.FieldAccess: 2541case BoundKind.EventAccess: 2545if (exprKind == BoundKind.FieldAccess) 2587case BoundKind.RangeVariable: 2595case BoundKind.Parameter: 2618case BoundKind.ThisReference: 2619case BoundKind.BaseReference: 2624case BoundKind.Local: 2634case BoundKind.PointerIndirectionOperator: //Covers ->, since the receiver will be one of these. 2635case BoundKind.ConvertedStackAllocExpression: 2639case BoundKind.PointerElementAccess: 2654case BoundKind.PropertyAccess: // Never fixed 2655case BoundKind.IndexerAccess: // Never fixed 3116case BoundKind.UnboundLambda: 3117case BoundKind.Lambda: 3118case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 3246operand.Kind == BoundKind.MethodGroup || 3635case BoundKind.UnboundLambda: 3636case BoundKind.Lambda: 3637case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 3646case BoundKind.TupleLiteral: 3647case BoundKind.ConvertedTupleLiteral: 3941if (leftOperand.Kind == BoundKind.UnboundLambda || leftOperand.Kind == BoundKind.MethodGroup)
Binder\Binder_Patterns.cs (11)
508wasExpression = expression.Kind != BoundKind.TypeExpression; 515Debug.Assert(expression is { Kind: BoundKind.TypeExpression, Type: { } }); 537wasExpression = expression.Kind switch { BoundKind.BadExpression => false, BoundKind.TypeExpression => false, _ => true }; 677if (convertedExpression.Kind == BoundKind.Conversion) 1552if (boundMember.Kind == BoundKind.PropertyGroup) 1562case BoundKind.FieldAccess: 1563case BoundKind.PropertyAccess: 1566case BoundKind.IndexerAccess: 1567case BoundKind.DynamicIndexerAccess: 1568case BoundKind.EventAccess:
Binder\Binder_Query.cs (7)
923while (ultimateReceiver.Kind == BoundKind.QueryClause) 946else if (ultimateReceiver.Kind == BoundKind.NamespaceExpression) 950else if (ultimateReceiver.Kind == BoundKind.Lambda || ultimateReceiver.Kind == BoundKind.UnboundLambda) 955else if (ultimateReceiver.Kind == BoundKind.MethodGroup) 976else if (ultimateReceiver.Kind == BoundKind.TypeExpression) 984else if (ultimateReceiver.Kind == BoundKind.TypeOrValueExpression)
Binder\Binder_QueryErrors.cs (1)
220if (arg.Kind == BoundKind.UnboundLambda)
Binder\Binder_Statements.cs (37)
151(result.Kind == BoundKind.Block && 895BoundExpression expression = value.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup ? 1256case BoundKind.AddressOfOperator: 1260case BoundKind.FieldAccess: 1437bool discardAssignment = op1.Kind == BoundKind.DiscardExpression; 1503if (op1.Kind != BoundKind.DynamicIndexerAccess && 1504op1.Kind != BoundKind.DynamicMemberAccess && 1505op1.Kind != BoundKind.DynamicObjectInitializerMember) 1520if ((op1.Kind == BoundKind.EventAccess) && 1577else if (op1.Kind is BoundKind.Local or BoundKind.Parameter) 1589Debug.Assert(op1.Kind != BoundKind.Parameter); // If the assert fails, add a corresponding test. 1643case BoundKind.PropertyAccess: 1650case BoundKind.IndexerAccess: 1657case BoundKind.ImplicitIndexerAccess: 1781(propertyIsStatic || receiver.Kind == BoundKind.ThisReference); 1798else if (receiver.Kind == BoundKind.BaseReference) 1923if (expression.HasAnyErrors && expression.Kind != BoundKind.UnboundLambda) 2286case BoundKind.BadExpression: 2290case BoundKind.UnboundLambda: 2295case BoundKind.TupleLiteral: 2319case BoundKind.MethodGroup: 2324case BoundKind.UnconvertedAddressOfOperator: 2329case BoundKind.Literal: 2346case BoundKind.StackAllocArrayCreation: 2352case BoundKind.UnconvertedSwitchExpression: 2366case BoundKind.AddressOfOperator when targetType.IsFunctionPointer(): 2371case BoundKind.UnconvertedConditionalOperator: 2400Debug.Assert(operand.HasAnyErrors && operand.Kind != BoundKind.UnboundLambda, "Missing a case in implicit conversion error reporting"); 2582if (expr.Kind == BoundKind.AssignmentOperator) 2585if (assignment.Right.Kind == BoundKind.Literal && assignment.Right.ConstantValueOpt.Discriminator == ConstantValueTypeDiscriminator.Boolean) 3333if (expression.Kind == BoundKind.DelegateCreationExpression || expression.Kind == BoundKind.NameOfOperator) 3361if ((refKind != RefKind.None) != (returnRefKind != RefKind.None) && expression.Kind != BoundKind.ThrowExpression) 4020if (boundAccess.Kind != BoundKind.MethodGroup) 4046if (patternMethodCall.Kind != BoundKind.Call)
Binder\Binder_TupleOperators.cs (2)
217Debug.Assert((object)left.Type != null || left.Kind == BoundKind.TupleLiteral); 218Debug.Assert((object)right.Type != null || right.Kind == BoundKind.TupleLiteral);
Binder\DecisionDagBuilder.cs (3)
2277if (RemainingTests[0] is One { Test: { Kind: BoundKind.DagNonNullTest } planA }) 2284case One { Test: { Kind: BoundKind.DagTypeTest } planB1 }: 2291case One { Test: { Kind: BoundKind.DagValueTest } planB2 }:
Binder\DecisionDagBuilder_ListPatterns.cs (1)
18list.Subpatterns.Count(p => p.Kind == BoundKind.SlicePattern) == (list.HasSlice ? 1 : 0) &&
Binder\ForEachLoopBinder.cs (1)
378if (iterationErrorExpression.Kind == BoundKind.DiscardExpression)
Binder\ForLoopBinder.cs (2)
108Debug.Assert(increment.Kind != BoundKind.StatementList || ((BoundStatementList)increment).Statements.Length > 1); 113if (increment.Kind == BoundKind.StatementList)
Binder\LockOrUsingBinder.cs (2)
61case BoundKind.Local: 64case BoundKind.Parameter:
Binder\RefSafetyAnalysis.cs (1)
485if (node.Left.Kind != BoundKind.DiscardExpression)
Binder\Semantics\Conversions\ConversionsBase.cs (15)
1024case BoundKind.Literal: 1032case BoundKind.DefaultLiteral: 1035case BoundKind.ExpressionWithNullability: 1045case BoundKind.TupleLiteral: 1053case BoundKind.UnboundLambda: 1060case BoundKind.MethodGroup: 1068case BoundKind.UnconvertedInterpolatedString: 1069case BoundKind.BinaryOperator when ((BoundBinaryOperator)sourceExpression).IsUnconvertedInterpolatedStringAddition: 1076case BoundKind.StackAllocArrayCreation: 1084case BoundKind.UnconvertedAddressOfOperator when destination is FunctionPointerTypeSymbol funcPtrType: 1092case BoundKind.ThrowExpression: 1095case BoundKind.UnconvertedObjectCreationExpression: 1335if (sourceExpression.Kind == BoundKind.TupleLiteral) 1570if (source.Kind != BoundKind.UnboundLambda) 1803if (sourceExpressionOpt?.Kind == BoundKind.TupleLiteral)
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (1)
456&& nonDelegate.Kind == BoundKind.UnboundLambda)
Binder\Semantics\OverloadResolution\MethodGroup.cs (1)
112if (this.Receiver.Kind == BoundKind.TypeExpression)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (15)
607if (argument.Kind == BoundKind.UnboundLambda && target.Type.GetDelegateType() is { }) 612else if (argument.Kind != BoundKind.TupleLiteral || 787if (argument.Kind == BoundKind.TupleLiteral && (object)argument.Type == null) 904if ((isFunctionPointer && argument.Kind != BoundKind.UnconvertedAddressOfOperator) || 905(!isFunctionPointer && argument.Kind is not (BoundKind.UnboundLambda or BoundKind.MethodGroup))) 960if ((isFunctionPointer && argument.Kind != BoundKind.UnconvertedAddressOfOperator) || 961(!isFunctionPointer && argument.Kind is not (BoundKind.UnboundLambda or BoundKind.MethodGroup))) 1329if (source.Kind is not (BoundKind.MethodGroup or BoundKind.UnconvertedAddressOfOperator)) 1340if (delegateOrFunctionPointerType.IsFunctionPointer() != (source.Kind == BoundKind.UnconvertedAddressOfOperator)) 1436if (source.Kind != BoundKind.UnboundLambda) 1490if (source.Kind != BoundKind.UnboundLambda) 2881if (source.Kind != BoundKind.UnboundLambda)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (18)
1747var argumentKind = arguments[i].Kind; 1751if (argumentKind == BoundKind.ArgListOperator) 1891var argumentKind = arguments[i].Kind; 1895if (argumentKind == BoundKind.ArgListOperator) 2057if (arguments[i].Kind == BoundKind.ArgListOperator) 2149if (arguments[i].Kind != BoundKind.ArgListOperator) 2436var nodeKind = node.Kind; 2437if (nodeKind == BoundKind.OutVariablePendingInference || 2438nodeKind == BoundKind.OutDeconstructVarPendingInference || 2439(nodeKind == BoundKind.DiscardExpression && !node.HasExpressionType())) 2524if (node.Kind == BoundKind.TupleLiteral) 2540if (node.Kind == BoundKind.UnboundLambda && 2580if (lambda.Body.Statements[0].Kind == BoundKind.ReturnStatement) 2846if (node?.Kind == BoundKind.MethodGroup) 3648if (argument.Kind == BoundKind.ArgListOperator) 3791if (argument.Kind == BoundKind.OutVariablePendingInference || 3792argument.Kind == BoundKind.OutDeconstructVarPendingInference || 3793(argument.Kind == BoundKind.DiscardExpression && (object)argType == null))
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (12)
638if (receiverOpt?.Kind == BoundKind.QueryClause) 1046if (argument.Kind == BoundKind.UnboundLambda) 1173argument.Kind != BoundKind.OutDeconstructVarPendingInference && 1174argument.Kind != BoundKind.OutVariablePendingInference && 1175argument.Kind != BoundKind.DiscardExpression) 1181if (argument.Kind == BoundKind.UnboundLambda && refArg == refParameter) 1185else if (argument.Kind == BoundKind.MethodGroup && parameterType.TypeKind == TypeKind.Delegate && 1190else if (argument.Kind == BoundKind.MethodGroup && parameterType.TypeKind == TypeKind.FunctionPointer) 1194else if (argument.Kind == BoundKind.UnconvertedAddressOfOperator && 1238Debug.Assert(argument.Kind != BoundKind.OutDeconstructVarPendingInference); 1239Debug.Assert(argument.Kind != BoundKind.OutVariablePendingInference); 1240Debug.Assert(argument.Kind != BoundKind.DiscardExpression || argument.HasExpressionType());
BoundTree\BoundDecisionDag.cs (1)
199return this.TopologicallySortedNodes.Any(static node => node is BoundEvaluationDecisionDagNode e && e.Evaluation.Kind == BoundKind.DagAssignmentEvaluation);
BoundTree\BoundExpression.cs (14)
37if ((Kind != BoundKind.Local && Kind != BoundKind.Parameter) || this.WasConverted) 57case BoundKind.TupleLiteral: 58case BoundKind.UnconvertedSwitchExpression: 59case BoundKind.UnconvertedObjectCreationExpression: 60case BoundKind.UnconvertedConditionalOperator: 61case BoundKind.DefaultLiteral: 62case BoundKind.UnconvertedInterpolatedString: 64case BoundKind.StackAllocArrayCreation: 69case BoundKind.BinaryOperator: 72case BoundKind.Local when !WasConverted: 73case BoundKind.Parameter when !WasConverted: 543return this.Condition.Kind == BoundKind.UnaryOperator && ((BoundUnaryOperator)this.Condition).OperatorKind.IsDynamic(); 671if (argument.Kind == BoundKind.TupleLiteral)
BoundTree\BoundExpressionExtensions.cs (21)
24case BoundKind.Local: 27case BoundKind.Parameter: 30case BoundKind.FieldAccess: 33case BoundKind.Call: 36case BoundKind.PropertyAccess: 39case BoundKind.IndexerAccess: 42case BoundKind.ImplicitIndexerAccess: 45case BoundKind.ObjectInitializerMember: 65return node is { Kind: BoundKind.Literal, ConstantValueOpt: { Discriminator: ConstantValueTypeDiscriminator.Null } }; 70return node.Kind == BoundKind.DefaultLiteral; 75return node.Kind == BoundKind.UnconvertedObjectCreationExpression; 91if (node.Kind == BoundKind.DefaultExpression || node.Kind == BoundKind.DefaultLiteral) 119Debug.Assert(expr.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda); 154case BoundKind.MethodGroup: 168case BoundKind.BadExpression: 176case BoundKind.DelegateCreationExpression: 185case BoundKind.Call: 199case BoundKind.IndexerAccess: 226case BoundKind.Conversion:
BoundTree\BoundMethodGroup.cs (1)
61if (this.ReceiverOpt == null || this.ReceiverOpt.Kind == BoundKind.TypeExpression)
BoundTree\BoundNode.cs (7)
17private readonly BoundKind _kind; 66protected BoundNode(BoundKind kind, SyntaxNode syntax) 69kind == BoundKind.SequencePoint || 70kind == BoundKind.SequencePointExpression || 71kind == (BoundKind)byte.MaxValue || // used in SpillSequenceSpiller 78protected BoundNode(BoundKind kind, SyntaxNode syntax, bool hasErrors) 322public BoundKind Kind
BoundTree\BoundNodeExtensions.cs (5)
42if (statement!.Kind == BoundKind.ExpressionStatement) 45if (expression.Kind == BoundKind.Sequence && ((BoundSequence)expression).SideEffects.IsDefaultOrEmpty) 51return expression.Kind == BoundKind.Call && ((BoundCall)expression).IsConstructorInitializer(); 64(receiverOpt.Kind == BoundKind.ThisReference || receiverOpt.Kind == BoundKind.BaseReference);
BoundTree\BoundStatementExtensions.cs (6)
18case BoundKind.LabelStatement: 19case BoundKind.LabeledStatement: 20case BoundKind.SwitchSection: 34case BoundKind.LabelStatement: 38case BoundKind.LabeledStatement: 42case BoundKind.SwitchSection:
BoundTree\BoundTreeRewriter.cs (2)
114if (child.Kind != BoundKind.BinaryOperator) 129if (child.Kind != BoundKind.BinaryOperator)
BoundTree\BoundTreeVisitors.cs (48)
33case BoundKind.TypeExpression: 35case BoundKind.NamespaceExpression: 37case BoundKind.UnaryOperator: 39case BoundKind.IncrementOperator: 41case BoundKind.BinaryOperator: 43case BoundKind.CompoundAssignmentOperator: 45case BoundKind.AssignmentOperator: 47case BoundKind.NullCoalescingOperator: 49case BoundKind.ConditionalOperator: 51case BoundKind.ArrayAccess: 53case BoundKind.TypeOfOperator: 55case BoundKind.DefaultLiteral: 57case BoundKind.DefaultExpression: 59case BoundKind.IsOperator: 61case BoundKind.AsOperator: 63case BoundKind.Conversion: 65case BoundKind.SequencePointExpression: 67case BoundKind.SequencePoint: 69case BoundKind.SequencePointWithSpan: 71case BoundKind.Block: 73case BoundKind.LocalDeclaration: 75case BoundKind.MultipleLocalDeclarations: 77case BoundKind.Sequence: 79case BoundKind.NoOpStatement: 81case BoundKind.ReturnStatement: 83case BoundKind.ThrowStatement: 85case BoundKind.ExpressionStatement: 87case BoundKind.BreakStatement: 89case BoundKind.ContinueStatement: 91case BoundKind.IfStatement: 93case BoundKind.ForEachStatement: 95case BoundKind.TryStatement: 97case BoundKind.Literal: 99case BoundKind.ThisReference: 101case BoundKind.Local: 103case BoundKind.Parameter: 105case BoundKind.LabelStatement: 107case BoundKind.GotoStatement: 109case BoundKind.LabeledStatement: 111case BoundKind.StatementList: 113case BoundKind.ConditionalGoto: 115case BoundKind.Call: 117case BoundKind.ObjectCreationExpression: 119case BoundKind.DelegateCreationExpression: 121case BoundKind.FieldAccess: 123case BoundKind.PropertyAccess: 125case BoundKind.Lambda: 127case BoundKind.NameOfOperator:
BoundTree\BoundTreeWalker.cs (2)
106if (node.Left.Kind != BoundKind.BinaryOperator) 121while (current.Kind == BoundKind.BinaryOperator)
BoundTree\Constructors.cs (2)
69case BoundKind.FieldAccess: 72case BoundKind.Local:
BoundTree\Expression.cs (2)
170(this.Kind == BoundKind.StatementList || this.Kind == BoundKind.Scope) ? StaticCast<BoundNode?>.From(this.Statements) : ImmutableArray<BoundNode?>.Empty;
CodeGen\EmitAddress.cs (25)
30case BoundKind.RefValueOperator: 34case BoundKind.Local: 37case BoundKind.Dup: 41case BoundKind.ConditionalReceiver: 47case BoundKind.ComplexConditionalReceiver: 51case BoundKind.Parameter: 54case BoundKind.FieldAccess: 57case BoundKind.ArrayAccess: 66case BoundKind.ThisReference: 87case BoundKind.PreviousSubmissionReference: 91case BoundKind.BaseReference: 95case BoundKind.PassByCopy: 98case BoundKind.Sequence: 101case BoundKind.PointerIndirectionOperator: 108case BoundKind.PseudoVariable: 112case BoundKind.Call: 125case BoundKind.FunctionPointerInvocation: 137case BoundKind.DefaultExpression: 147case BoundKind.ConditionalOperator: 156case BoundKind.AssignmentOperator: 168case BoundKind.ThrowExpression: 352case BoundKind.Local: 361case BoundKind.Sequence: 364case BoundKind.FieldAccess: 525if (receiver.Kind != BoundKind.ConditionalReceiver)
CodeGen\EmitArrayInitializer.cs (4)
345if (inits[0].Kind == BoundKind.ArrayInitialization) 367Debug.Assert(inits.All((init) => init.Kind != BoundKind.ArrayInitialization) || 368inits.All((init) => init.Kind == BoundKind.ArrayInitialization), 371return inits.Length != 0 && inits[0].Kind == BoundKind.ArrayInitialization;
CodeGen\EmitExpression.cs (142)
97case BoundKind.AssignmentOperator: 101case BoundKind.Call: 105case BoundKind.ObjectCreationExpression: 109case BoundKind.DelegateCreationExpression: 113case BoundKind.ArrayCreation: 117case BoundKind.ConvertedStackAllocExpression: 121case BoundKind.ReadOnlySpanFromArray: 125case BoundKind.Conversion: 129case BoundKind.Local: 133case BoundKind.Dup: 137case BoundKind.PassByCopy: 141case BoundKind.Parameter: 148case BoundKind.FieldAccess: 152case BoundKind.ArrayAccess: 156case BoundKind.ArrayLength: 160case BoundKind.ThisReference: 167case BoundKind.PreviousSubmissionReference: 171case BoundKind.BaseReference: 184case BoundKind.Sequence: 188case BoundKind.SequencePointExpression: 192case BoundKind.UnaryOperator: 196case BoundKind.BinaryOperator: 200case BoundKind.NullCoalescingOperator: 204case BoundKind.IsOperator: 208case BoundKind.AsOperator: 212case BoundKind.DefaultExpression: 216case BoundKind.TypeOfOperator: 223case BoundKind.SizeOfOperator: 230case BoundKind.ModuleVersionId: 235case BoundKind.ModuleVersionIdString: 240case BoundKind.InstrumentationPayloadRoot: 245case BoundKind.MethodDefIndex: 250case BoundKind.MaximumMethodDefIndex: 255case BoundKind.SourceDocumentIndex: 260case BoundKind.LocalId: 265case BoundKind.ParameterId: 270case BoundKind.MethodInfo: 277case BoundKind.FieldInfo: 284case BoundKind.ConditionalOperator: 288case BoundKind.AddressOfOperator: 292case BoundKind.PointerIndirectionOperator: 296case BoundKind.ArgList: 300case BoundKind.ArgListOperator: 305case BoundKind.RefTypeOperator: 309case BoundKind.MakeRefOperator: 313case BoundKind.RefValueOperator: 317case BoundKind.LoweredConditionalAccess: 321case BoundKind.ConditionalReceiver: 325case BoundKind.ComplexConditionalReceiver: 329case BoundKind.PseudoVariable: 333case BoundKind.ThrowExpression: 337case BoundKind.FunctionPointerInvocation: 341case BoundKind.FunctionPointerLoad: 347Debug.Assert(expression.Kind != BoundKind.BadExpression); 429(receiver.Kind == BoundKind.Local && IsStackLocal(((BoundLocal)receiver).LocalSymbol)) || 845Debug.Assert(sequence.Value.Kind != BoundKind.TypeExpression || !used); 846if (sequence.Value.Kind != BoundKind.TypeExpression) 973Debug.Assert(arguments[i].Kind == BoundKind.ArgListOperator); 1191else if (receiver.Kind == BoundKind.Conversion) 1202else if (receiver.Kind == BoundKind.FieldAccess) 1233if (receiver.Kind == BoundKind.Conversion && ((BoundConversion)receiver).ConversionKind == ConversionKind.Unboxing) 1246case BoundKind.Parameter: 1250case BoundKind.Local: 1254case BoundKind.Sequence: 1257case BoundKind.FieldAccess: 1476Debug.Assert(receiver.Kind != BoundKind.BaseReference, "base should always use call"); 1487case BoundKind.ArrayCreation: 1490case BoundKind.ObjectCreationExpression: 1495case BoundKind.Conversion: 1515case BoundKind.ThisReference: 1522case BoundKind.FieldAccess: 1526case BoundKind.Local: 1530case BoundKind.DelegateCreationExpression: 1533case BoundKind.Sequence: 1537case BoundKind.AssignmentOperator: 1541case BoundKind.TypeOfOperator: 1544case BoundKind.ConditionalReceiver: 1560case BoundKind.ThisReference: 1563case BoundKind.Sequence: 1606Debug.Assert(receiver.Kind == BoundKind.ThisReference); 1912case BoundKind.TypeExpression: 1913case BoundKind.Parameter: 1914case BoundKind.Local: 1915case BoundKind.ThisReference: 1917case BoundKind.FieldAccess: 1928case BoundKind.PassByCopy: 1931case BoundKind.BinaryOperator: 1944case BoundKind.Conversion: 1993case BoundKind.Local: 1996case BoundKind.Parameter: 1999case BoundKind.Call: 2002case BoundKind.FunctionPointerInvocation: 2005case BoundKind.Dup: 2008case BoundKind.Sequence: 2403if (objCreation.Arguments.Length > 0 && objCreation.Arguments[0].Kind == BoundKind.ConvertedStackAllocExpression) 2437if (left.Kind == BoundKind.ArrayAccess && left.Type.TypeKind == TypeKind.TypeParameter && !left.Type.IsValueType) 2442if (left.Kind == BoundKind.FieldAccess) 2539case BoundKind.Parameter: 2542case BoundKind.Local: 2558case BoundKind.RefValueOperator: 2562case BoundKind.FieldAccess: 2579case BoundKind.Parameter: 2591case BoundKind.Local: 2643case BoundKind.ArrayAccess: 2652case BoundKind.ThisReference: 2663case BoundKind.Dup: 2674case BoundKind.ConditionalOperator: 2686case BoundKind.PointerIndirectionOperator: 2696case BoundKind.Sequence: 2709case BoundKind.Call: 2720case BoundKind.FunctionPointerInvocation: 2731case BoundKind.PropertyAccess: 2732case BoundKind.IndexerAccess: 2734case BoundKind.PreviousSubmissionReference: 2738case BoundKind.PseudoVariable: 2743case BoundKind.ModuleVersionId: 2744case BoundKind.InstrumentationPayloadRoot: 2747case BoundKind.AssignmentOperator: 2786Debug.Assert(lhs.Kind != BoundKind.Parameter || exprTempsAfter <= exprTempsBefore); 2788if (lhs.Kind == BoundKind.Local && ((BoundLocal)lhs).LocalSymbol.SynthesizedKind.IsLongLived()) 2846case BoundKind.FieldAccess: 2850case BoundKind.Local: 2877case BoundKind.ArrayAccess: 2883case BoundKind.ThisReference: 2887case BoundKind.Parameter: 2891case BoundKind.Dup: 2896case BoundKind.ConditionalOperator: 2901case BoundKind.RefValueOperator: 2902case BoundKind.PointerIndirectionOperator: 2903case BoundKind.PseudoVariable: 2907case BoundKind.Sequence: 2914case BoundKind.Call: 2919case BoundKind.FunctionPointerInvocation: 2924case BoundKind.ModuleVersionId: 2928case BoundKind.InstrumentationPayloadRoot: 2932case BoundKind.AssignmentOperator: 2941case BoundKind.PreviousSubmissionReference: 3644case BoundKind.Conversion: 3658case BoundKind.AssignmentOperator: 3662case BoundKind.Sequence: 3666case BoundKind.Local: 3675case BoundKind.Dup:
CodeGen\EmitOperators.cs (4)
94if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 118if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 474while (condition.Kind == BoundKind.UnaryOperator) 493if (condition.Kind == BoundKind.BinaryOperator)
CodeGen\EmitStatement.cs (31)
31case BoundKind.Block: 35case BoundKind.Scope: 39case BoundKind.SequencePoint: 43case BoundKind.SequencePointWithSpan: 47case BoundKind.SavePreviousSequencePoint: 51case BoundKind.RestorePreviousSequencePoint: 55case BoundKind.StepThroughSequencePoint: 59case BoundKind.ExpressionStatement: 63case BoundKind.StatementList: 67case BoundKind.ReturnStatement: 71case BoundKind.GotoStatement: 75case BoundKind.LabelStatement: 79case BoundKind.ConditionalGoto: 83case BoundKind.ThrowStatement: 87case BoundKind.TryStatement: 91case BoundKind.SwitchDispatch: 95case BoundKind.StateMachineScope: 99case BoundKind.NoOpStatement: 418case BoundKind.BinaryOperator: 526case BoundKind.LoweredConditionalAccess: 536(receiver.Kind == BoundKind.Local && IsStackLocal(((BoundLocal)receiver).LocalSymbol)) || 575case BoundKind.UnaryOperator: 585case BoundKind.IsOperator: 602case BoundKind.Sequence: 1110while (exceptionSource.Kind == BoundKind.Sequence) 1120case BoundKind.Local: 1130case BoundKind.FieldAccess: 1239if (expression.Kind == BoundKind.Sequence) 1247if (expression.Kind == BoundKind.SequencePointExpression) 1256case BoundKind.Local: 1265case BoundKind.Parameter:
CodeGen\Optimizer.cs (34)
451Debug.Assert(expr.Kind != BoundKind.Label); 761if (value != null && value.Kind == BoundKind.Local && ((BoundLocal)value).LocalSymbol == local) 769if (lastSideeffect.Kind == BoundKind.AssignmentOperator) 773assignment.Right.Kind == BoundKind.Sequence) 949bool mayPushReceiver = (right.Kind == BoundKind.ObjectCreationExpression && 995assignmentLocal.Type.IsPointerOrFunctionPointer() && right.Kind == BoundKind.Conversion && 1030(lhs.Kind is BoundKind.Local or BoundKind.Parameter or BoundKind.FieldAccess && lhs.GetRefKind() != RefKind.None), 1035case BoundKind.ThisReference: 1039case BoundKind.Parameter: 1047case BoundKind.Local: 1055case BoundKind.Call: 1059case BoundKind.FunctionPointerInvocation: 1063case BoundKind.ConditionalOperator: 1067case BoundKind.AssignmentOperator: 1071case BoundKind.Sequence: 1076case BoundKind.RefValueOperator: 1077case BoundKind.PointerIndirectionOperator: 1078case BoundKind.PseudoVariable: 1081case BoundKind.ModuleVersionId: 1082case BoundKind.InstrumentationPayloadRoot: 1084goto case BoundKind.FieldAccess; 1086case BoundKind.FieldAccess: 1087case BoundKind.ArrayAccess: 1099if (lhs.Kind == BoundKind.FieldAccess) 1358if (boundExpression.Kind == BoundKind.Local) 1410if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 1426if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 1630if (exceptionSourceOpt.Kind == BoundKind.Local) 1869top.Item1.Kind == BoundKind.Local && 2004if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2020if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2176if (exceptionSource.Kind == BoundKind.Local)
Compilation\CSharpSemanticModel.cs (58)
1945else if (highestBoundExpr.Kind == BoundKind.TypeOrValueExpression) 1951else if (highestBoundExpr.Kind == BoundKind.UnaryOperator) 2106var highestBoundExprKind = highestBoundExpr?.Kind ?? BoundKind.NoOpStatement; 2111if (highestBoundExprKind == BoundKind.Lambda) // the enclosing conversion is explicit 2127if (tupleLiteralConversion.Operand.Kind == BoundKind.ConvertedTupleLiteral) 2141else if (highestBoundExprKind == BoundKind.FixedLocalCollectionInitializer) 2189if (highestBoundExprKind != BoundKind.Conversion) 2193else if (((BoundConversion)highestBoundExpr).Operand.Kind != BoundKind.Conversion) 2211else if (boundNodeForSyntacticParent?.Kind == BoundKind.DelegateCreationExpression) 2218case BoundKind.MethodGroup: 2223case BoundKind.Lambda: 2229case BoundKind.UnboundLambda: 2298if (boundExpr != null && boundExpr.Kind != BoundKind.TypeExpression) 3350case BoundKind.MethodGroup: 3354case BoundKind.PropertyGroup: 3358case BoundKind.BadExpression: 3381case BoundKind.DelegateCreationExpression: 3384case BoundKind.TypeExpression: 3392boundNodeForSyntacticParent.Kind == BoundKind.BadExpression && 3414case BoundKind.TypeOrValueExpression: 3423case BoundKind.Call: 3448case BoundKind.FunctionPointerInvocation: 3456case BoundKind.UnconvertedAddressOfOperator: 3470case BoundKind.IndexerAccess: 3484case BoundKind.ImplicitIndexerAccess: 3488case BoundKind.EventAssignmentOperator: 3505case BoundKind.EventAccess when boundNodeForSyntacticParent is BoundEventAssignmentOperator { ResultKind: LookupResultKind.Viable } parentOperator && 3516case BoundKind.Conversion: 3539case BoundKind.BinaryOperator: 3543case BoundKind.UnaryOperator: 3547case BoundKind.UserDefinedConditionalLogicalOperator: 3553case BoundKind.CompoundAssignmentOperator: 3557case BoundKind.IncrementOperator: 3561case BoundKind.AwaitExpression: 3566case BoundKind.ConditionalOperator: 3572case BoundKind.Attribute: 3607case BoundKind.QueryClause: 3618case BoundKind.DynamicInvocation: 3625case BoundKind.DynamicCollectionElementInitializer: 3632case BoundKind.DynamicIndexerAccess: 3639case BoundKind.DynamicMemberAccess: 3644case BoundKind.DynamicObjectCreationExpression: 3650case BoundKind.ObjectCreationExpression: 3667case BoundKind.ThisReference: 3668case BoundKind.BaseReference: 3679case BoundKind.FromEndIndexExpression: 3689case BoundKind.RangeExpression: 3970case BoundKind.Attribute: 3984case BoundKind.BadExpression: 4246case BoundKind.Call: 4267case BoundKind.DelegateCreationExpression: 4277case BoundKind.Conversion: 4302case BoundKind.DynamicInvocation: 4308case BoundKind.BadExpression: 4319case BoundKind.NameOfOperator: 4388case BoundKind.IndexerAccess: 4409case BoundKind.BadExpression:
Compilation\MemberSemanticModel.cs (12)
1191Debug.Assert(highestBoundNode.Kind != BoundKind.UnboundLambda); 1735case BoundKind.UnboundLambda: 1737goto case BoundKind.Lambda; 1738case BoundKind.Lambda: 1742case BoundKind.QueryClause: 1764case BoundKind.QueryClause: 1768case BoundKind.Call: 1780while (receiver?.Kind == BoundKind.MethodGroup) 1797case BoundKind.Conversion: 1800case BoundKind.UnboundLambda: 1804case BoundKind.Lambda: 1847if (expr.Kind == BoundKind.QueryClause)
Compilation\MemberSemanticModel.NodeMapBuilder.cs (5)
90if (existing[i].Kind == BoundKind.TypeExpression && added[i].Kind == BoundKind.TypeOrValueExpression) 98else if (existing[i].Kind == BoundKind.TypeOrValueExpression && added[i].Kind == BoundKind.TypeExpression) 170if (node.Kind == BoundKind.UnboundLambda)
Compiler\MethodBodySynthesizer.Lowered.cs (1)
333if (body.Kind != BoundKind.Block) body = F.Block(body);
Compiler\MethodCompiler.cs (5)
597(init.Kind == BoundKind.FieldEqualsValue) && !((BoundFieldEqualsValue)init).Field.IsMetadataConstant)); 1335if (processedInitializers.LoweredInitializers.Kind == BoundKind.StatementList) 1885case BoundKind.ConstructorMethodBody: 1915case BoundKind.NonConstructorMethodBody: 1921case BoundKind.Block:
FlowAnalysis\AbstractFlowPass.cs (21)
557case BoundKind.Parameter: 561case BoundKind.Local: 565case BoundKind.ThisReference: 566case BoundKind.BaseReference: 569case BoundKind.PropertyAccess: 584case BoundKind.FieldAccess: 591case BoundKind.EventAccess: 598case BoundKind.TupleLiteral: 599case BoundKind.ConvertedTupleLiteral: 842case BoundKind.LabeledStatement: 848case BoundKind.LabelStatement: 854case BoundKind.SwitchSection: 1723if (pend.Branch.Kind != BoundKind.YieldReturnStatement) 1951if (expr.Kind != BoundKind.PropertyAccess) 1984var refKind = node.Left.Kind == BoundKind.BadExpression 2065receiverOpt.Kind != BoundKind.TypeExpression && 2227var childKind = child.Kind; 2229if (childKind == BoundKind.BinaryOperator) 2242else if (childKind == BoundKind.UserDefinedConditionalLogicalOperator) 2267case BoundKind.BinaryOperator: 2272case BoundKind.UserDefinedConditionalLogicalOperator:
FlowAnalysis\ControlFlowPass.cs (12)
216case BoundKind.GotoStatement: 223case BoundKind.BreakStatement: 224case BoundKind.ContinueStatement: 231case BoundKind.ReturnStatement: 244case BoundKind.NoOpStatement: 245case BoundKind.Block: 246case BoundKind.ThrowStatement: 247case BoundKind.LabeledStatement: 248case BoundKind.LocalFunctionStatement: 251case BoundKind.StatementList: 306case BoundKind.YieldBreakStatement: 307case BoundKind.YieldReturnStatement:
FlowAnalysis\DataFlowsOutWalker.cs (14)
120case BoundKind.ListPattern: 121case BoundKind.RecursivePattern: 122case BoundKind.DeclarationPattern: 127case BoundKind.FieldAccess: 139case BoundKind.LocalDeclaration: 144case BoundKind.ThisReference: 149case BoundKind.Local: 154case BoundKind.Parameter: 159case BoundKind.CatchBlock: 165case BoundKind.RangeVariable: 170case BoundKind.EventAccess: 185case BoundKind.LocalFunctionStatement: 241case BoundKind.Parameter: return ((BoundParameter)node).ParameterSymbol; 242case BoundKind.ThisReference: return this.MethodThisParameter;
FlowAnalysis\DefiniteAssignment.cs (80)
242if (node.Kind == BoundKind.Attribute) 428BoundKind kind = pendingBranch.Kind; 431case BoundKind.AwaitExpression: 433case BoundKind.UsingStatement: 436case BoundKind.ForEachStatement: 439case BoundKind.UsingLocalDeclarations: 764Debug.Assert(fieldOrEventAccess.Kind == BoundKind.FieldAccess || fieldOrEventAccess.Kind == BoundKind.EventAccess); 770case BoundKind.FieldAccess: 786case BoundKind.EventAccess: 803case BoundKind.ThisReference: 807case BoundKind.Local: 811case BoundKind.Parameter: 891if (value is { ConstantValueOpt: not null, Kind: not BoundKind.InterpolatedString }) return false; 895case BoundKind.Conversion: 909case BoundKind.DefaultLiteral: 910case BoundKind.DefaultExpression: 912case BoundKind.ObjectCreationExpression: 915case BoundKind.TupleLiteral: 916case BoundKind.ConvertedTupleLiteral: 917case BoundKind.Utf8String: 930case BoundKind.FieldAccess: 942if (n.Kind == BoundKind.Local) 954case BoundKind.EventAccess: 975case BoundKind.ThisReference: 979case BoundKind.Local: 983case BoundKind.Parameter: 987case BoundKind.RangeVariable: 1028case BoundKind.FieldAccess: 1044case BoundKind.EventAccess: 1056case BoundKind.PropertyAccess: 1080receiver.Kind != BoundKind.TypeExpression && 1097receiverOpt.Kind != BoundKind.TypeExpression && 1323case BoundKind.ThisReference: 1336case BoundKind.Local: 1342case BoundKind.FieldAccess: 1354case BoundKind.EventAccess: 1366case BoundKind.PropertyAccess: 1388case BoundKind.Parameter: 1395case BoundKind.RangeVariable: 1420case BoundKind.FieldAccess: 1429case BoundKind.Local: 1433case BoundKind.RangeVariable: 1435case BoundKind.Parameter: 1437case BoundKind.ThisReference: 1439case BoundKind.BaseReference: 1468case BoundKind.ListPattern: 1469case BoundKind.RecursivePattern: 1470case BoundKind.DeclarationPattern: 1486case BoundKind.LocalDeclaration: 1497case BoundKind.Local: 1515case BoundKind.Parameter: 1532case BoundKind.ThisReference: 1533case BoundKind.FieldAccess: 1534case BoundKind.EventAccess: 1535case BoundKind.PropertyAccess: 1544case BoundKind.RangeVariable: 1548case BoundKind.BadExpression: 1559case BoundKind.TupleLiteral: 1560case BoundKind.ConvertedTupleLiteral: 1867case BoundKind.DeclarationPattern: 1874case BoundKind.DiscardPattern: 1875case BoundKind.TypePattern: 1877case BoundKind.SlicePattern: 1886case BoundKind.ConstantPattern: 1892case BoundKind.RecursivePattern: 1926case BoundKind.ITuplePattern: 1935case BoundKind.ListPattern: 1946case BoundKind.RelationalPattern: 1952case BoundKind.NegatedPattern: 1958case BoundKind.BinaryPattern: 2037if (stmt.Kind != BoundKind.LocalFunctionStatement) 2285if (pending.Branch.Kind == BoundKind.ReturnStatement) 2359if (initializer.Kind == BoundKind.AddressOfOperator) 2432case BoundKind.Local: 2435case BoundKind.Parameter: 2438case BoundKind.FieldAccess: 2446case BoundKind.EventAccess: 2454case BoundKind.ThisReference: 2455case BoundKind.BaseReference:
FlowAnalysis\ExitPointsWalker.cs (9)
127case BoundKind.GotoStatement: 130case BoundKind.BreakStatement: 133case BoundKind.ContinueStatement: 136case BoundKind.YieldBreakStatement: 137case BoundKind.ReturnStatement: 140case BoundKind.YieldReturnStatement: 141case BoundKind.AwaitExpression: 142case BoundKind.UsingStatement: 143case BoundKind.ForEachStatement when ((BoundForEachStatement)pending.Branch).AwaitOpt != null:
FlowAnalysis\LocalDataFlowPass.cs (9)
210case BoundKind.ThisReference: 211case BoundKind.BaseReference: 213case BoundKind.Local: 215case BoundKind.Parameter: 217case BoundKind.RangeVariable: 219case BoundKind.FieldAccess: 220case BoundKind.EventAccess: 221case BoundKind.PropertyAccess: 228case BoundKind.AssignmentOperator:
FlowAnalysis\NullableWalker.cs (76)
246private static readonly ImmutableArray<BoundKind> s_skippedExpressions = ImmutableArray.Create(BoundKind.ArrayInitialization, 247BoundKind.ObjectInitializerExpression, 248BoundKind.CollectionInitializerExpression, 249BoundKind.DynamicCollectionElementInitializer); 398private bool IsAnalyzingAttribute => methodMainNode.Kind == BoundKind.Attribute; 506Debug.Assert(expression != null || placeholder.Kind == BoundKind.InterpolatedStringArgumentPlaceholder); 527case BoundKind.DeconstructValuePlaceholder: 528case BoundKind.InterpolatedStringHandlerPlaceholder: 529case BoundKind.InterpolatedStringArgumentPlaceholder: 530case BoundKind.ObjectOrCollectionValuePlaceholder: 531case BoundKind.AwaitableValuePlaceholder: 534case BoundKind.ImplicitIndexerValuePlaceholder: 1898case BoundKind.FieldAccess: 1914case BoundKind.EventAccess: 1927case BoundKind.PropertyAccess: 1945receiver.Kind != BoundKind.TypeExpression && 1973case BoundKind.ThisReference: 1974case BoundKind.BaseReference: 1980case BoundKind.Conversion: 2023case BoundKind.DefaultLiteral: 2024case BoundKind.DefaultExpression: 2025case BoundKind.ObjectCreationExpression: 2026case BoundKind.DynamicObjectCreationExpression: 2027case BoundKind.AnonymousObjectCreationExpression: 2028case BoundKind.NewT: 2029case BoundKind.TupleLiteral: 2030case BoundKind.ConvertedTupleLiteral: 2032case BoundKind.ConditionalAccess: 2034case BoundKind.ConditionalReceiver: 2245(value.WasCompilerGenerated && assignmentKind == AssignmentKind.Argument && value.Kind != BoundKind.InterpolatedStringArgumentPlaceholder) || 2423case BoundKind.Conversion: 2430case BoundKind.DefaultLiteral: 2431case BoundKind.DefaultExpression: 2877if (!expr.IsSuppressed && RemoveConversion(expr, includeExplicitConversions: false).expression.Kind != BoundKind.ThrowExpression) 2992if (stmt.Kind != BoundKind.LocalFunctionStatement) 3561Debug.Assert(node.Kind is BoundKind.ObjectCreationExpression or BoundKind.DynamicObjectCreationExpression or BoundKind.NewT or BoundKind.NoPiaObjectCreationExpression); 3653case BoundKind.AssignmentOperator: 3668case BoundKind.CollectionElementInitializer: 3698case BoundKind.ObjectInitializerMember: 3952Debug.Assert(node.ImplicitReceiverOpt.Kind == BoundKind.ObjectOrCollectionValuePlaceholder); 4363if (child.Kind == BoundKind.ArrayInitialization) 4887case BoundKind.Conversion: 4891case BoundKind.AsOperator: 4894case BoundKind.ConditionalAccess: 5081while (possiblyConversion.Kind == BoundKind.Conversion) 6497var savedState = (argument.Kind == BoundKind.Lambda) ? this.State.Clone() : default(Optional<LocalState>); 7087/// other than <see cref="BoundKind.ExpressionWithNullability"/> which is an expression 7094case BoundKind.DefaultLiteral: 7095case BoundKind.DefaultExpression: 7096case BoundKind.Literal: 7098case BoundKind.ExpressionWithNullability: 7100case BoundKind.MethodGroup: 7101case BoundKind.UnboundLambda: 7102case BoundKind.UnconvertedObjectCreationExpression: 7103case BoundKind.ConvertedTupleLiteral: 7145if (argument.Kind == BoundKind.Lambda) 7214if (expr.Kind != BoundKind.Conversion) 7298case BoundKind.InterpolatedString: 8101if (operandType.Type?.IsTupleType == true || conversionOperand.Kind == BoundKind.TupleLiteral) 9060if (left.Kind == BoundKind.EventAccess && ((BoundEventAccess)left).EventSymbol.IsWindowsRuntimeEvent) 9202case BoundKind.Local: 9204case BoundKind.Parameter: 9478case BoundKind.TupleLiteral: 9479case BoundKind.ConvertedTupleLiteral: 9496case BoundKind.TupleLiteral: 9497case BoundKind.ConvertedTupleLiteral: 9499case BoundKind.Conversion: 9708if (initializer.Kind == BoundKind.AddressOfOperator) 9714if (node.Expression.Kind == BoundKind.AddressOfOperator) 9954if (node.Expression.Kind != BoundKind.Conversion) 10445case BoundKind.BinaryOperator: 10448case BoundKind.UserDefinedConditionalLogicalOperator:
FlowAnalysis\NullableWalker.SnapshotManager.cs (1)
109if (node.Kind == BoundKind.TypeExpression || node.WasCompilerGenerated)
FlowAnalysis\ReadWriteWalker.cs (12)
142if (!IsInside && node.Span.Contains(RegionSpan) && (expr.Kind == BoundKind.FieldAccess)) 175case BoundKind.Local: 181case BoundKind.ThisReference: 187case BoundKind.BaseReference: 193case BoundKind.Parameter: 199case BoundKind.RangeVariable: 205case BoundKind.FieldAccess: 218case BoundKind.RangeVariable: 222case BoundKind.QueryClause: 233case BoundKind.FieldAccess: 273case BoundKind.Parameter: 275case BoundKind.PropertyAccess:
FlowAnalysis\RegionAnalysisContext.cs (2)
51case BoundKind.NamespaceExpression: 52case BoundKind.TypeExpression:
Generated\BoundNodes.xml.Generated.cs (545)
265protected BoundInitializer(BoundKind kind, SyntaxNode syntax, bool hasErrors) 270protected BoundInitializer(BoundKind kind, SyntaxNode syntax) 279protected BoundEqualsValue(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 297: base(BoundKind.FieldEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 327: base(BoundKind.PropertyEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 357: base(BoundKind.ParameterEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 387: base(BoundKind.GlobalStatementInitializer, syntax, hasErrors || statement.HasErrors()) 414protected BoundExpression(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 420protected BoundExpression(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 431protected BoundValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 436protected BoundValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 445protected BoundEarlyValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 450protected BoundEarlyValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 460: base(BoundKind.ValuePlaceholder, syntax, type, hasErrors) 465: base(BoundKind.ValuePlaceholder, syntax, type) 488: base(BoundKind.CapturedReceiverPlaceholder, syntax, type, hasErrors || receiver.HasErrors()) 518: base(BoundKind.DeconstructValuePlaceholder, syntax, type, hasErrors) 528: base(BoundKind.DeconstructValuePlaceholder, syntax, type) 559: base(BoundKind.TupleOperandPlaceholder, syntax, type, hasErrors) 567: base(BoundKind.TupleOperandPlaceholder, syntax, type) 594: base(BoundKind.AwaitableValuePlaceholder, syntax, type, hasErrors) 599: base(BoundKind.AwaitableValuePlaceholder, syntax, type) 623: base(BoundKind.DisposableValuePlaceholder, syntax, type, hasErrors) 631: base(BoundKind.DisposableValuePlaceholder, syntax, type) 658: base(BoundKind.ObjectOrCollectionValuePlaceholder, syntax, type, hasErrors) 667: base(BoundKind.ObjectOrCollectionValuePlaceholder, syntax, type) 696: base(BoundKind.ImplicitIndexerValuePlaceholder, syntax, type, hasErrors) 704: base(BoundKind.ImplicitIndexerValuePlaceholder, syntax, type) 731: base(BoundKind.ImplicitIndexerReceiverPlaceholder, syntax, type, hasErrors) 740: base(BoundKind.ImplicitIndexerReceiverPlaceholder, syntax, type) 769: base(BoundKind.ListPatternReceiverPlaceholder, syntax, type, hasErrors) 777: base(BoundKind.ListPatternReceiverPlaceholder, syntax, type) 804: base(BoundKind.ListPatternIndexPlaceholder, syntax, type, hasErrors) 812: base(BoundKind.ListPatternIndexPlaceholder, syntax, type) 839: base(BoundKind.SlicePatternReceiverPlaceholder, syntax, type, hasErrors) 847: base(BoundKind.SlicePatternReceiverPlaceholder, syntax, type) 874: base(BoundKind.SlicePatternRangePlaceholder, syntax, type, hasErrors) 882: base(BoundKind.SlicePatternRangePlaceholder, syntax, type) 909: base(BoundKind.Dup, syntax, type, hasErrors) 915: base(BoundKind.Dup, syntax, type) 940: base(BoundKind.PassByCopy, syntax, type, hasErrors || expression.HasErrors()) 968: base(BoundKind.BadExpression, syntax, type, hasErrors || childBoundNodes.HasErrors()) 1001: base(BoundKind.BadStatement, syntax, hasErrors || childBoundNodes.HasErrors()) 1029: base(BoundKind.ExtractedFinallyBlock, syntax, hasErrors || finallyBlock.HasErrors()) 1057: base(BoundKind.TypeExpression, syntax, type, hasErrors || boundContainingTypeOpt.HasErrors() || boundDimensionsOpt.HasErrors()) 1092: base(BoundKind.TypeOrValueExpression, syntax, type, hasErrors) 1101: base(BoundKind.TypeOrValueExpression, syntax, type) 1130: base(BoundKind.NamespaceExpression, syntax, null, hasErrors) 1140: base(BoundKind.NamespaceExpression, syntax, null) 1171: base(BoundKind.UnaryOperator, syntax, type, hasErrors || operand.HasErrors()) 1213: base(BoundKind.IncrementOperator, syntax, type, hasErrors || operand.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors() || resultPlaceholder.HasErrors() || resultConversion.HasErrors()) 1261: base(BoundKind.AddressOfOperator, syntax, type, hasErrors || operand.HasErrors()) 1293: base(BoundKind.UnconvertedAddressOfOperator, syntax, null, hasErrors || operand.HasErrors()) 1322: base(BoundKind.FunctionPointerLoad, syntax, type, hasErrors) 1333: base(BoundKind.FunctionPointerLoad, syntax, type) 1365: base(BoundKind.PointerIndirectionOperator, syntax, type, hasErrors || operand.HasErrors()) 1397: base(BoundKind.PointerElementAccess, syntax, type, hasErrors || expression.HasErrors() || index.HasErrors()) 1434: base(BoundKind.FunctionPointerInvocation, syntax, type, hasErrors || invokedExpression.HasErrors() || arguments.HasErrors()) 1471: base(BoundKind.RefTypeOperator, syntax, type, hasErrors || operand.HasErrors()) 1503: base(BoundKind.MakeRefOperator, syntax, type, hasErrors || operand.HasErrors()) 1533: base(BoundKind.RefValueOperator, syntax, type, hasErrors || operand.HasErrors()) 1565: base(BoundKind.FromEndIndexExpression, syntax, type, hasErrors || operand.HasErrors()) 1597: base(BoundKind.RangeExpression, syntax, type, hasErrors || leftOperandOpt.HasErrors() || rightOperandOpt.HasErrors()) 1629protected BoundBinaryOperatorBase(BoundKind kind, SyntaxNode syntax, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false) 1649: base(BoundKind.BinaryOperator, syntax, left, right, type, hasErrors || left.HasErrors() || right.HasErrors()) 1683: base(BoundKind.TupleBinaryOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1721: base(BoundKind.UserDefinedConditionalLogicalOperator, syntax, left, right, type, hasErrors || left.HasErrors() || right.HasErrors()) 1766: base(BoundKind.CompoundAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors() || finalPlaceholder.HasErrors() || finalConversion.HasErrors()) 1813: base(BoundKind.AssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1847: base(BoundKind.DeconstructionAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1882: base(BoundKind.NullCoalescingOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors()) 1923: base(BoundKind.NullCoalescingAssignmentOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors()) 1954: base(BoundKind.UnconvertedConditionalOperator, syntax, null, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 1993: base(BoundKind.ConditionalOperator, syntax, type, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 2037: base(BoundKind.ArrayAccess, syntax, type, hasErrors || expression.HasErrors() || indices.HasErrors()) 2070: base(BoundKind.ArrayLength, syntax, type, hasErrors || expression.HasErrors()) 2100: base(BoundKind.AwaitableInfo, syntax, hasErrors || awaitableInstancePlaceholder.HasErrors() || getAwaiter.HasErrors()) 2133: base(BoundKind.AwaitExpression, syntax, type, hasErrors || expression.HasErrors() || awaitableInfo.HasErrors()) 2165protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors) 2174protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type) 2190: base(BoundKind.TypeOfOperator, syntax, getTypeFromHandle, type, hasErrors || sourceType.HasErrors()) 2219: base(BoundKind.BlockInstrumentation, syntax, hasErrors || prologue.HasErrors() || epilogue.HasErrors()) 2253: base(BoundKind.MethodDefIndex, syntax, type, hasErrors) 2263: base(BoundKind.MethodDefIndex, syntax, type) 2293: base(BoundKind.LocalId, syntax, type, hasErrors) 2304: base(BoundKind.LocalId, syntax, type) 2336: base(BoundKind.ParameterId, syntax, type, hasErrors) 2347: base(BoundKind.ParameterId, syntax, type) 2379: base(BoundKind.StateMachineInstanceId, syntax, type, hasErrors) 2387: base(BoundKind.StateMachineInstanceId, syntax, type) 2414: base(BoundKind.MaximumMethodDefIndex, syntax, type, hasErrors) 2422: base(BoundKind.MaximumMethodDefIndex, syntax, type) 2449: base(BoundKind.InstrumentationPayloadRoot, syntax, type, hasErrors) 2458: base(BoundKind.InstrumentationPayloadRoot, syntax, type) 2487: base(BoundKind.ModuleVersionId, syntax, type, hasErrors) 2495: base(BoundKind.ModuleVersionId, syntax, type) 2522: base(BoundKind.ModuleVersionIdString, syntax, type, hasErrors) 2530: base(BoundKind.ModuleVersionIdString, syntax, type) 2557: base(BoundKind.SourceDocumentIndex, syntax, type, hasErrors) 2567: base(BoundKind.SourceDocumentIndex, syntax, type) 2597: base(BoundKind.MethodInfo, syntax, type, hasErrors) 2608: base(BoundKind.MethodInfo, syntax, type) 2640: base(BoundKind.FieldInfo, syntax, type, hasErrors) 2651: base(BoundKind.FieldInfo, syntax, type) 2683: base(BoundKind.DefaultLiteral, syntax, null, hasErrors) 2688: base(BoundKind.DefaultLiteral, syntax, null) 2706: base(BoundKind.DefaultExpression, syntax, type, hasErrors || targetType.HasErrors()) 2737: base(BoundKind.IsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors()) 2772: base(BoundKind.AsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors()) 2809: base(BoundKind.SizeOfOperator, syntax, type, hasErrors || sourceType.HasErrors()) 2841: base(BoundKind.Conversion, syntax, type, hasErrors || operand.HasErrors()) 2885: base(BoundKind.ReadOnlySpanFromArray, syntax, type, hasErrors || operand.HasErrors()) 2918: base(BoundKind.ArgList, syntax, type, hasErrors) 2926: base(BoundKind.ArgList, syntax, type) 2953: base(BoundKind.ArgListOperator, syntax, type, hasErrors || arguments.HasErrors()) 2984: base(BoundKind.FixedLocalCollectionInitializer, syntax, type, hasErrors || elementPointerPlaceholder.HasErrors() || elementPointerConversion.HasErrors() || expression.HasErrors()) 3022protected BoundStatement(BoundKind kind, SyntaxNode syntax, bool hasErrors) 3027protected BoundStatement(BoundKind kind, SyntaxNode syntax) 3037: base(BoundKind.SequencePoint, syntax, hasErrors || statementOpt.HasErrors()) 3062: base(BoundKind.SequencePointWithSpan, syntax, hasErrors || statementOpt.HasErrors()) 3089: base(BoundKind.SavePreviousSequencePoint, syntax, hasErrors) 3098: base(BoundKind.SavePreviousSequencePoint, syntax) 3126: base(BoundKind.RestorePreviousSequencePoint, syntax, hasErrors) 3135: base(BoundKind.RestorePreviousSequencePoint, syntax) 3163: base(BoundKind.StepThroughSequencePoint, syntax, hasErrors) 3169: base(BoundKind.StepThroughSequencePoint, syntax) 3194: base(BoundKind.Block, syntax, statements, hasErrors || instrumentation.HasErrors() || statements.HasErrors()) 3230: base(BoundKind.Scope, syntax, statements, hasErrors || statements.HasErrors()) 3259: base(BoundKind.StateMachineScope, syntax, hasErrors || statement.HasErrors()) 3290: base(BoundKind.LocalDeclaration, syntax, hasErrors || declaredTypeOpt.HasErrors() || initializerOpt.HasErrors() || argumentsOpt.HasErrors()) 3325protected BoundMultipleLocalDeclarationsBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false) 3340: base(BoundKind.MultipleLocalDeclarations, syntax, localDeclarations, hasErrors || localDeclarations.HasErrors()) 3366: base(BoundKind.UsingLocalDeclarations, syntax, localDeclarations, hasErrors || awaitOpt.HasErrors() || localDeclarations.HasErrors()) 3396: base(BoundKind.LocalFunctionStatement, syntax, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 3428: base(BoundKind.NoOpStatement, syntax, hasErrors) 3434: base(BoundKind.NoOpStatement, syntax) 3459: base(BoundKind.ReturnStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3488: base(BoundKind.YieldReturnStatement, syntax, hasErrors || expression.HasErrors()) 3516: base(BoundKind.YieldBreakStatement, syntax, hasErrors) 3521: base(BoundKind.YieldBreakStatement, syntax) 3533: base(BoundKind.ThrowStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3558: base(BoundKind.ExpressionStatement, syntax, hasErrors || expression.HasErrors()) 3586: base(BoundKind.BreakStatement, syntax, hasErrors) 3595: base(BoundKind.BreakStatement, syntax) 3623: base(BoundKind.ContinueStatement, syntax, hasErrors) 3632: base(BoundKind.ContinueStatement, syntax) 3660: base(BoundKind.SwitchStatement, syntax, hasErrors || expression.HasErrors() || switchSections.HasErrors() || reachabilityDecisionDag.HasErrors() || defaultLabel.HasErrors()) 3705: base(BoundKind.SwitchDispatch, syntax, hasErrors || expression.HasErrors()) 3741: base(BoundKind.IfStatement, syntax, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternativeOpt.HasErrors()) 3773protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel, bool hasErrors) 3784protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel) 3801protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, GeneratedLabelSymbol breakLabel, GeneratedLabelSymbol continueLabel, bool hasErrors = false) 3824: base(BoundKind.DoStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 3854: base(BoundKind.WhileStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 3884: base(BoundKind.ForStatement, syntax, breakLabel, continueLabel, hasErrors || initializer.HasErrors() || condition.HasErrors() || increment.HasErrors() || body.HasErrors()) 3926: base(BoundKind.ForEachStatement, syntax, breakLabel, continueLabel, hasErrors || elementPlaceholder.HasErrors() || elementConversion.HasErrors() || iterationVariableType.HasErrors() || iterationErrorExpressionOpt.HasErrors() || expression.HasErrors() || deconstructionOpt.HasErrors() || awaitOpt.HasErrors() || body.HasErrors()) 3977: base(BoundKind.ForEachDeconstructStep, syntax, hasErrors || deconstructionAssignment.HasErrors() || targetPlaceholder.HasErrors()) 4008: base(BoundKind.UsingStatement, syntax, hasErrors || declarationsOpt.HasErrors() || expressionOpt.HasErrors() || body.HasErrors() || awaitOpt.HasErrors()) 4047: base(BoundKind.FixedStatement, syntax, hasErrors || declarations.HasErrors() || body.HasErrors()) 4081: base(BoundKind.LockStatement, syntax, hasErrors || argument.HasErrors() || body.HasErrors()) 4112: base(BoundKind.TryStatement, syntax, hasErrors || tryBlock.HasErrors() || catchBlocks.HasErrors() || finallyBlockOpt.HasErrors()) 4149: base(BoundKind.CatchBlock, syntax, hasErrors || exceptionSourceOpt.HasErrors() || exceptionFilterPrologueOpt.HasErrors() || exceptionFilterOpt.HasErrors() || body.HasErrors()) 4190: base(BoundKind.Literal, syntax, type, hasErrors) 4196: base(BoundKind.Literal, syntax, type) 4221: base(BoundKind.Utf8String, syntax, type, hasErrors) 4231: base(BoundKind.Utf8String, syntax, type) 4261: base(BoundKind.ThisReference, syntax, type, hasErrors) 4269: base(BoundKind.ThisReference, syntax, type) 4296: base(BoundKind.PreviousSubmissionReference, syntax, type, hasErrors) 4304: base(BoundKind.PreviousSubmissionReference, syntax, type) 4331: base(BoundKind.HostObjectMemberReference, syntax, type, hasErrors) 4339: base(BoundKind.HostObjectMemberReference, syntax, type) 4366: base(BoundKind.BaseReference, syntax, type, hasErrors) 4371: base(BoundKind.BaseReference, syntax, type) 4395: base(BoundKind.Local, syntax, type, hasErrors) 4408: base(BoundKind.Local, syntax, type) 4444: base(BoundKind.PseudoVariable, syntax, type, hasErrors) 4456: base(BoundKind.PseudoVariable, syntax, type) 4489: base(BoundKind.RangeVariable, syntax, type, hasErrors || value.HasErrors()) 4522: base(BoundKind.Parameter, syntax, type, hasErrors) 4532: base(BoundKind.Parameter, syntax, type) 4562: base(BoundKind.LabelStatement, syntax, hasErrors) 4571: base(BoundKind.LabelStatement, syntax) 4599: base(BoundKind.GotoStatement, syntax, hasErrors || caseExpressionOpt.HasErrors() || labelExpressionOpt.HasErrors()) 4631: base(BoundKind.LabeledStatement, syntax, hasErrors || body.HasErrors()) 4662: base(BoundKind.Label, syntax, type, hasErrors) 4671: base(BoundKind.Label, syntax, type) 4698protected BoundStatementList(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 4708: base(BoundKind.StatementList, syntax, hasErrors || statements.HasErrors()) 4736: base(BoundKind.ConditionalGoto, syntax, hasErrors || condition.HasErrors()) 4768protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false) 4793: base(BoundKind.SwitchExpressionArm, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors() || value.HasErrors()) 4832: base(BoundKind.UnconvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 4860: base(BoundKind.ConvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 4894: base(BoundKind.DecisionDag, syntax, hasErrors || rootNode.HasErrors()) 4921protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax, bool hasErrors) 4926protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax) 4936: base(BoundKind.EvaluationDecisionDagNode, syntax, hasErrors || evaluation.HasErrors() || next.HasErrors()) 4967: base(BoundKind.TestDecisionDagNode, syntax, hasErrors || test.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5001: base(BoundKind.WhenDecisionDagNode, syntax, hasErrors || whenExpression.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5036: base(BoundKind.LeafDecisionDagNode, syntax, hasErrors) 5045: base(BoundKind.LeafDecisionDagNode, syntax) 5072protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5087: base(BoundKind.DagTemp, syntax, hasErrors || source.HasErrors()) 5119: base(BoundKind.DagTypeTest, syntax, input, hasErrors || input.HasErrors()) 5148: base(BoundKind.DagNonNullTest, syntax, input, hasErrors || input.HasErrors()) 5176: base(BoundKind.DagExplicitNullTest, syntax, input, hasErrors || input.HasErrors()) 5202: base(BoundKind.DagValueTest, syntax, input, hasErrors || input.HasErrors()) 5231: base(BoundKind.DagRelationalTest, syntax, input, hasErrors || input.HasErrors()) 5261protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5274: base(BoundKind.DagDeconstructEvaluation, syntax, input, hasErrors || input.HasErrors()) 5303: base(BoundKind.DagTypeEvaluation, syntax, input, hasErrors || input.HasErrors()) 5332: base(BoundKind.DagFieldEvaluation, syntax, input, hasErrors || input.HasErrors()) 5361: base(BoundKind.DagPropertyEvaluation, syntax, input, hasErrors || input.HasErrors()) 5392: base(BoundKind.DagIndexEvaluation, syntax, input, hasErrors || input.HasErrors()) 5423: base(BoundKind.DagIndexerEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5470: base(BoundKind.DagSliceEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5519: base(BoundKind.DagAssignmentEvaluation, syntax, input, hasErrors || target.HasErrors() || input.HasErrors()) 5548: base(BoundKind.SwitchSection, syntax, statements, hasErrors || switchLabels.HasErrors() || statements.HasErrors()) 5580: base(BoundKind.SwitchLabel, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors()) 5612protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false) 5627: base(BoundKind.SequencePointExpression, syntax, type, hasErrors || expression.HasErrors()) 5655: base(BoundKind.Sequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5691: base(BoundKind.SpillSequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5727: base(BoundKind.DynamicMemberAccess, syntax, type, hasErrors || receiver.HasErrors()) 5765protected BoundDynamicInvocableBase(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol? type, bool hasErrors = false) 5783: base(BoundKind.DynamicInvocation, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 5819: base(BoundKind.ConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || accessExpression.HasErrors()) 5852: base(BoundKind.LoweredConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || whenNotNull.HasErrors() || whenNullOpt.HasErrors()) 5893: base(BoundKind.ConditionalReceiver, syntax, type, hasErrors) 5902: base(BoundKind.ConditionalReceiver, syntax, type) 5931: base(BoundKind.ComplexConditionalReceiver, syntax, type, hasErrors || valueTypeReceiver.HasErrors() || referenceTypeReceiver.HasErrors()) 5964: base(BoundKind.MethodGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6005: base(BoundKind.PropertyGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6033: base(BoundKind.Call, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 6086: base(BoundKind.EventAssignmentOperator, syntax, type, hasErrors || receiverOpt.HasErrors() || argument.HasErrors()) 6125: base(BoundKind.Attribute, syntax, type, hasErrors || constructorArguments.HasErrors() || namedArguments.HasErrors()) 6170: base(BoundKind.UnconvertedObjectCreationExpression, syntax, null, hasErrors || arguments.HasErrors()) 6207protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type, bool hasErrors) 6215protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type) 6229: base(BoundKind.ObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6279protected BoundTupleExpression(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false) 6298: base(BoundKind.TupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || arguments.HasErrors()) 6325: base(BoundKind.ConvertedTupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || sourceTuple.HasErrors() || arguments.HasErrors()) 6355: base(BoundKind.DynamicObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6398: base(BoundKind.NoPiaObjectCreationExpression, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 6429protected BoundObjectInitializerExpressionBase(BoundKind kind, SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false) 6449: base(BoundKind.ObjectInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6477: base(BoundKind.ObjectInitializerMember, syntax, type, hasErrors || arguments.HasErrors()) 6524: base(BoundKind.DynamicObjectInitializerMember, syntax, type, hasErrors) 6536: base(BoundKind.DynamicObjectInitializerMember, syntax, type) 6569: base(BoundKind.CollectionInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6597: base(BoundKind.CollectionElementInitializer, syntax, type, hasErrors || arguments.HasErrors() || implicitReceiverOpt.HasErrors()) 6642: base(BoundKind.DynamicCollectionElementInitializer, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 6674: base(BoundKind.ImplicitReceiver, syntax, type, hasErrors) 6682: base(BoundKind.ImplicitReceiver, syntax, type) 6709: base(BoundKind.AnonymousObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || declarations.HasErrors()) 6745: base(BoundKind.AnonymousPropertyDeclaration, syntax, type, hasErrors) 6755: base(BoundKind.AnonymousPropertyDeclaration, syntax, type) 6785: base(BoundKind.NewT, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 6815: base(BoundKind.DelegateCreationExpression, syntax, type, hasErrors || argument.HasErrors()) 6851: base(BoundKind.ArrayCreation, syntax, type, hasErrors || bounds.HasErrors() || initializerOpt.HasErrors()) 6883: base(BoundKind.ArrayInitialization, syntax, null, hasErrors || initializers.HasErrors()) 6913protected BoundStackAllocArrayCreationBase(BoundKind kind, SyntaxNode syntax, TypeSymbol elementType, BoundExpression count, BoundArrayInitialization? initializerOpt, TypeSymbol? type, bool hasErrors = false) 6933: base(BoundKind.StackAllocArrayCreation, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 6960: base(BoundKind.ConvertedStackAllocExpression, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 6989: base(BoundKind.FieldAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7029: base(BoundKind.HoistedFieldAccess, syntax, type, hasErrors) 7039: base(BoundKind.HoistedFieldAccess, syntax, type) 7069: base(BoundKind.PropertyAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7103: base(BoundKind.EventAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7139: base(BoundKind.IndexerAccess, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 7186: base(BoundKind.ImplicitIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || argument.HasErrors() || lengthOrCountAccess.HasErrors() || receiverPlaceholder.HasErrors() || indexerOrSliceAccess.HasErrors() || argumentPlaceholders.HasErrors()) 7235: base(BoundKind.DynamicIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || arguments.HasErrors()) 7275: base(BoundKind.Lambda, syntax, type, hasErrors || unboundLambda.HasErrors() || body.HasErrors()) 7315: base(BoundKind.UnboundLambda, syntax, null, hasErrors) 7326: base(BoundKind.UnboundLambda, syntax, null) 7359: base(BoundKind.QueryClause, syntax, type, hasErrors || value.HasErrors() || operation.HasErrors() || cast.HasErrors() || unoptimizedForm.HasErrors()) 7400: base(BoundKind.TypeOrInstanceInitializers, syntax, statements, hasErrors || statements.HasErrors()) 7426: base(BoundKind.NameOfOperator, syntax, type, hasErrors || argument.HasErrors()) 7458protected BoundInterpolatedStringBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false) 7475: base(BoundKind.UnconvertedInterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7501: base(BoundKind.InterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7529: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type, hasErrors) 7534: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type) 7557: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type, hasErrors) 7566: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type) 7595: base(BoundKind.StringInsert, syntax, null, hasErrors || value.HasErrors() || alignment.HasErrors() || format.HasErrors()) 7630: base(BoundKind.IsPatternExpression, syntax, type, hasErrors || expression.HasErrors() || pattern.HasErrors() || reachabilityDecisionDag.HasErrors()) 7671protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors) 7682protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType) 7700: base(BoundKind.ConstantPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 7733: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType, hasErrors) 7742: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType) 7768protected BoundObjectPattern(BoundKind kind, SyntaxNode syntax, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 7786: base(BoundKind.DeclarationPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || variableAccess.HasErrors()) 7818: base(BoundKind.RecursivePattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || deconstruction.HasErrors() || properties.HasErrors() || variableAccess.HasErrors()) 7855: base(BoundKind.ListPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || subpatterns.HasErrors() || lengthAccess.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || variableAccess.HasErrors()) 7899: base(BoundKind.SlicePattern, syntax, inputType, narrowedType, hasErrors || pattern.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors()) 7938: base(BoundKind.ITuplePattern, syntax, inputType, narrowedType, hasErrors || subpatterns.HasErrors()) 7973protected BoundSubpattern(BoundKind kind, SyntaxNode syntax, BoundPattern pattern, bool hasErrors = false) 7988: base(BoundKind.PositionalSubpattern, syntax, pattern, hasErrors || pattern.HasErrors()) 8016: base(BoundKind.PropertySubpattern, syntax, pattern, hasErrors || member.HasErrors() || pattern.HasErrors()) 8046: base(BoundKind.PropertySubpatternMember, syntax, hasErrors || receiver.HasErrors()) 8078: base(BoundKind.TypePattern, syntax, inputType, narrowedType, hasErrors || declaredType.HasErrors()) 8110: base(BoundKind.BinaryPattern, syntax, inputType, narrowedType, hasErrors || left.HasErrors() || right.HasErrors()) 8145: base(BoundKind.NegatedPattern, syntax, inputType, narrowedType, hasErrors || negated.HasErrors()) 8175: base(BoundKind.RelationalPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8210: base(BoundKind.DiscardExpression, syntax, type, hasErrors) 8217: base(BoundKind.DiscardExpression, syntax, type) 8245: base(BoundKind.ThrowExpression, syntax, type, hasErrors || expression.HasErrors()) 8272protected VariablePendingInference(BoundKind kind, SyntaxNode syntax, Symbol variableSymbol, BoundExpression? receiverOpt, bool hasErrors = false) 8290: base(BoundKind.OutVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8316: base(BoundKind.DeconstructionVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8342: base(BoundKind.OutDeconstructVarPendingInference, syntax, null, hasErrors) 8349: base(BoundKind.OutDeconstructVarPendingInference, syntax, null) 8376protected BoundMethodBodyBase(BoundKind kind, SyntaxNode syntax, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8390: base(BoundKind.NonConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 8413: base(BoundKind.ConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || initializer.HasErrors() || blockBody.HasErrors() || expressionBody.HasErrors()) 8443: base(BoundKind.ExpressionWithNullability, syntax, type, hasErrors || expression.HasErrors()) 8474: base(BoundKind.WithExpression, syntax, type, hasErrors || receiver.HasErrors() || initializerExpression.HasErrors()) 8514case BoundKind.FieldEqualsValue: 8516case BoundKind.PropertyEqualsValue: 8518case BoundKind.ParameterEqualsValue: 8520case BoundKind.GlobalStatementInitializer: 8522case BoundKind.ValuePlaceholder: 8524case BoundKind.CapturedReceiverPlaceholder: 8526case BoundKind.DeconstructValuePlaceholder: 8528case BoundKind.TupleOperandPlaceholder: 8530case BoundKind.AwaitableValuePlaceholder: 8532case BoundKind.DisposableValuePlaceholder: 8534case BoundKind.ObjectOrCollectionValuePlaceholder: 8536case BoundKind.ImplicitIndexerValuePlaceholder: 8538case BoundKind.ImplicitIndexerReceiverPlaceholder: 8540case BoundKind.ListPatternReceiverPlaceholder: 8542case BoundKind.ListPatternIndexPlaceholder: 8544case BoundKind.SlicePatternReceiverPlaceholder: 8546case BoundKind.SlicePatternRangePlaceholder: 8548case BoundKind.Dup: 8550case BoundKind.PassByCopy: 8552case BoundKind.BadExpression: 8554case BoundKind.BadStatement: 8556case BoundKind.ExtractedFinallyBlock: 8558case BoundKind.TypeExpression: 8560case BoundKind.TypeOrValueExpression: 8562case BoundKind.NamespaceExpression: 8564case BoundKind.UnaryOperator: 8566case BoundKind.IncrementOperator: 8568case BoundKind.AddressOfOperator: 8570case BoundKind.UnconvertedAddressOfOperator: 8572case BoundKind.FunctionPointerLoad: 8574case BoundKind.PointerIndirectionOperator: 8576case BoundKind.PointerElementAccess: 8578case BoundKind.FunctionPointerInvocation: 8580case BoundKind.RefTypeOperator: 8582case BoundKind.MakeRefOperator: 8584case BoundKind.RefValueOperator: 8586case BoundKind.FromEndIndexExpression: 8588case BoundKind.RangeExpression: 8590case BoundKind.BinaryOperator: 8592case BoundKind.TupleBinaryOperator: 8594case BoundKind.UserDefinedConditionalLogicalOperator: 8596case BoundKind.CompoundAssignmentOperator: 8598case BoundKind.AssignmentOperator: 8600case BoundKind.DeconstructionAssignmentOperator: 8602case BoundKind.NullCoalescingOperator: 8604case BoundKind.NullCoalescingAssignmentOperator: 8606case BoundKind.UnconvertedConditionalOperator: 8608case BoundKind.ConditionalOperator: 8610case BoundKind.ArrayAccess: 8612case BoundKind.ArrayLength: 8614case BoundKind.AwaitableInfo: 8616case BoundKind.AwaitExpression: 8618case BoundKind.TypeOfOperator: 8620case BoundKind.BlockInstrumentation: 8622case BoundKind.MethodDefIndex: 8624case BoundKind.LocalId: 8626case BoundKind.ParameterId: 8628case BoundKind.StateMachineInstanceId: 8630case BoundKind.MaximumMethodDefIndex: 8632case BoundKind.InstrumentationPayloadRoot: 8634case BoundKind.ModuleVersionId: 8636case BoundKind.ModuleVersionIdString: 8638case BoundKind.SourceDocumentIndex: 8640case BoundKind.MethodInfo: 8642case BoundKind.FieldInfo: 8644case BoundKind.DefaultLiteral: 8646case BoundKind.DefaultExpression: 8648case BoundKind.IsOperator: 8650case BoundKind.AsOperator: 8652case BoundKind.SizeOfOperator: 8654case BoundKind.Conversion: 8656case BoundKind.ReadOnlySpanFromArray: 8658case BoundKind.ArgList: 8660case BoundKind.ArgListOperator: 8662case BoundKind.FixedLocalCollectionInitializer: 8664case BoundKind.SequencePoint: 8666case BoundKind.SequencePointWithSpan: 8668case BoundKind.SavePreviousSequencePoint: 8670case BoundKind.RestorePreviousSequencePoint: 8672case BoundKind.StepThroughSequencePoint: 8674case BoundKind.Block: 8676case BoundKind.Scope: 8678case BoundKind.StateMachineScope: 8680case BoundKind.LocalDeclaration: 8682case BoundKind.MultipleLocalDeclarations: 8684case BoundKind.UsingLocalDeclarations: 8686case BoundKind.LocalFunctionStatement: 8688case BoundKind.NoOpStatement: 8690case BoundKind.ReturnStatement: 8692case BoundKind.YieldReturnStatement: 8694case BoundKind.YieldBreakStatement: 8696case BoundKind.ThrowStatement: 8698case BoundKind.ExpressionStatement: 8700case BoundKind.BreakStatement: 8702case BoundKind.ContinueStatement: 8704case BoundKind.SwitchStatement: 8706case BoundKind.SwitchDispatch: 8708case BoundKind.IfStatement: 8710case BoundKind.DoStatement: 8712case BoundKind.WhileStatement: 8714case BoundKind.ForStatement: 8716case BoundKind.ForEachStatement: 8718case BoundKind.ForEachDeconstructStep: 8720case BoundKind.UsingStatement: 8722case BoundKind.FixedStatement: 8724case BoundKind.LockStatement: 8726case BoundKind.TryStatement: 8728case BoundKind.CatchBlock: 8730case BoundKind.Literal: 8732case BoundKind.Utf8String: 8734case BoundKind.ThisReference: 8736case BoundKind.PreviousSubmissionReference: 8738case BoundKind.HostObjectMemberReference: 8740case BoundKind.BaseReference: 8742case BoundKind.Local: 8744case BoundKind.PseudoVariable: 8746case BoundKind.RangeVariable: 8748case BoundKind.Parameter: 8750case BoundKind.LabelStatement: 8752case BoundKind.GotoStatement: 8754case BoundKind.LabeledStatement: 8756case BoundKind.Label: 8758case BoundKind.StatementList: 8760case BoundKind.ConditionalGoto: 8762case BoundKind.SwitchExpressionArm: 8764case BoundKind.UnconvertedSwitchExpression: 8766case BoundKind.ConvertedSwitchExpression: 8768case BoundKind.DecisionDag: 8770case BoundKind.EvaluationDecisionDagNode: 8772case BoundKind.TestDecisionDagNode: 8774case BoundKind.WhenDecisionDagNode: 8776case BoundKind.LeafDecisionDagNode: 8778case BoundKind.DagTemp: 8780case BoundKind.DagTypeTest: 8782case BoundKind.DagNonNullTest: 8784case BoundKind.DagExplicitNullTest: 8786case BoundKind.DagValueTest: 8788case BoundKind.DagRelationalTest: 8790case BoundKind.DagDeconstructEvaluation: 8792case BoundKind.DagTypeEvaluation: 8794case BoundKind.DagFieldEvaluation: 8796case BoundKind.DagPropertyEvaluation: 8798case BoundKind.DagIndexEvaluation: 8800case BoundKind.DagIndexerEvaluation: 8802case BoundKind.DagSliceEvaluation: 8804case BoundKind.DagAssignmentEvaluation: 8806case BoundKind.SwitchSection: 8808case BoundKind.SwitchLabel: 8810case BoundKind.SequencePointExpression: 8812case BoundKind.Sequence: 8814case BoundKind.SpillSequence: 8816case BoundKind.DynamicMemberAccess: 8818case BoundKind.DynamicInvocation: 8820case BoundKind.ConditionalAccess: 8822case BoundKind.LoweredConditionalAccess: 8824case BoundKind.ConditionalReceiver: 8826case BoundKind.ComplexConditionalReceiver: 8828case BoundKind.MethodGroup: 8830case BoundKind.PropertyGroup: 8832case BoundKind.Call: 8834case BoundKind.EventAssignmentOperator: 8836case BoundKind.Attribute: 8838case BoundKind.UnconvertedObjectCreationExpression: 8840case BoundKind.ObjectCreationExpression: 8842case BoundKind.TupleLiteral: 8844case BoundKind.ConvertedTupleLiteral: 8846case BoundKind.DynamicObjectCreationExpression: 8848case BoundKind.NoPiaObjectCreationExpression: 8850case BoundKind.ObjectInitializerExpression: 8852case BoundKind.ObjectInitializerMember: 8854case BoundKind.DynamicObjectInitializerMember: 8856case BoundKind.CollectionInitializerExpression: 8858case BoundKind.CollectionElementInitializer: 8860case BoundKind.DynamicCollectionElementInitializer: 8862case BoundKind.ImplicitReceiver: 8864case BoundKind.AnonymousObjectCreationExpression: 8866case BoundKind.AnonymousPropertyDeclaration: 8868case BoundKind.NewT: 8870case BoundKind.DelegateCreationExpression: 8872case BoundKind.ArrayCreation: 8874case BoundKind.ArrayInitialization: 8876case BoundKind.StackAllocArrayCreation: 8878case BoundKind.ConvertedStackAllocExpression: 8880case BoundKind.FieldAccess: 8882case BoundKind.HoistedFieldAccess: 8884case BoundKind.PropertyAccess: 8886case BoundKind.EventAccess: 8888case BoundKind.IndexerAccess: 8890case BoundKind.ImplicitIndexerAccess: 8892case BoundKind.DynamicIndexerAccess: 8894case BoundKind.Lambda: 8896case BoundKind.UnboundLambda: 8898case BoundKind.QueryClause: 8900case BoundKind.TypeOrInstanceInitializers: 8902case BoundKind.NameOfOperator: 8904case BoundKind.UnconvertedInterpolatedString: 8906case BoundKind.InterpolatedString: 8908case BoundKind.InterpolatedStringHandlerPlaceholder: 8910case BoundKind.InterpolatedStringArgumentPlaceholder: 8912case BoundKind.StringInsert: 8914case BoundKind.IsPatternExpression: 8916case BoundKind.ConstantPattern: 8918case BoundKind.DiscardPattern: 8920case BoundKind.DeclarationPattern: 8922case BoundKind.RecursivePattern: 8924case BoundKind.ListPattern: 8926case BoundKind.SlicePattern: 8928case BoundKind.ITuplePattern: 8930case BoundKind.PositionalSubpattern: 8932case BoundKind.PropertySubpattern: 8934case BoundKind.PropertySubpatternMember: 8936case BoundKind.TypePattern: 8938case BoundKind.BinaryPattern: 8940case BoundKind.NegatedPattern: 8942case BoundKind.RelationalPattern: 8944case BoundKind.DiscardExpression: 8946case BoundKind.ThrowExpression: 8948case BoundKind.OutVariablePendingInference: 8950case BoundKind.DeconstructionVariablePendingInference: 8952case BoundKind.OutDeconstructVarPendingInference: 8954case BoundKind.NonConstructorMethodBody: 8956case BoundKind.ConstructorMethodBody: 8958case BoundKind.ExpressionWithNullability: 8960case BoundKind.WithExpression:
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (3)
313if (node.Expression.Kind == BoundKind.AwaitExpression) 317else if (node.Expression.Kind == BoundKind.AssignmentOperator) 320if (expression.Right.Kind == BoundKind.AwaitExpression)
Lowering\ClosureConversion\ClosureConversion.Analysis.cs (6)
107case BoundKind.SequencePoint: 111case BoundKind.SequencePointWithSpan: 115case BoundKind.Block: 116case BoundKind.StatementList: 117case BoundKind.FieldEqualsValue: 120case BoundKind.GlobalStatementInitializer:
Lowering\ClosureConversion\ClosureConversion.cs (3)
1088if (visited.Kind != BoundKind.Call) 1317if (node.Argument.Kind == BoundKind.Lambda) 1364receiver.Kind == BoundKind.TypeExpression &&
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (41)
142case BoundKind.ReturnStatement: 150case BoundKind.ExpressionStatement: 152case BoundKind.SequencePoint: 155case BoundKind.SequencePointWithSpan: 185case BoundKind.ArrayAccess: 187case BoundKind.ArrayCreation: 189case BoundKind.ArrayLength: 191case BoundKind.AsOperator: 193case BoundKind.BaseReference: 195case BoundKind.BinaryOperator: 198case BoundKind.UserDefinedConditionalLogicalOperator: 201case BoundKind.Call: 203case BoundKind.ConditionalOperator: 205case BoundKind.Conversion: 207case BoundKind.PassByCopy: 209case BoundKind.DelegateCreationExpression: 211case BoundKind.FieldAccess: 218case BoundKind.IsOperator: 220case BoundKind.Lambda: 222case BoundKind.NewT: 224case BoundKind.NullCoalescingOperator: 226case BoundKind.ObjectCreationExpression: 228case BoundKind.Parameter: 230case BoundKind.PointerIndirectionOperator: 232case BoundKind.PointerElementAccess: 234case BoundKind.PropertyAccess: 236case BoundKind.SizeOfOperator: 238case BoundKind.UnaryOperator: 241case BoundKind.DefaultExpression: 242case BoundKind.HostObjectMemberReference: 243case BoundKind.Literal: 244case BoundKind.Local: 245case BoundKind.MethodInfo: 246case BoundKind.PreviousSubmissionReference: 247case BoundKind.ThisReference: 248case BoundKind.TypeOfOperator: 467if (operand.Kind == BoundKind.Conversion) 708if (node.Argument.Kind == BoundKind.MethodGroup) 710throw ExceptionUtilities.UnexpectedValue(BoundKind.MethodGroup); 866case BoundKind.ObjectInitializerExpression: 908case BoundKind.CollectionInitializerExpression:
Lowering\DiagnosticsPass_ExpressionTrees.cs (8)
242if (_inExpressionLambda && node.Left.Kind != BoundKind.ObjectInitializerMember && node.Left.Kind != BoundKind.DynamicObjectInitializerMember) 266bool hasBaseReceiver = node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.BaseReference; 280bool hasBaseReceiver = node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.BaseReference; 622if (current.Left.Kind == BoundKind.BinaryOperator) 688if (operand.Kind == BoundKind.FieldAccess) 781if (node.Argument.Kind != BoundKind.MethodGroup) 865if (node.Expression.Kind == BoundKind.MethodGroup)
Lowering\DiagnosticsPass_Warnings.cs (25)
33case BoundKind.FieldAccess: 36case BoundKind.Local: 43case BoundKind.DiscardExpression: 97if (receiverOpt != null && receiverOpt.Kind == BoundKind.FieldAccess) 141while (receiver.Kind == BoundKind.Conversion) 148return receiver.Kind != BoundKind.ThisReference && receiver.Kind != BoundKind.BaseReference; 203case BoundKind.Local: 207case BoundKind.FieldAccess: 212case BoundKind.EventAccess: 217case BoundKind.Parameter: 221case BoundKind.RangeVariable: 225case BoundKind.ThisReference: 226case BoundKind.PreviousSubmissionReference: 227case BoundKind.HostObjectMemberReference: 317if (node.Left.ConstantValueOpt != null && node.Right.ConstantValueOpt == null && node.Right.Kind == BoundKind.Conversion) 322if (node.Right.ConstantValueOpt != null && node.Left.ConstantValueOpt == null && node.Left.Kind == BoundKind.Conversion) 347return node.Kind == BoundKind.Conversion && ((BoundConversion)node).ExplicitCastInCode; 353if (node.Kind != BoundKind.Conversion) return false; 577if (operand.Kind == BoundKind.Conversion) 606if (expr.Kind != BoundKind.Conversion) 865if (node.Kind == BoundKind.Conversion) 889while (right.Kind == BoundKind.Conversion) 904if (right.Kind != BoundKind.ConvertedTupleLiteral && right.Kind != BoundKind.TupleLiteral)
Lowering\Extensions.cs (4)
51if (expr.Kind == BoundKind.ObjectCreationExpression) 56else if (expr.Kind == BoundKind.Conversion) 97if (expr.Kind == BoundKind.ObjectCreationExpression) 103if (expr.Kind == BoundKind.Conversion)
Lowering\InitializerRewriter.cs (4)
46(initializer.Kind == BoundKind.GlobalStatementInitializer) && 84return (statement.Kind == BoundKind.ExpressionStatement) && ((ExpressionStatementSyntax)statement.Syntax).SemicolonToken.IsMissing ? 123case BoundKind.FieldEqualsValue: 125case BoundKind.GlobalStatementInitializer:
Lowering\Instrumentation\CodeCoverageInstrumenter.cs (8)
529case BoundKind.IfStatement: 532case BoundKind.WhileStatement: 535case BoundKind.ForEachStatement: 538case BoundKind.DoStatement: 541case BoundKind.UsingStatement: 547case BoundKind.FixedStatement: 550case BoundKind.LockStatement: 553case BoundKind.SwitchStatement:
Lowering\Instrumentation\DebugInfoInjector.cs (1)
83if (rewritten.Kind == BoundKind.Block)
Lowering\Instrumentation\Instrumenter.cs (1)
292Debug.Assert(original.Kind == BoundKind.SwitchStatement);
Lowering\LocalRewriter\LocalRewriter.cs (40)
248node.Kind is not (BoundKind.ImplicitReceiver or BoundKind.ObjectOrCollectionValuePlaceholder or BoundKind.ValuePlaceholder)) 271return node.Kind == BoundKind.DeconstructionAssignmentOperator && !((BoundDeconstructionAssignmentOperator)node).IsUsed; 619if (initializer.Kind == BoundKind.Block) 758case BoundKind.Block: 763if (initializer.Kind == BoundKind.ExpressionStatement) 765goto case BoundKind.ExpressionStatement; 770case BoundKind.ExpressionStatement: 771return ((BoundExpressionStatement)initializer).Expression.Kind == BoundKind.AssignmentOperator; 788if (statement.Kind != BoundKind.ExpressionStatement) 799Debug.Assert(assignment.Left.Kind == BoundKind.FieldAccess); 897case BoundKind.Parameter: 898case BoundKind.Local: 899case BoundKind.ArrayAccess: 900case BoundKind.ThisReference: 901case BoundKind.PointerIndirectionOperator: 902case BoundKind.PointerElementAccess: 903case BoundKind.RefValueOperator: 904case BoundKind.PseudoVariable: 905case BoundKind.DiscardExpression: 908case BoundKind.DeconstructValuePlaceholder: 913case BoundKind.InterpolatedStringArgumentPlaceholder: 920case BoundKind.InterpolatedStringHandlerPlaceholder: 925case BoundKind.EventAccess: 939case BoundKind.FieldAccess: 950case BoundKind.Sequence: 953case BoundKind.AssignmentOperator: 956case BoundKind.ConditionalOperator: 959case BoundKind.Call: 962case BoundKind.PropertyAccess: 965case BoundKind.IndexerAccess: 968case BoundKind.ImplicitIndexerAccess: 971case BoundKind.ImplicitIndexerReceiverPlaceholder: 975case BoundKind.ImplicitIndexerValuePlaceholder: 980case BoundKind.ListPatternReceiverPlaceholder: 981case BoundKind.SlicePatternReceiverPlaceholder: 982case BoundKind.SlicePatternRangePlaceholder: 983case BoundKind.ListPatternIndexPlaceholder: 986case BoundKind.Conversion:
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
389ImmutableArray<BoundDecisionDagNode> nodesToLower = sortedNodes.WhereAsArray(n => n.Kind != BoundKind.WhenDecisionDagNode && n.Kind != BoundKind.LeafDecisionDagNode); 972if (!sortedNodes.Any(static n => n.Kind == BoundKind.WhenDecisionDagNode)) return; 1184Debug.Assert(left.Kind == BoundKind.Local && left == binding.VariableAccess);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (4)
519if ((loweredInput.Kind == BoundKind.Local || loweredInput.Kind == BoundKind.Parameter) 644if (canShareInputs && (expr.Kind == BoundKind.Parameter || expr.Kind == BoundKind.Local) && _tempAllocator.TrySetTemp(temp, expr))
Lowering\LocalRewriter\LocalRewriter_AssignmentOperator.cs (19)
29case BoundKind.PropertyAccess: 33case BoundKind.IndexerAccess: 37case BoundKind.ImplicitIndexerAccess: 43case BoundKind.EventAccess: 54case BoundKind.DynamicMemberAccess: 62case BoundKind.DynamicIndexerAccess: 96case BoundKind.DynamicIndexerAccess: 107case BoundKind.DynamicMemberAccess: 116case BoundKind.EventAccess: 176case BoundKind.DynamicIndexerAccess: 177case BoundKind.DynamicMemberAccess: 180case BoundKind.PropertyAccess: 200case BoundKind.IndexerAccess: 221case BoundKind.Local: 222case BoundKind.Parameter: 223case BoundKind.FieldAccess: 234case BoundKind.DiscardExpression: 239case BoundKind.Sequence: 245if (sequence.Value.Kind == BoundKind.IndexerAccess)
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (13)
282if (loweredRight.Kind == BoundKind.Local || loweredRight.Kind == BoundKind.Parameter) 294if (loweredRight.Kind == BoundKind.Local || loweredRight.Kind == BoundKind.Parameter) 481if (loweredLeft.Kind == BoundKind.ArrayLength && loweredRight.IsDefaultValue()) 496if (loweredRight.Kind == BoundKind.ArrayLength && loweredLeft.IsDefaultValue()) 511if (loweredLeft.Kind == BoundKind.ArrayLength && loweredRight.IsDefaultValue()) 515else if (loweredRight.Kind == BoundKind.ArrayLength && loweredLeft.IsDefaultValue()) 650if (constantLeft == null && loweredLeft.Kind != BoundKind.Local && loweredLeft.Kind != BoundKind.Parameter) 711if (expression.Kind == BoundKind.Conversion) 1527if (nonNullRight != null && nonNullRight.ConstantValueOpt != null && left.Kind == BoundKind.Sequence) 1530if (seq.Value.Kind == BoundKind.ConditionalOperator)
Lowering\LocalRewriter\LocalRewriter_Block.cs (2)
86case BoundKind.LabeledStatement: 89case BoundKind.UsingLocalDeclarations:
Lowering\LocalRewriter\LocalRewriter_Call.cs (10)
36case BoundKind.MethodGroup: 44Debug.Assert(methodGroup.ReceiverOpt == null || methodGroup.ReceiverOpt.Kind != BoundKind.TypeOrValueExpression); 71case BoundKind.DynamicMemberAccess: 321case BoundKind.Parameter: 323goto case BoundKind.Local; 325case BoundKind.Local: 329case BoundKind.PassByCopy: 331case BoundKind.Conversion: 1409if (argument?.Kind == BoundKind.Local) 1499if (argument.Kind == BoundKind.Local)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (39)
41if (node.Left.Kind == BoundKind.DynamicMemberAccess && 188Debug.Assert(receiverOpt.Kind != BoundKind.TypeExpression); 472Debug.Assert(receiver.Kind != BoundKind.TypeExpression); 584case BoundKind.PropertyAccess: 599case BoundKind.IndexerAccess: 611case BoundKind.ImplicitIndexerAccess: 624case BoundKind.FieldAccess: 641case BoundKind.ArrayAccess: 669case BoundKind.DynamicMemberAccess: 672case BoundKind.DynamicIndexerAccess: 675case BoundKind.Local: 676case BoundKind.Parameter: 677case BoundKind.ThisReference: // a special kind of parameter 678case BoundKind.PseudoVariable: 686case BoundKind.Call: 690case BoundKind.FunctionPointerInvocation: 694case BoundKind.ConditionalOperator: 698case BoundKind.AssignmentOperator: 702case BoundKind.PointerElementAccess: 703case BoundKind.PointerIndirectionOperator: 704case BoundKind.RefValueOperator: 707case BoundKind.EventAccess: 827case BoundKind.ThisReference: 830case BoundKind.BaseReference: 833case BoundKind.Literal: 837case BoundKind.Parameter: 841case BoundKind.Local: 844case BoundKind.TypeExpression: 868case BoundKind.Parameter: 870goto case BoundKind.Local; 871case BoundKind.Local: 872case BoundKind.Lambda: 873case BoundKind.ThisReference: 874case BoundKind.BaseReference: 875case BoundKind.Literal: 878case BoundKind.Conversion: 883case BoundKind.PassByCopy: 886case BoundKind.ObjectCreationExpression: 898case BoundKind.Call:
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (4)
238case BoundKind.Sequence: 242case BoundKind.Conversion: 1158if (operand.Kind == BoundKind.Sequence) 1161if (seq.Value.Kind == BoundKind.ConditionalOperator)
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (13)
62if (right.Kind == BoundKind.ConditionalOperator) 114Debug.Assert(right is not ({ Kind: BoundKind.TupleLiteral } or BoundConversion { Operand.Kind: BoundKind.TupleLiteral })); 117right is { Kind: BoundKind.ConvertedTupleLiteral } or BoundConversion { Operand.Kind: BoundKind.ConvertedTupleLiteral } 252if (leftTarget.Kind != BoundKind.DiscardExpression) 304if (right.Kind == BoundKind.Conversion) 328private static bool IsTupleExpression(BoundKind kind) 330return kind == BoundKind.TupleLiteral || kind == BoundKind.ConvertedTupleLiteral; 451case BoundKind.DiscardExpression: 455case BoundKind.TupleLiteral: 456case BoundKind.ConvertedTupleLiteral:
Lowering\LocalRewriter\LocalRewriter_DelegateCreationExpression.cs (1)
26if (node.Argument.Kind == BoundKind.MethodGroup)
Lowering\LocalRewriter\LocalRewriter_ExpressionStatement.cs (6)
50case BoundKind.AwaitExpression: 53case BoundKind.AssignmentOperator: 57case BoundKind.CompoundAssignmentOperator: 60case BoundKind.Call: 71case BoundKind.DynamicInvocation: 75case BoundKind.ConditionalAccess:
Lowering\LocalRewriter\LocalRewriter_Field.cs (1)
66if (rewrittenReceiver?.Kind == BoundKind.DefaultExpression)
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (1)
245Debug.Assert(initializerExpr.Kind == BoundKind.AddressOfOperator);
Lowering\LocalRewriter\LocalRewriter_ForStatement.cs (4)
52Debug.Assert(original.Kind == BoundKind.ForStatement || original.Kind == BoundKind.ForEachStatement); 149case BoundKind.ForEachStatement: 152case BoundKind.ForStatement:
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (8)
264if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 305if (makeOffsetInput.ConstantValueOpt is null && lengthAccess.Kind is not BoundKind.ArrayLength) 572if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 725if ((rewriteFlags & captureLength) != 0 && lengthAccess.Kind is not BoundKind.Local)
Lowering\LocalRewriter\LocalRewriter_IsOperator.cs (2)
33if (rewrittenOperand.Kind == BoundKind.MethodGroup) 37if (receiver != null && receiver.Kind != BoundKind.ThisReference)
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (2)
244while (node.Kind != BoundKind.LeafDecisionDagNode && node.Kind != BoundKind.WhenDecisionDagNode)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingAssignmentOperator.cs (2)
90Debug.Assert(!_inExpressionLambda && lhsRead.Kind != BoundKind.PropertyAccess); 94if (lhsRead.Kind == BoundKind.Call)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (2)
183if (expression.Kind != BoundKind.Call) 212while (expression.Kind == BoundKind.Conversion)
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (12)
73case BoundKind.ObjectInitializerExpression: 76case BoundKind.CollectionInitializerExpression: 99if (initializer.Kind == BoundKind.CollectionElementInitializer) 106Debug.Assert(initializer.Kind == BoundKind.DynamicCollectionElementInitializer); 280if (assignment.Left.Kind != BoundKind.PointerElementAccess) 285BoundKind rhsKind = assignment.Right.Kind; 286bool isRhsNestedInitializer = rhsKind == BoundKind.ObjectInitializerExpression || rhsKind == BoundKind.CollectionInitializerExpression; 291case BoundKind.ObjectInitializerMember: 364case BoundKind.DynamicObjectInitializerMember: 391case BoundKind.ArrayAccess: 413case BoundKind.PointerElementAccess:
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (3)
158case BoundKind.Call: 187case BoundKind.NullCoalescingOperator: 373if (expr.Kind == BoundKind.Conversion)
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (1)
325if (length == 1 && result is not ({ Kind: BoundKind.InterpolatedString } or { ConstantValueOpt.IsString: true }))
Lowering\LocalRewriter\LocalRewriter_TryStatement.cs (4)
52case BoundKind.NoOpStatement: 54case BoundKind.Block: 63case BoundKind.SequencePoint: 68case BoundKind.SequencePointWithSpan:
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (10)
45if (node.Operand.Kind == BoundKind.BinaryOperator) 316if (loweredOperand.Kind == BoundKind.Sequence) 319if (seq.Value.Kind == BoundKind.ConditionalOperator) 484case BoundKind.Local: 487case BoundKind.Parameter: 491case BoundKind.FieldAccess: 847case BoundKind.PropertyAccess: 851case BoundKind.DynamicMemberAccess: 855case BoundKind.IndexerAccess: 859case BoundKind.DynamicIndexerAccess:
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (1)
39BoundBlock tryBlock = rewrittenBody.Kind == BoundKind.Block
Lowering\LocalRewriter\LocalRewriter_WhileStatement.cs (4)
49Debug.Assert(loop.Kind == BoundKind.WhileStatement || loop.Kind == BoundKind.ForEachStatement); 74case BoundKind.WhileStatement: 78case BoundKind.ForEachStatement:
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (12)
225if (loweredReceiver.Kind == BoundKind.TypeExpression) 552case BoundKind.Parameter: 554goto case BoundKind.Local; 556case BoundKind.Local: 557case BoundKind.ArrayAccess: 558case BoundKind.ThisReference: 559case BoundKind.PointerIndirectionOperator: 560case BoundKind.PointerElementAccess: 561case BoundKind.RefValueOperator: 564case BoundKind.BaseReference: 566case BoundKind.TypeExpression: 687int discardCount = loweredArguments.Count(a => a.Kind == BoundKind.DiscardExpression);
Lowering\MethodToClassRewriter.cs (6)
475if (originalLeft.Kind != BoundKind.Local) 489Debug.Assert(originalRight.Kind != BoundKind.ConvertedStackAllocExpression); 511if (rewrittenLeft.Kind != BoundKind.Local && originalRight.Kind == BoundKind.ConvertedStackAllocExpression) 723return originalReceiver is { Kind: BoundKind.BaseReference } && 724rewrittenReceiver is { Kind: not BoundKind.BaseReference };
Lowering\SpillSequenceSpiller.cs (20)
20private const BoundKind SpillSequenceBuilderKind = (BoundKind)byte.MaxValue; 317case BoundKind.ArrayInitialization: 324case BoundKind.ArgListOperator: 337case BoundKind.Sequence: 350case BoundKind.AssignmentOperator: 353assignment is not { Left.Kind: BoundKind.Local, Right.Kind: BoundKind.ArrayAccess }) // Optimize for some known to be safe scenarios. 379case BoundKind.ThisReference: 380case BoundKind.BaseReference: 388case BoundKind.Parameter: 396case BoundKind.Local: 405case BoundKind.FieldAccess: 423case BoundKind.Literal: 424case BoundKind.TypeExpression: 427case BoundKind.ConditionalReceiver: 803case BoundKind.Local: 804case BoundKind.Parameter: 808case BoundKind.FieldAccess: 817case BoundKind.ArrayAccess:
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
269if (node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.ThisReference)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (11)
407if (statement.Kind == BoundKind.Block) 411if (rewrittenStatements.Length == 1 && rewrittenStatements[0].Kind == BoundKind.StateMachineScope) 552case BoundKind.ArrayAccess: 566case BoundKind.FieldAccess: 585if (receiver.Kind != BoundKind.ThisReference && !isFieldOfStruct) 593case BoundKind.ThisReference: 594case BoundKind.BaseReference: 595case BoundKind.DefaultExpression: 598case BoundKind.Call: 615case BoundKind.ConditionalOperator: 793if (node.Left.Kind != BoundKind.Local)
Lowering\SyntheticBoundNodeFactory.cs (3)
540if (body.Kind != BoundKind.Block) 1604var discardsPresent = arguments.Any(static a => a.Kind == BoundKind.DiscardExpression); 1609(arg, t) => arg.Kind == BoundKind.DiscardExpression ? t.factory.MakeTempForDiscard((BoundDiscardExpression)arg, t.builder) : arg,
Operations\CSharpOperationFactory.cs (170)
37case BoundKind.DeconstructValuePlaceholder: 39case BoundKind.DeconstructionAssignmentOperator: 41case BoundKind.Call: 43case BoundKind.Local: 45case BoundKind.FieldAccess: 47case BoundKind.PropertyAccess: 49case BoundKind.IndexerAccess: 51case BoundKind.EventAccess: 53case BoundKind.EventAssignmentOperator: 55case BoundKind.Parameter: 57case BoundKind.Literal: 59case BoundKind.Utf8String: 61case BoundKind.DynamicInvocation: 63case BoundKind.DynamicIndexerAccess: 65case BoundKind.ObjectCreationExpression: 67case BoundKind.WithExpression: 69case BoundKind.DynamicObjectCreationExpression: 71case BoundKind.ObjectInitializerExpression: 73case BoundKind.CollectionInitializerExpression: 75case BoundKind.ObjectInitializerMember: 77case BoundKind.CollectionElementInitializer: 79case BoundKind.DynamicObjectInitializerMember: 81case BoundKind.DynamicMemberAccess: 83case BoundKind.DynamicCollectionElementInitializer: 85case BoundKind.UnboundLambda: 87case BoundKind.Lambda: 89case BoundKind.Conversion: 91case BoundKind.AsOperator: 93case BoundKind.IsOperator: 95case BoundKind.SizeOfOperator: 97case BoundKind.TypeOfOperator: 99case BoundKind.ArrayCreation: 101case BoundKind.ArrayInitialization: 103case BoundKind.DefaultLiteral: 105case BoundKind.DefaultExpression: 107case BoundKind.BaseReference: 109case BoundKind.ThisReference: 111case BoundKind.AssignmentOperator: 113case BoundKind.CompoundAssignmentOperator: 115case BoundKind.IncrementOperator: 117case BoundKind.BadExpression: 119case BoundKind.NewT: 121case BoundKind.NoPiaObjectCreationExpression: 123case BoundKind.UnaryOperator: 125case BoundKind.BinaryOperator: 126case BoundKind.UserDefinedConditionalLogicalOperator: 128case BoundKind.TupleBinaryOperator: 130case BoundKind.ConditionalOperator: 132case BoundKind.NullCoalescingOperator: 134case BoundKind.AwaitExpression: 136case BoundKind.ArrayAccess: 138case BoundKind.ImplicitIndexerAccess: 140case BoundKind.NameOfOperator: 142case BoundKind.ThrowExpression: 144case BoundKind.AddressOfOperator: 146case BoundKind.ImplicitReceiver: 148case BoundKind.ConditionalAccess: 150case BoundKind.ConditionalReceiver: 152case BoundKind.FieldEqualsValue: 154case BoundKind.PropertyEqualsValue: 156case BoundKind.ParameterEqualsValue: 158case BoundKind.Block: 160case BoundKind.ContinueStatement: 162case BoundKind.BreakStatement: 164case BoundKind.YieldBreakStatement: 166case BoundKind.GotoStatement: 168case BoundKind.NoOpStatement: 170case BoundKind.IfStatement: 172case BoundKind.WhileStatement: 174case BoundKind.DoStatement: 176case BoundKind.ForStatement: 178case BoundKind.ForEachStatement: 180case BoundKind.TryStatement: 182case BoundKind.CatchBlock: 184case BoundKind.FixedStatement: 186case BoundKind.UsingStatement: 188case BoundKind.ThrowStatement: 190case BoundKind.ReturnStatement: 192case BoundKind.YieldReturnStatement: 194case BoundKind.LockStatement: 196case BoundKind.BadStatement: 198case BoundKind.LocalDeclaration: 200case BoundKind.MultipleLocalDeclarations: 201case BoundKind.UsingLocalDeclarations: 203case BoundKind.LabelStatement: 205case BoundKind.LabeledStatement: 207case BoundKind.ExpressionStatement: 209case BoundKind.TupleLiteral: 210case BoundKind.ConvertedTupleLiteral: 212case BoundKind.InterpolatedString: 214case BoundKind.StringInsert: 216case BoundKind.LocalFunctionStatement: 218case BoundKind.AnonymousObjectCreationExpression: 220case BoundKind.ConstantPattern: 222case BoundKind.DeclarationPattern: 224case BoundKind.RecursivePattern: 226case BoundKind.ITuplePattern: 228case BoundKind.DiscardPattern: 230case BoundKind.BinaryPattern: 232case BoundKind.NegatedPattern: 234case BoundKind.RelationalPattern: 236case BoundKind.TypePattern: 238case BoundKind.SlicePattern: 240case BoundKind.ListPattern: 242case BoundKind.SwitchStatement: 244case BoundKind.SwitchLabel: 246case BoundKind.IsPatternExpression: 248case BoundKind.QueryClause: 250case BoundKind.DelegateCreationExpression: 252case BoundKind.RangeVariable: 254case BoundKind.ConstructorMethodBody: 256case BoundKind.NonConstructorMethodBody: 258case BoundKind.DiscardExpression: 260case BoundKind.NullCoalescingAssignmentOperator: 262case BoundKind.FromEndIndexExpression: 264case BoundKind.RangeExpression: 266case BoundKind.SwitchSection: 268case BoundKind.ConvertedSwitchExpression: 270case BoundKind.SwitchExpressionArm: 272case BoundKind.ObjectOrCollectionValuePlaceholder: 274case BoundKind.FunctionPointerInvocation: 276case BoundKind.UnconvertedAddressOfOperator: 278case BoundKind.InterpolatedStringArgumentPlaceholder: 280case BoundKind.InterpolatedStringHandlerPlaceholder: 282case BoundKind.Attribute: 285case BoundKind.ArgList: 286case BoundKind.ArgListOperator: 287case BoundKind.ConvertedStackAllocExpression: 288case BoundKind.FixedLocalCollectionInitializer: 289case BoundKind.GlobalStatementInitializer: 290case BoundKind.HostObjectMemberReference: 291case BoundKind.MakeRefOperator: 292case BoundKind.MethodGroup: 293case BoundKind.NamespaceExpression: 294case BoundKind.PointerElementAccess: 295case BoundKind.PointerIndirectionOperator: 296case BoundKind.PreviousSubmissionReference: 297case BoundKind.RefTypeOperator: 298case BoundKind.RefValueOperator: 299case BoundKind.Sequence: 300case BoundKind.StackAllocArrayCreation: 301case BoundKind.TypeExpression: 302case BoundKind.TypeOrValueExpression: 311case BoundKind.FixedLocalCollectionInitializer: 323case BoundKind.UnconvertedInterpolatedString: 324case BoundKind.UnconvertedConditionalOperator: 325case BoundKind.UnconvertedSwitchExpression: 326case BoundKind.AnonymousPropertyDeclaration: 397case BoundKind.LocalDeclaration: 401case BoundKind.MultipleLocalDeclarations: 402case BoundKind.UsingLocalDeclarations: 521case BoundKind.LocalDeclaration: 527case BoundKind.MultipleLocalDeclarations: 528case BoundKind.UsingLocalDeclarations: 952if (receiver?.Kind == BoundKind.TypeExpression) 1064Debug.Assert(boundOperand.Kind == BoundKind.BadExpression || 1066ExpressionOpt?.Kind == BoundKind.BadExpression); 1076if (boundOperand.Kind == BoundKind.ConvertedTupleLiteral && TypeSymbol.Equals(boundOperand.Type, boundConversion.Type, TypeCompareKind.ConsiderEverything2)) 1090if (boundConversion.ExplicitCastInCode && conversion.IsIdentity && boundOperand.Kind == BoundKind.Conversion) 1096nestedOperand.Kind == BoundKind.ConvertedTupleLiteral && 1112if ((boundOperand.Kind == BoundKind.Lambda || 1113boundOperand.Kind == BoundKind.UnboundLambda || 1114boundOperand.Kind == BoundKind.MethodGroup) && 1260boundAssignmentOperator.Right?.Kind == BoundKind.ObjectInitializerExpression || 1261boundAssignmentOperator.Right?.Kind == BoundKind.CollectionInitializerExpression; 1576if (boundIndexerAccess.LengthOrCountAccess.Kind == BoundKind.ArrayLength) 2163if (part.Kind == BoundKind.StringInsert) 2422if (variable == null && boundDeclarationPattern.VariableAccess?.Kind == BoundKind.DiscardExpression) 2608Debug.Assert(boundSwitchLabel.Pattern.Kind == BoundKind.DiscardPattern); 2612boundSwitchLabel.Pattern.Kind == BoundKind.ConstantPattern &&
Operations\CSharpOperationFactory_Methods.cs (14)
25if (statement.Kind == BoundKind.StatementList) 100if (instance == null || instance.Kind == BoundKind.TypeExpression) 106if (symbol != null && symbol.IsStatic && instance.WasCompilerGenerated && instance.Kind == BoundKind.ThisReference) 163if (boundDelegateCreationExpression.Argument.Kind == BoundKind.MethodGroup && 198case BoundKind.ObjectInitializerMember: 211case BoundKind.IndexerAccess: 221case BoundKind.ObjectCreationExpression: 231case BoundKind.Attribute: 240case BoundKind.Call: 251case BoundKind.CollectionElementInitializer: 262case BoundKind.FunctionPointerInvocation: 313|| (receiverOpt.Kind != BoundKind.ThisReference 314&& receiverOpt.Kind != BoundKind.BaseReference 315&& receiverOpt.Kind != BoundKind.ObjectOrCollectionValuePlaceholder)))
Symbols\ConstantValueUtils.cs (1)
98while (unconvertedBoundValue.Kind == BoundKind.Conversion)
Symbols\FunctionTypeSymbol.cs (2)
68Debug.Assert(expression.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda);
Symbols\Source\ParameterHelpers.cs (4)
853case BoundKind.DefaultLiteral: 854case BoundKind.DefaultExpression: 856case BoundKind.ObjectCreationExpression: 858case BoundKind.Conversion:
Symbols\Source\SourceComplexParameterSymbol.cs (1)
393if (convertedExpression.ConstantValueOpt == null && convertedExpression.Kind == BoundKind.Conversion &&
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (12)
Rewriters\CapturedVariableRewriter.cs (4)
120var boundKind = node.Kind; 121Debug.Assert(boundKind == BoundKind.ThisReference || boundKind == BoundKind.BaseReference); 122var errorCode = boundKind == BoundKind.BaseReference
Rewriters\LocalDeclarationRewriter.cs (2)
35case BoundKind.LocalDeclaration: 40case BoundKind.MultipleLocalDeclarations:
Rewriters\MayHaveSideEffectsVisitor.cs (1)
73var expr = (initializer.Kind == BoundKind.AssignmentOperator)
Symbols\EEMethodSymbol.cs (5)
543if (body.Kind != BoundKind.ReturnStatement) 739case BoundKind.ReturnStatement: 741case BoundKind.ExpressionStatement: 742case BoundKind.LocalDeclaration: 743case BoundKind.MultipleLocalDeclarations:
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (19)
Semantics\ConstantTests.cs (4)
592var actual = ParseAndGetConstantFoldingSteps(source, node => node.Kind == BoundKind.BinaryOperator); 641var actual = ParseAndGetConstantFoldingSteps(source, node => node.Kind == BoundKind.UnaryOperator); 1448return ParseAndGetConstantFoldingSteps(source, node => node.Kind != BoundKind.Literal && node.Kind != BoundKind.Local);
Semantics\FieldInitializerBindingTests.cs (1)
274Assert.Equal(BoundKind.FieldEqualsValue, boundInit.Kind);
Semantics\SemanticAnalyzerTests.cs (14)
1332Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1335Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1360Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1363Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1388Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1391Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1425Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1428Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1459Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1462Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1494Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1497Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1529Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1532Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind);