2362 references to BoundKind
Microsoft.CodeAnalysis.CSharp (2362)
Binder\Binder.cs (1)
873RoslynDebug.Assert(statement.Kind != BoundKind.StatementList);
Binder\Binder.ValueChecks.cs (226)
514case BoundKind.PropertyGroup: 524case BoundKind.Local: 528case BoundKind.OutVariablePendingInference: 529case BoundKind.OutDeconstructVarPendingInference: 533case BoundKind.DiscardExpression: 537case BoundKind.PropertyAccess: 559case BoundKind.IndexerAccess: 563case BoundKind.ImplicitIndexerAccess: 581case BoundKind.UnconvertedObjectCreationExpression: 588case BoundKind.UnconvertedCollectionExpression: 595case BoundKind.PointerIndirectionOperator: 603case BoundKind.PointerElementAccess: 618if (expr.Kind == BoundKind.MethodGroup && valueKind != BindValueKind.RValueOrMethodGroup) 644if ((object)otherSymbol != null && receiver?.Kind == BoundKind.TypeOrValueExpression) 683case BoundKind.TypeOrValueExpression: 684case BoundKind.QueryClause when ((BoundQueryClause)expression).Value.Kind == BoundKind.TypeOrValueExpression: 716case BoundKind.PropertyAccess: 717case BoundKind.IndexerAccess: 718case BoundKind.ImplicitIndexerAccess when ((BoundImplicitIndexerAccess)expr).IndexerOrSliceAccess.Kind == BoundKind.IndexerAccess: 721case BoundKind.EventAccess: 741case BoundKind.NamespaceExpression: 746case BoundKind.TypeExpression: 751case BoundKind.Lambda: 752case BoundKind.UnboundLambda: 757case BoundKind.UnconvertedAddressOfOperator: 762case BoundKind.MethodGroup when valueKind == BindValueKind.AddressOf: 767case BoundKind.MethodGroup: 773case BoundKind.RangeVariable: 789case BoundKind.Conversion: 800case BoundKind.ArrayAccess: 804case BoundKind.PointerIndirectionOperator: 806case BoundKind.RefValueOperator: 808case BoundKind.DynamicMemberAccess: 809case BoundKind.DynamicIndexerAccess: 810case BoundKind.DynamicObjectInitializerMember: 822case BoundKind.PointerElementAccess: 839case BoundKind.Parameter: 843case BoundKind.Local: 847case BoundKind.ThisReference: 875case BoundKind.ImplicitReceiver: 876case BoundKind.ObjectOrCollectionValuePlaceholder: 880case BoundKind.Call: 884case BoundKind.FunctionPointerInvocation: 892case BoundKind.ImplicitIndexerAccess: 906case BoundKind.InlineArrayAccess: 928case BoundKind.ImplicitIndexerReceiverPlaceholder: 931case BoundKind.DeconstructValuePlaceholder: 934case BoundKind.ConditionalOperator: 954case BoundKind.FieldAccess: 960case BoundKind.AssignmentOperator: 971case BoundKind.ValuePlaceholder: 1023case BoundKind.NamespaceExpression: 1026case BoundKind.TypeExpression: 1638return Flags.Includes(BinderFlags.ObjectInitializerMember) && receiver.Kind == BoundKind.ObjectOrCollectionValuePlaceholder || 1802ReportDiagnosticsIfObsolete(diagnostics, setMethod, node, receiver?.Kind == BoundKind.BaseReference); 1852ReportDiagnosticsIfObsolete(diagnostics, getMethod, node, receiver?.Kind == BoundKind.BaseReference); 1935if (receiverOpt?.Kind == BoundKind.BaseReference && member.IsAbstract) 2410if (argument.Kind == BoundKind.ArgListOperator) 3448case BoundKind.ArrayAccess: 3449case BoundKind.PointerIndirectionOperator: 3450case BoundKind.PointerElementAccess: 3454case BoundKind.RefValueOperator: 3460case BoundKind.DiscardExpression: 3464case BoundKind.DynamicMemberAccess: 3465case BoundKind.DynamicIndexerAccess: 3471case BoundKind.Parameter: 3474case BoundKind.Local: 3477case BoundKind.CapturedReceiverPlaceholder: 3481case BoundKind.ThisReference: 3486case BoundKind.ConditionalOperator: 3499case BoundKind.FieldAccess: 3502case BoundKind.EventAccess: 3521case BoundKind.Call: 3543case BoundKind.FunctionPointerInvocation: 3565case BoundKind.IndexerAccess: 3582case BoundKind.ImplicitIndexerAccess: 3630case BoundKind.InlineArrayAccess: 3658case BoundKind.PropertyAccess: 3673case BoundKind.AssignmentOperator: 3684case BoundKind.Conversion: 3691case BoundKind.UnaryOperator: 3698case BoundKind.BinaryOperator: 3705case BoundKind.UserDefinedConditionalLogicalOperator: 3711case BoundKind.CompoundAssignmentOperator: 3763case BoundKind.ArrayAccess: 3764case BoundKind.PointerIndirectionOperator: 3765case BoundKind.PointerElementAccess: 3769case BoundKind.RefValueOperator: 3780case BoundKind.DiscardExpression: 3784case BoundKind.DynamicMemberAccess: 3785case BoundKind.DynamicIndexerAccess: 3791case BoundKind.Parameter: 3795case BoundKind.Local: 3799case BoundKind.CapturedReceiverPlaceholder: 3807case BoundKind.ThisReference: 3812case BoundKind.ConditionalOperator: 3824case BoundKind.FieldAccess: 3828case BoundKind.EventAccess: 3838case BoundKind.Call: 3864case BoundKind.IndexerAccess: 3890case BoundKind.ImplicitIndexerAccess: 3951case BoundKind.InlineArrayAccess: 3983case BoundKind.FunctionPointerInvocation: 4007case BoundKind.PropertyAccess: 4032case BoundKind.AssignmentOperator: 4049case BoundKind.Conversion: 4061case BoundKind.UnaryOperator: 4068case BoundKind.BinaryOperator: 4075case BoundKind.UserDefinedConditionalLogicalOperator: 4081case BoundKind.CompoundAssignmentOperator: 4088case BoundKind.ThrowExpression: 4151case BoundKind.ThisReference: 4155case BoundKind.DefaultLiteral: 4156case BoundKind.DefaultExpression: 4157case BoundKind.Utf8String: 4161case BoundKind.Parameter: 4164case BoundKind.FromEndIndexExpression: 4169case BoundKind.TupleLiteral: 4170case BoundKind.ConvertedTupleLiteral: 4174case BoundKind.MakeRefOperator: 4175case BoundKind.RefValueOperator: 4181case BoundKind.DiscardExpression: 4184case BoundKind.DeconstructValuePlaceholder: 4185case BoundKind.InterpolatedStringArgumentPlaceholder: 4186case BoundKind.AwaitableValuePlaceholder: 4189case BoundKind.Local: 4192case BoundKind.CapturedReceiverPlaceholder: 4197case BoundKind.StackAllocArrayCreation: 4198case BoundKind.ConvertedStackAllocExpression: 4201case BoundKind.ConditionalOperator: 4216case BoundKind.NullCoalescingOperator: 4222case BoundKind.FieldAccess: 4235case BoundKind.Call: 4251case BoundKind.FunctionPointerInvocation: 4266case BoundKind.IndexerAccess: 4283case BoundKind.ImplicitIndexerAccess: 4324case BoundKind.InlineArrayAccess: 4344case BoundKind.PropertyAccess: 4359case BoundKind.ObjectCreationExpression: 4384case BoundKind.NewT: 4399case BoundKind.WithExpression: 4405case BoundKind.UnaryOperator: 4423case BoundKind.Conversion: 4476case BoundKind.AssignmentOperator: 4483case BoundKind.NullCoalescingAssignmentOperator: 4486case BoundKind.IncrementOperator: 4489case BoundKind.CompoundAssignmentOperator: 4509case BoundKind.BinaryOperator: 4529case BoundKind.RangeExpression: 4535case BoundKind.UserDefinedConditionalLogicalOperator: 4549case BoundKind.QueryClause: 4552case BoundKind.RangeVariable: 4555case BoundKind.ObjectInitializerExpression: 4559case BoundKind.CollectionInitializerExpression: 4563case BoundKind.CollectionElementInitializer: 4567case BoundKind.ObjectInitializerMember: 4573case BoundKind.ImplicitReceiver: 4574case BoundKind.ObjectOrCollectionValuePlaceholder: 4579case BoundKind.InterpolatedStringHandlerPlaceholder: 4584case BoundKind.DisposableValuePlaceholder: 4589case BoundKind.PointerElementAccess: 4590case BoundKind.PointerIndirectionOperator: 4594case BoundKind.AsOperator: 4595case BoundKind.AwaitExpression: 4596case BoundKind.ConditionalAccess: 4597case BoundKind.ConditionalReceiver: 4598case BoundKind.ArrayAccess: 4602case BoundKind.ConvertedSwitchExpression: 4603case BoundKind.UnconvertedSwitchExpression: 4698if (expr.Kind == BoundKind.AssignmentOperator) 4848case BoundKind.ThisReference: 4853case BoundKind.DefaultLiteral: 4854case BoundKind.DefaultExpression: 4855case BoundKind.Utf8String: 4859case BoundKind.Parameter: 4862case BoundKind.TupleLiteral: 4863case BoundKind.ConvertedTupleLiteral: 4867case BoundKind.MakeRefOperator: 4868case BoundKind.RefValueOperator: 4872case BoundKind.DiscardExpression: 4876case BoundKind.DeconstructValuePlaceholder: 4877case BoundKind.AwaitableValuePlaceholder: 4878case BoundKind.InterpolatedStringArgumentPlaceholder: 4886case BoundKind.Local: 4895case BoundKind.CapturedReceiverPlaceholder: 4900case BoundKind.StackAllocArrayCreation: 4901case BoundKind.ConvertedStackAllocExpression: 4909case BoundKind.UnconvertedConditionalOperator: 4917case BoundKind.ConditionalOperator: 4933case BoundKind.NullCoalescingOperator: 4938case BoundKind.FieldAccess: 4951case BoundKind.Call: 4972case BoundKind.FunctionPointerInvocation: 4991case BoundKind.IndexerAccess: 5012case BoundKind.ImplicitIndexerAccess: 5063case BoundKind.InlineArrayAccess: 5087case BoundKind.PropertyAccess: 5106case BoundKind.ObjectCreationExpression: 5142case BoundKind.NewT: 5163case BoundKind.WithExpression: 5174case BoundKind.UnaryOperator: 5196case BoundKind.FromEndIndexExpression: 5200case BoundKind.Conversion: 5264case BoundKind.AssignmentOperator: 5268case BoundKind.NullCoalescingAssignmentOperator: 5272case BoundKind.IncrementOperator: 5276case BoundKind.CompoundAssignmentOperator: 5300case BoundKind.BinaryOperator: 5329case BoundKind.RangeExpression: 5339case BoundKind.UserDefinedConditionalLogicalOperator: 5357case BoundKind.QueryClause: 5361case BoundKind.RangeVariable: 5365case BoundKind.ObjectInitializerExpression: 5371case BoundKind.CollectionInitializerExpression: 5377case BoundKind.CollectionElementInitializer: 5381case BoundKind.PointerElementAccess: 5385case BoundKind.PointerIndirectionOperator: 5389case BoundKind.AsOperator: 5390case BoundKind.AwaitExpression: 5391case BoundKind.ConditionalAccess: 5392case BoundKind.ConditionalReceiver: 5393case BoundKind.ArrayAccess: 5397case BoundKind.UnconvertedSwitchExpression: 5398case BoundKind.ConvertedSwitchExpression:
Binder\Binder_Attributes.cs (5)
814case BoundKind.FieldAccess: 819case BoundKind.PropertyAccess: 864case BoundKind.Conversion: 866case BoundKind.TypeOfOperator: 868case BoundKind.ArrayCreation:
Binder\Binder_Await.cs (3)
78if (expression.Kind != BoundKind.Call || 340if (getAwaiterCall.Kind != BoundKind.Call) 447if (getAwaiterGetResultCall.Kind != BoundKind.Call)
Binder\Binder_Conversions.cs (4)
138if (conversion.IsAnonymousFunction && source.Kind == BoundKind.UnboundLambda) 209if (source.Kind == BoundKind.UnconvertedSwitchExpression) 231if (source.Kind == BoundKind.UnconvertedCollectionExpression) 253if (source.Kind == BoundKind.UnconvertedConditionalOperator)
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) 793if (expression == null && checkedVariable.Kind != BoundKind.DiscardExpression)
Binder\Binder_Expressions.cs (71)
205BoundKind exprKind = expr.Kind; 207if (expr.HasAnyErrors && ((object)resultType != null || exprKind == BoundKind.UnboundLambda || exprKind == BoundKind.DefaultLiteral)) 212if (exprKind == BoundKind.BadExpression) 259if (valueOrType.Kind == BoundKind.TypeExpression) 416Debug.Assert(expr.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup); 546if (expr.Kind == BoundKind.ArgListOperator) 588if (IsEarlyAttributeBinder && result.Kind == BoundKind.MethodGroup && (!IsInsideNameof || EnclosingNameofArgument != node)) 2772if (operand.Kind == BoundKind.UnboundLambda) 2821case BoundKind.MethodGroup: 2831case BoundKind.TupleLiteral: 2855case BoundKind.StackAllocArrayCreation: 2861case BoundKind.UnconvertedConditionalOperator when operand.Type is null: 2862case BoundKind.UnconvertedSwitchExpression when operand.Type is null: 2867case BoundKind.UnconvertedCollectionExpression: 2872case BoundKind.UnconvertedAddressOfOperator: 3118case BoundKind.PropertyAccess: 3119case BoundKind.IndexerAccess: 3509else if (argument.Kind == BoundKind.OutVariablePendingInference) 3513else if (argument.Kind == BoundKind.OutDeconstructVarPendingInference) 3517else if (argument.Kind == BoundKind.DiscardExpression && !argument.HasExpressionType()) 3553(BoundKind.OutVariablePendingInference or BoundKind.OutDeconstructVarPendingInference or BoundKind.DiscardExpression or BoundKind.ArgListOperator)); 5430else if (argument.Kind == BoundKind.MethodGroup) 5867if (boundMember.Kind == BoundKind.PropertyGroup) 5909BoundKind boundMemberKind = boundMember.Kind; 5921case BoundKind.FieldAccess: 5938case BoundKind.EventAccess: 5941case BoundKind.PropertyAccess: 5945case BoundKind.IndexerAccess: 5979case BoundKind.ImplicitIndexerAccess: 5990case BoundKind.DynamicObjectInitializerMember: 5993case BoundKind.DynamicIndexerAccess: 6003case BoundKind.ArrayAccess: 6004case BoundKind.PointerElementAccess: 6498if (addMethodInvocation.Kind == BoundKind.DynamicInvocation) 6509else if (addMethodInvocation.Kind == BoundKind.Call) 6538Debug.Assert(addMethodInvocation.Kind == BoundKind.BadExpression); 7017case BoundKind.ObjectCreationExpression: 7023case BoundKind.BadExpression: 7500if (boundValue.Kind == BoundKind.Conversion) 7692if (boundLeft.Kind == BoundKind.UnboundLambda) 7739case BoundKind.NamespaceExpression: 7749case BoundKind.TypeExpression: 7759case BoundKind.TypeOrValueExpression: 7769if (boundLeft.Kind == BoundKind.Literal && ((BoundLiteral)boundLeft).ConstantValueOpt == ConstantValue.Null) 7958case BoundKind.MethodGroup: 7981case BoundKind.PropertyGroup: 8082bool leftIsBaseReference = boundLeft.Kind == BoundKind.BaseReference; 8192if (boundLeft.HasAnyErrors && boundLeft.Kind != BoundKind.TypeOrValueExpression) 8213else if (boundLeft.Kind == BoundKind.TypeExpression || 8214boundLeft.Kind == BoundKind.BaseReference || 8441ReportDiagnosticsIfObsolete(diagnostics, symbol, node, hasBaseReceiver: left.Kind == BoundKind.BaseReference); 9057ReportDiagnosticsIfObsolete(diagnostics, propertySymbol, node, hasBaseReceiver: receiver?.Kind == BoundKind.BaseReference); 9162case BoundKind.PreviousSubmissionReference: 9165case BoundKind.TypeExpression: 9167case BoundKind.QueryClause: 9358if (receiver.Kind == BoundKind.PropertyGroup) 9773if (index.Kind == BoundKind.OutVariablePendingInference) 9777else if (index.Kind == BoundKind.DiscardExpression && !index.HasExpressionType()) 9965LookupOptions lookupOptions = expr.Kind == BoundKind.BaseReference ? LookupOptions.UseBaseReferenceAccessibility : LookupOptions.Default; 10079BoundKind receiverKind = receiver.Kind; 10080if (receiverKind == BoundKind.BaseReference) 10085else if (receiverKind == BoundKind.TypeOrValueExpression) 10221ReportDiagnosticsIfObsolete(diagnostics, property, syntax, hasBaseReceiver: receiver != null && receiver.Kind == BoundKind.BaseReference); 10231if (!gotError && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 11343if (access.Kind == BoundKind.MethodGroup) 11502if (receiver.Kind == BoundKind.UnboundLambda)
Binder\Binder_Initializers.cs (2)
268if (statement.Kind == BoundKind.LabeledStatement) 271while (labeledStatementBody.Kind == BoundKind.LabeledStatement)
Binder\Binder_Invocation.cs (41)
107if (!allowFieldsAndProperties && (boundExpression.Kind == BoundKind.FieldAccess || boundExpression.Kind == BoundKind.PropertyAccess)) 112if (boundExpression.Kind == BoundKind.FieldAccess) 124Debug.Assert(allowFieldsAndProperties || boundExpression.Kind is (BoundKind.MethodGroup or BoundKind.BadExpression)); 129Debug.Assert(!args.Any(static e => e.Kind == BoundKind.OutVariablePendingInference || 130e.Kind == BoundKind.OutDeconstructVarPendingInference || 131e.Kind == BoundKind.DiscardExpression && !e.HasExpressionType())); 145if (queryClause != null && result.Kind == BoundKind.DynamicInvocation) 161if (boundExpression.Kind == BoundKind.FieldAccess) 246string name = boundExpression.Kind == BoundKind.MethodGroup ? GetName(node.Expression) : null; 274if (argument.Kind == BoundKind.OutVariablePendingInference) 350else if (boundExpression.Kind == BoundKind.MethodGroup) 403if (expression.Kind == BoundKind.MethodGroup) 413case BoundKind.BaseReference: 418case BoundKind.ThisReference: 441case BoundKind.TypeOrValueExpression: 586if (arg.Kind == BoundKind.Lambda || arg.Kind == BoundKind.UnboundLambda) 592else if (arg.Kind == BoundKind.MethodGroup) 598else if (arg.Kind == BoundKind.ArgListOperator) 727Debug.Assert(extensionMemberAccess.Kind != BoundKind.MethodGroup); 1058case BoundKind.Call: 1072else if (call.ReceiverOpt.Kind == BoundKind.BaseReference && this.ContainingType.IsRestrictedType()) 1080case BoundKind.DynamicInvocation: 1093case BoundKind.FunctionPointerInvocation: 1307if (!gotError && method.RequiresInstanceReceiver && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 1323bool hasBaseReceiver = receiver != null && receiver.Kind == BoundKind.BaseReference; 1892case BoundKind.TypeOrValueExpression: 1918case BoundKind.QueryClause: 1956if ((object)expr != null && expr.Kind != BoundKind.TypeExpression) 2071case BoundKind.UnboundLambda: 2106case BoundKind.OutVariablePendingInference: 2107case BoundKind.DiscardExpression: 2115if (argument.Kind == BoundKind.OutVariablePendingInference) 2126else if (argument.Kind == BoundKind.DiscardExpression) 2140case BoundKind.OutDeconstructVarPendingInference: 2145case BoundKind.Parameter: 2146case BoundKind.Local: 2234var originalMethods = (expr.Kind == BoundKind.MethodGroup) ? ((BoundMethodGroup)expr).Methods : ImmutableArray<MethodSymbol>.Empty; 2282if (!boundArgument.HasAnyErrors && syntaxIsOk && boundArgument.Kind == BoundKind.MethodGroup)
Binder\Binder_Operators.cs (43)
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) 836case (BoundKind.DefaultLiteral, _) when !isEquality: 837case (_, BoundKind.DefaultLiteral) when !isEquality: 841case (BoundKind.DefaultLiteral, BoundKind.DefaultLiteral): 844case (BoundKind.DefaultLiteral, _) when right.Type is TypeParameterSymbol: 848case (_, BoundKind.DefaultLiteral) when left.Type is TypeParameterSymbol: 852case (BoundKind.UnconvertedObjectCreationExpression, _): 855case (_, BoundKind.UnconvertedObjectCreationExpression): 1951if (left.Kind == BoundKind.Conversion && right.Kind == BoundKind.Conversion) 2451case BoundKind.NamespaceExpression: 2452case BoundKind.TypeExpression: 2573BoundKind exprKind = expr.Kind; 2576case BoundKind.FieldAccess: 2577case BoundKind.EventAccess: 2581if (exprKind == BoundKind.FieldAccess) 2623case BoundKind.InlineArrayAccess: 2635case BoundKind.RangeVariable: 2643case BoundKind.Parameter: 2666case BoundKind.ThisReference: 2667case BoundKind.BaseReference: 2672case BoundKind.Local: 2682case BoundKind.PointerIndirectionOperator: //Covers ->, since the receiver will be one of these. 2683case BoundKind.ConvertedStackAllocExpression: 2687case BoundKind.PointerElementAccess: 2702case BoundKind.PropertyAccess: // Never fixed 2703case BoundKind.IndexerAccess: // Never fixed 3164case BoundKind.UnboundLambda: 3165case BoundKind.Lambda: 3166case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 3294operand.Kind == BoundKind.MethodGroup || 3712case BoundKind.UnboundLambda: 3713case BoundKind.Lambda: 3714case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 3723case BoundKind.TupleLiteral: 3724case BoundKind.ConvertedTupleLiteral: 4023if (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 }; 686if (convertedExpression.Kind == BoundKind.Conversion) 1561if (boundMember.Kind == BoundKind.PropertyGroup) 1571case BoundKind.FieldAccess: 1572case BoundKind.PropertyAccess: 1575case BoundKind.IndexerAccess: 1576case BoundKind.DynamicIndexerAccess: 1577case BoundKind.EventAccess:
Binder\Binder_Query.cs (7)
924while (ultimateReceiver.Kind == BoundKind.QueryClause) 931Debug.Assert(ultimateReceiver.Kind != BoundKind.MethodGroup || ultimateReceiver.HasAnyErrors); 949else if (ultimateReceiver.Kind == BoundKind.NamespaceExpression) 953else if (ultimateReceiver.Kind == BoundKind.Lambda || ultimateReceiver.Kind == BoundKind.UnboundLambda) 961else if (ultimateReceiver.Kind == BoundKind.TypeExpression) 969else if (ultimateReceiver.Kind == BoundKind.TypeOrValueExpression)
Binder\Binder_QueryErrors.cs (1)
220if (arg.Kind == BoundKind.UnboundLambda)
Binder\Binder_Statements.cs (39)
152(result.Kind == BoundKind.Block && 894BoundExpression expression = value.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup ? 1247case BoundKind.AddressOfOperator: 1251case BoundKind.FieldAccess: 1428bool discardAssignment = op1.Kind == BoundKind.DiscardExpression; 1507if (op1.Kind != BoundKind.DynamicIndexerAccess && 1508op1.Kind != BoundKind.DynamicMemberAccess && 1509op1.Kind != BoundKind.DynamicObjectInitializerMember) 1525if ((op1.Kind == BoundKind.EventAccess) && 1582else if (op1.Kind is BoundKind.Local or BoundKind.Parameter) 1595Debug.Assert(op1.Kind != BoundKind.Parameter); // If the assert fails, add a corresponding test. 1649case BoundKind.PropertyAccess: 1656case BoundKind.IndexerAccess: 1663case BoundKind.ImplicitIndexerAccess: 1787(propertyIsStatic || receiver?.Kind == BoundKind.ThisReference); 1822else if (receiver.Kind == BoundKind.BaseReference) 1948if (expression.HasAnyErrors && expression.Kind != BoundKind.UnboundLambda) 2338case BoundKind.BadExpression: 2342case BoundKind.UnboundLambda: 2347case BoundKind.TupleLiteral: 2371case BoundKind.MethodGroup: 2376case BoundKind.UnconvertedAddressOfOperator: 2381case BoundKind.Literal: 2398case BoundKind.StackAllocArrayCreation: 2404case BoundKind.UnconvertedSwitchExpression: 2417case BoundKind.UnconvertedCollectionExpression: 2422case BoundKind.AddressOfOperator when targetType.IsFunctionPointer(): 2427case BoundKind.UnconvertedConditionalOperator: 2456Debug.Assert(operand.HasAnyErrors && operand.Kind != BoundKind.UnboundLambda, "Missing a case in implicit conversion error reporting"); 2699if (expr.Kind == BoundKind.AssignmentOperator) 2702if (assignment.Right.Kind == BoundKind.Literal && assignment.Right.ConstantValueOpt.Discriminator == ConstantValueTypeDiscriminator.Boolean) 3176if (!argument.HasAnyErrors || argument.Kind == BoundKind.UnboundLambda) 3452if (expression.Kind == BoundKind.DelegateCreationExpression || expression.Kind == BoundKind.NameOfOperator) 3480if ((refKind != RefKind.None) != (returnRefKind != RefKind.None) && expression.Kind != BoundKind.ThrowExpression) 4134if (boundAccess.Kind != BoundKind.MethodGroup) 4162if (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)
2431if (RemainingTests[0] is One { Test: { Kind: BoundKind.DagNonNullTest } planA }) 2438case One { Test: { Kind: BoundKind.DagTypeTest } planB1 }: 2445case 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)
410if (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)
541if (node.Left.Kind != BoundKind.DiscardExpression)
Binder\Semantics\Conversions\ConversionsBase.cs (16)
1061case BoundKind.Literal: 1069case BoundKind.DefaultLiteral: 1072case BoundKind.ExpressionWithNullability: 1082case BoundKind.TupleLiteral: 1090case BoundKind.UnboundLambda: 1097case BoundKind.MethodGroup: 1105case BoundKind.UnconvertedInterpolatedString: 1106case BoundKind.BinaryOperator when ((BoundBinaryOperator)sourceExpression).IsUnconvertedInterpolatedStringAddition: 1113case BoundKind.StackAllocArrayCreation: 1121case BoundKind.UnconvertedAddressOfOperator when destination is FunctionPointerTypeSymbol funcPtrType: 1129case BoundKind.ThrowExpression: 1132case BoundKind.UnconvertedObjectCreationExpression: 1135case BoundKind.UnconvertedCollectionExpression: 1410if (sourceExpression.Kind == BoundKind.TupleLiteral) 1646if (source.Kind != BoundKind.UnboundLambda) 1949if (sourceExpressionOpt?.Kind == BoundKind.TupleLiteral)
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (1)
456&& nonDelegate.Kind == BoundKind.UnboundLambda)
Binder\Semantics\OverloadResolution\MethodGroup.cs (1)
117if (this.Receiver.Kind == BoundKind.TypeExpression)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (17)
634if (argument.Kind == BoundKind.UnboundLambda && target.Type.GetDelegateType() is { }) 639else if (argument.Kind == BoundKind.UnconvertedCollectionExpression) 643else if (argument.Kind != BoundKind.TupleLiteral || 876if (argument.Kind == BoundKind.TupleLiteral && (object)argument.Type == null) 880else if (argument.Kind == BoundKind.UnconvertedCollectionExpression) 1020if ((isFunctionPointer && argument.Kind != BoundKind.UnconvertedAddressOfOperator) || 1021(!isFunctionPointer && argument.Kind is not (BoundKind.UnboundLambda or BoundKind.MethodGroup))) 1076if ((isFunctionPointer && argument.Kind != BoundKind.UnconvertedAddressOfOperator) || 1077(!isFunctionPointer && argument.Kind is not (BoundKind.UnboundLambda or BoundKind.MethodGroup))) 1445if (source.Kind is not (BoundKind.MethodGroup or BoundKind.UnconvertedAddressOfOperator)) 1456if (delegateOrFunctionPointerType.IsFunctionPointer() != (source.Kind == BoundKind.UnconvertedAddressOfOperator)) 1556if (source.Kind != BoundKind.UnboundLambda) 1610if (source.Kind != BoundKind.UnboundLambda) 3087if (source.Kind != BoundKind.UnboundLambda)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (16)
2188if (argumentKind == BoundKind.ArgListOperator) 2330if (argumentKind == BoundKind.ArgListOperator) 2490if (arguments[i].Kind == BoundKind.ArgListOperator) 2643if (arguments[i].Kind != BoundKind.ArgListOperator) 2931var nodeKind = node.Kind; 2932if (nodeKind == BoundKind.OutVariablePendingInference || 2933nodeKind == BoundKind.OutDeconstructVarPendingInference || 2934(nodeKind == BoundKind.DiscardExpression && !node.HasExpressionType())) 3254if (node.Kind == BoundKind.TupleLiteral) 3270if (node.Kind == BoundKind.UnboundLambda && 3310if (lambda.Body.Statements[0].Kind == BoundKind.ReturnStatement) 3586if (node?.Kind == BoundKind.MethodGroup) 4586if (argument.Kind == BoundKind.ArgListOperator) 4755if (argument.Kind == BoundKind.OutVariablePendingInference || 4756argument.Kind == BoundKind.OutDeconstructVarPendingInference || 4757(argument.Kind == BoundKind.DiscardExpression && (object)argType == null))
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (13)
659if (receiverOpt?.Kind == BoundKind.QueryClause) 1070if (argument.Kind == BoundKind.UnboundLambda) 1210argument.Kind != BoundKind.OutDeconstructVarPendingInference && 1211argument.Kind != BoundKind.OutVariablePendingInference && 1212argument.Kind != BoundKind.DiscardExpression) 1218if (argument.Kind == BoundKind.UnboundLambda && refArg == refParameter) 1222else if (argument.Kind == BoundKind.MethodGroup && parameterType.TypeKind == TypeKind.Delegate && 1227else if (argument.Kind == BoundKind.MethodGroup && parameterType.TypeKind == TypeKind.FunctionPointer) 1231else if (argument.Kind == BoundKind.UnconvertedAddressOfOperator && 1236else if (argument.Kind == BoundKind.UnconvertedCollectionExpression) 1301Debug.Assert(argument.Kind != BoundKind.OutDeconstructVarPendingInference); 1302Debug.Assert(argument.Kind != BoundKind.OutVariablePendingInference); 1303Debug.Assert(argument.Kind != BoundKind.DiscardExpression || argument.HasExpressionType());
BoundTree\BoundDecisionDag.cs (1)
205return this.TopologicallySortedNodes.Any(static node => node is BoundEvaluationDecisionDagNode e && e.Evaluation.Kind == BoundKind.DagAssignmentEvaluation);
BoundTree\BoundExpression.cs (15)
56if ((Kind != BoundKind.Local && Kind != BoundKind.Parameter) || this.WasConverted) 76case BoundKind.TupleLiteral: 77case BoundKind.UnconvertedSwitchExpression: 78case BoundKind.UnconvertedObjectCreationExpression: 79case BoundKind.UnconvertedConditionalOperator: 80case BoundKind.DefaultLiteral: 81case BoundKind.UnconvertedInterpolatedString: 82case BoundKind.UnconvertedCollectionExpression: 84case BoundKind.StackAllocArrayCreation: 89case BoundKind.BinaryOperator: 92case BoundKind.Local when !WasConverted: 93case BoundKind.Parameter when !WasConverted: 605return this.Condition.Kind == BoundKind.UnaryOperator && ((BoundUnaryOperator)this.Condition).OperatorKind.IsDynamic(); 731if (argument.Kind == BoundKind.TupleLiteral)
BoundTree\BoundExpressionExtensions.cs (22)
24case BoundKind.Local: 27case BoundKind.Parameter: 30case BoundKind.FieldAccess: 33case BoundKind.Call: 36case BoundKind.PropertyAccess: 39case BoundKind.IndexerAccess: 42case BoundKind.ImplicitIndexerAccess: 45case BoundKind.InlineArrayAccess: 63case BoundKind.ObjectInitializerMember: 83return node is { Kind: BoundKind.Literal, ConstantValueOpt: { Discriminator: ConstantValueTypeDiscriminator.Null } }; 88return node.Kind == BoundKind.DefaultLiteral; 93return node.Kind == BoundKind.UnconvertedObjectCreationExpression; 109if (node.Kind == BoundKind.DefaultExpression || node.Kind == BoundKind.DefaultLiteral) 137Debug.Assert(expr.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda); 172case BoundKind.MethodGroup: 186case BoundKind.BadExpression: 194case BoundKind.DelegateCreationExpression: 203case BoundKind.Call: 217case BoundKind.IndexerAccess: 244case BoundKind.Conversion:
BoundTree\BoundMethodGroup.cs (1)
61if (this.ReceiverOpt == null || this.ReceiverOpt.Kind == BoundKind.TypeExpression)
BoundTree\BoundNode.cs (7)
17private readonly BoundKind _kind; 73protected BoundNode(BoundKind kind, SyntaxNode syntax) 76kind == BoundKind.SequencePoint || 77kind == BoundKind.SequencePointExpression || 78kind == (BoundKind)byte.MaxValue || // used in SpillSequenceSpiller 85protected BoundNode(BoundKind kind, SyntaxNode syntax, bool hasErrors) 377public 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 (4)
250if (child.Kind != BoundKind.BinaryOperator) 265if (child.Kind != BoundKind.BinaryOperator) 344if (child.Kind != BoundKind.BinaryPattern) 359if (child.Kind != BoundKind.BinaryPattern)
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)
121while (current.Kind == BoundKind.BinaryOperator) 159while (current.Kind == BoundKind.BinaryPattern)
BoundTree\Constructors.cs (3)
71case BoundKind.FieldAccess: 74case BoundKind.Local: 206Debug.Assert(method is ErrorMethodSymbol || arguments[i].Kind == BoundKind.ArgListOperator);
BoundTree\Expression.cs (2)
170(this.Kind == BoundKind.StatementList || this.Kind == BoundKind.Scope) ? StaticCast<BoundNode?>.From(this.Statements) : ImmutableArray<BoundNode?>.Empty;
CodeGen\CodeGenerator_HasHome.cs (17)
53case BoundKind.ArrayAccess: 63case BoundKind.PointerIndirectionOperator: 64case BoundKind.RefValueOperator: 67case BoundKind.ThisReference: 82case BoundKind.ThrowExpression: 86case BoundKind.Parameter: 90case BoundKind.Local: 97case BoundKind.Call: 102case BoundKind.Dup: 108case BoundKind.FieldAccess: 111case BoundKind.Sequence: 114case BoundKind.AssignmentOperator: 124case BoundKind.ComplexConditionalReceiver: 137goto case BoundKind.ConditionalReceiver; 139case BoundKind.ConditionalReceiver: 144case BoundKind.ConditionalOperator: 257fieldAccess.ReceiverOpt.Kind == BoundKind.ThisReference;
CodeGen\EmitAddress.cs (25)
28case BoundKind.RefValueOperator: 32case BoundKind.Local: 35case BoundKind.Dup: 39case BoundKind.ConditionalReceiver: 45case BoundKind.ComplexConditionalReceiver: 49case BoundKind.Parameter: 52case BoundKind.FieldAccess: 55case BoundKind.ArrayAccess: 64case BoundKind.ThisReference: 85case BoundKind.PreviousSubmissionReference: 89case BoundKind.BaseReference: 93case BoundKind.PassByCopy: 96case BoundKind.Sequence: 99case BoundKind.PointerIndirectionOperator: 106case BoundKind.PseudoVariable: 110case BoundKind.Call: 121case BoundKind.FunctionPointerInvocation: 133case BoundKind.DefaultExpression: 143case BoundKind.ConditionalOperator: 152case BoundKind.AssignmentOperator: 164case BoundKind.ThrowExpression: 355case BoundKind.Local: 364case BoundKind.Sequence: 367case BoundKind.FieldAccess: 522if (receiver.Kind != BoundKind.ConditionalReceiver)
CodeGen\EmitArrayInitializer.cs (4)
348if (inits[0].Kind == BoundKind.ArrayInitialization) 370Debug.Assert(inits.All((init) => init.Kind != BoundKind.ArrayInitialization) || 371inits.All((init) => init.Kind == BoundKind.ArrayInitialization), 374return inits.Length != 0 && inits[0].Kind == BoundKind.ArrayInitialization;
CodeGen\EmitExpression.cs (145)
98case BoundKind.AssignmentOperator: 102case BoundKind.Call: 106case BoundKind.ObjectCreationExpression: 110case BoundKind.DelegateCreationExpression: 114case BoundKind.ArrayCreation: 118case BoundKind.ConvertedStackAllocExpression: 122case BoundKind.ReadOnlySpanFromArray: 126case BoundKind.Conversion: 130case BoundKind.Local: 134case BoundKind.Dup: 138case BoundKind.PassByCopy: 142case BoundKind.Parameter: 149case BoundKind.FieldAccess: 153case BoundKind.ArrayAccess: 157case BoundKind.RefArrayAccess: 161case BoundKind.ArrayLength: 165case BoundKind.ThisReference: 172case BoundKind.PreviousSubmissionReference: 176case BoundKind.BaseReference: 189case BoundKind.Sequence: 193case BoundKind.SequencePointExpression: 197case BoundKind.UnaryOperator: 201case BoundKind.BinaryOperator: 205case BoundKind.NullCoalescingOperator: 209case BoundKind.IsOperator: 213case BoundKind.AsOperator: 217case BoundKind.DefaultExpression: 221case BoundKind.TypeOfOperator: 228case BoundKind.SizeOfOperator: 235case BoundKind.ModuleVersionId: 240case BoundKind.ModuleVersionIdString: 245case BoundKind.ThrowIfModuleCancellationRequested: 250case BoundKind.ModuleCancellationTokenExpression: 255case BoundKind.InstrumentationPayloadRoot: 260case BoundKind.MethodDefIndex: 265case BoundKind.MaximumMethodDefIndex: 270case BoundKind.SourceDocumentIndex: 275case BoundKind.LocalId: 280case BoundKind.ParameterId: 285case BoundKind.MethodInfo: 292case BoundKind.FieldInfo: 299case BoundKind.ConditionalOperator: 303case BoundKind.AddressOfOperator: 307case BoundKind.PointerIndirectionOperator: 311case BoundKind.ArgList: 315case BoundKind.ArgListOperator: 320case BoundKind.RefTypeOperator: 324case BoundKind.MakeRefOperator: 328case BoundKind.RefValueOperator: 332case BoundKind.LoweredConditionalAccess: 336case BoundKind.ConditionalReceiver: 340case BoundKind.ComplexConditionalReceiver: 344case BoundKind.PseudoVariable: 348case BoundKind.ThrowExpression: 352case BoundKind.FunctionPointerInvocation: 356case BoundKind.FunctionPointerLoad: 362Debug.Assert(expression.Kind != BoundKind.BadExpression); 444(receiver.Kind == BoundKind.Local && IsStackLocal(((BoundLocal)receiver).LocalSymbol)) || 859Debug.Assert(sequence.Value.Kind != BoundKind.TypeExpression || !used); 860if (sequence.Value.Kind != BoundKind.TypeExpression) 1002Debug.Assert(arguments[i].Kind == BoundKind.ArgListOperator); 1231else if (receiver.Kind == BoundKind.Conversion) 1242else if (receiver.Kind == BoundKind.FieldAccess) 1273if (receiver.Kind == BoundKind.Conversion && ((BoundConversion)receiver).ConversionKind == ConversionKind.Unboxing) 1286case BoundKind.Parameter: 1290case BoundKind.Local: 1294case BoundKind.Sequence: 1297case BoundKind.FieldAccess: 1516Debug.Assert(receiver.Kind != BoundKind.BaseReference, "base should always use call"); 1527case BoundKind.ArrayCreation: 1530case BoundKind.ObjectCreationExpression: 1535case BoundKind.Conversion: 1555case BoundKind.ThisReference: 1562case BoundKind.FieldAccess: 1566case BoundKind.Local: 1570case BoundKind.DelegateCreationExpression: 1573case BoundKind.Sequence: 1577case BoundKind.AssignmentOperator: 1581case BoundKind.TypeOfOperator: 1584case BoundKind.ConditionalReceiver: 1600case BoundKind.ThisReference: 1603case BoundKind.Sequence: 1646Debug.Assert(receiver.Kind == BoundKind.ThisReference); 2132case BoundKind.TypeExpression: 2133case BoundKind.Parameter: 2134case BoundKind.Local: 2135case BoundKind.ThisReference: 2137case BoundKind.FieldAccess: 2148case BoundKind.PassByCopy: 2151case BoundKind.BinaryOperator: 2164case BoundKind.Conversion: 2213case BoundKind.Local: 2216case BoundKind.Parameter: 2219case BoundKind.Call: 2222case BoundKind.FunctionPointerInvocation: 2225case BoundKind.Dup: 2228case BoundKind.Sequence: 2620if (objCreation.Arguments.Length > 0 && objCreation.Arguments[0].Kind == BoundKind.ConvertedStackAllocExpression) 2654if (left.Kind == BoundKind.ArrayAccess && left.Type.TypeKind == TypeKind.TypeParameter && !left.Type.IsValueType) 2659if (left.Kind == BoundKind.FieldAccess) 2756case BoundKind.Parameter: 2759case BoundKind.Local: 2775case BoundKind.RefValueOperator: 2779case BoundKind.FieldAccess: 2797case BoundKind.Parameter: 2809case BoundKind.Local: 2861case BoundKind.ArrayAccess: 2870case BoundKind.ThisReference: 2881case BoundKind.Dup: 2892case BoundKind.ConditionalOperator: 2904case BoundKind.PointerIndirectionOperator: 2914case BoundKind.Sequence: 2927case BoundKind.Call: 2938case BoundKind.FunctionPointerInvocation: 2949case BoundKind.PropertyAccess: 2950case BoundKind.IndexerAccess: 2952case BoundKind.PreviousSubmissionReference: 2956case BoundKind.PseudoVariable: 2961case BoundKind.ModuleVersionId: 2962case BoundKind.InstrumentationPayloadRoot: 2965case BoundKind.AssignmentOperator: 3004Debug.Assert(lhs.Kind != BoundKind.Parameter || exprTempsAfter <= exprTempsBefore); 3006if (lhs.Kind == BoundKind.Local && ((BoundLocal)lhs).LocalSymbol.SynthesizedKind.IsLongLived()) 3064case BoundKind.FieldAccess: 3068case BoundKind.Local: 3095case BoundKind.ArrayAccess: 3101case BoundKind.ThisReference: 3105case BoundKind.Parameter: 3109case BoundKind.Dup: 3114case BoundKind.ConditionalOperator: 3119case BoundKind.RefValueOperator: 3120case BoundKind.PointerIndirectionOperator: 3121case BoundKind.PseudoVariable: 3125case BoundKind.Sequence: 3132case BoundKind.Call: 3137case BoundKind.FunctionPointerInvocation: 3142case BoundKind.ModuleVersionId: 3146case BoundKind.InstrumentationPayloadRoot: 3150case BoundKind.AssignmentOperator: 3159case BoundKind.PreviousSubmissionReference: 3944case BoundKind.Conversion: 3958case BoundKind.AssignmentOperator: 3962case BoundKind.Sequence: 3966case BoundKind.Local: 3975case BoundKind.Dup:
CodeGen\EmitOperators.cs (3)
94if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 118if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 507if (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: 1135while (exceptionSource.Kind == BoundKind.Sequence) 1145case BoundKind.Local: 1155case BoundKind.FieldAccess: 1264if (expression.Kind == BoundKind.Sequence) 1272if (expression.Kind == BoundKind.SequencePointExpression) 1281case BoundKind.Local: 1290case BoundKind.Parameter:
CodeGen\Optimizer.cs (34)
451Debug.Assert(expr.Kind != BoundKind.Label); 762if (value != null && value.Kind == BoundKind.Local && ((BoundLocal)value).LocalSymbol == local) 770if (lastSideeffect.Kind == BoundKind.AssignmentOperator) 774assignment.Right.Kind == BoundKind.Sequence) 950bool mayPushReceiver = (right.Kind == BoundKind.ObjectCreationExpression && 996assignmentLocal.Type.IsPointerOrFunctionPointer() && right.Kind == BoundKind.Conversion && 1031(lhs.Kind is BoundKind.Local or BoundKind.Parameter or BoundKind.FieldAccess && lhs.GetRefKind() != RefKind.None), 1036case BoundKind.ThisReference: 1040case BoundKind.Parameter: 1048case BoundKind.Local: 1056case BoundKind.Call: 1060case BoundKind.FunctionPointerInvocation: 1064case BoundKind.ConditionalOperator: 1068case BoundKind.AssignmentOperator: 1072case BoundKind.Sequence: 1077case BoundKind.RefValueOperator: 1078case BoundKind.PointerIndirectionOperator: 1079case BoundKind.PseudoVariable: 1082case BoundKind.ModuleVersionId: 1083case BoundKind.InstrumentationPayloadRoot: 1085goto case BoundKind.FieldAccess; 1087case BoundKind.FieldAccess: 1088case BoundKind.ArrayAccess: 1100if (lhs.Kind == BoundKind.FieldAccess) 1425if (boundExpression.Kind == BoundKind.Local) 1477if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 1493if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 1697if (exceptionSourceOpt.Kind == BoundKind.Local) 1936top.Item1.Kind == BoundKind.Local && 2071if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2087if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2299if (exceptionSource.Kind == BoundKind.Local)
Compilation\CSharpSemanticModel.cs (58)
1932else if (highestBoundExpr.Kind == BoundKind.TypeOrValueExpression) 1938else if (highestBoundExpr.Kind == BoundKind.UnaryOperator) 2093var highestBoundExprKind = highestBoundExpr?.Kind ?? BoundKind.NoOpStatement; 2098if (highestBoundExprKind == BoundKind.Lambda) // the enclosing conversion is explicit 2114if (tupleLiteralConversion.Operand.Kind == BoundKind.ConvertedTupleLiteral) 2128else if (highestBoundExprKind == BoundKind.FixedLocalCollectionInitializer) 2199if (highestBoundExprKind != BoundKind.Conversion) 2203else if (((BoundConversion)highestBoundExpr).Operand.Kind != BoundKind.Conversion) 2221else if (boundNodeForSyntacticParent?.Kind == BoundKind.DelegateCreationExpression) 2228case BoundKind.MethodGroup: 2233case BoundKind.Lambda: 2239case BoundKind.UnboundLambda: 2308if (boundExpr != null && boundExpr.Kind != BoundKind.TypeExpression) 3365case BoundKind.MethodGroup: 3369case BoundKind.PropertyGroup: 3374case BoundKind.BadExpression: 3397case BoundKind.DelegateCreationExpression: 3400case BoundKind.TypeExpression: 3408boundNodeForSyntacticParent.Kind == BoundKind.BadExpression && 3430case BoundKind.TypeOrValueExpression: 3439case BoundKind.Call: 3464case BoundKind.FunctionPointerInvocation: 3472case BoundKind.UnconvertedAddressOfOperator: 3486case BoundKind.IndexerAccess: 3500case BoundKind.ImplicitIndexerAccess: 3504case BoundKind.EventAssignmentOperator: 3521case BoundKind.EventAccess when boundNodeForSyntacticParent is BoundEventAssignmentOperator { ResultKind: LookupResultKind.Viable } parentOperator && 3532case BoundKind.Conversion: 3555case BoundKind.BinaryOperator: 3559case BoundKind.UnaryOperator: 3563case BoundKind.UserDefinedConditionalLogicalOperator: 3569case BoundKind.CompoundAssignmentOperator: 3573case BoundKind.IncrementOperator: 3577case BoundKind.AwaitExpression: 3582case BoundKind.ConditionalOperator: 3588case BoundKind.Attribute: 3623case BoundKind.QueryClause: 3634case BoundKind.DynamicInvocation: 3642case BoundKind.DynamicCollectionElementInitializer: 3650case BoundKind.DynamicIndexerAccess: 3658case BoundKind.DynamicMemberAccess: 3663case BoundKind.DynamicObjectCreationExpression: 3670case BoundKind.ObjectCreationExpression: 3687case BoundKind.ThisReference: 3688case BoundKind.BaseReference: 3699case BoundKind.FromEndIndexExpression: 3709case BoundKind.RangeExpression: 3991case BoundKind.Attribute: 4005case BoundKind.BadExpression: 4270case BoundKind.Call: 4291case BoundKind.DelegateCreationExpression: 4301case BoundKind.Conversion: 4333case BoundKind.DynamicInvocation: 4339case BoundKind.BadExpression: 4350case BoundKind.NameOfOperator: 4419case BoundKind.IndexerAccess: 4440case BoundKind.BadExpression:
Compilation\MemberSemanticModel.cs (12)
1200Debug.Assert(highestBoundNode.Kind != BoundKind.UnboundLambda); 1744case BoundKind.UnboundLambda: 1746goto case BoundKind.Lambda; 1747case BoundKind.Lambda: 1751case BoundKind.QueryClause: 1773case BoundKind.QueryClause: 1777case BoundKind.Call: 1789while (receiver?.Kind == BoundKind.MethodGroup) 1806case BoundKind.Conversion: 1809case BoundKind.UnboundLambda: 1813case BoundKind.Lambda: 1856if (expr.Kind == BoundKind.QueryClause)
Compilation\MemberSemanticModel.NodeMapBuilder.cs (5)
93if (existing[i].Kind == BoundKind.TypeExpression && nodesToAdd[i].Kind == BoundKind.TypeOrValueExpression) 101else if (existing[i].Kind == BoundKind.TypeOrValueExpression && nodesToAdd[i].Kind == BoundKind.TypeExpression) 169if (node.Kind == BoundKind.UnboundLambda)
Compiler\MethodBodySynthesizer.Lowered.cs (1)
333if (body.Kind != BoundKind.Block) body = F.Block(body);
Compiler\MethodCompiler.cs (5)
610(init.Kind == BoundKind.FieldEqualsValue) && !((BoundFieldEqualsValue)init).Field.IsMetadataConstant)); 1320if (processedInitializers.LoweredInitializers.Kind == BoundKind.StatementList) 1950case BoundKind.ConstructorMethodBody: 1980case BoundKind.NonConstructorMethodBody: 1986case BoundKind.Block:
FlowAnalysis\AbstractFlowPass.cs (22)
556case BoundKind.Parameter: 560case BoundKind.Local: 564case BoundKind.ThisReference: 565case BoundKind.BaseReference: 568case BoundKind.PropertyAccess: 585case BoundKind.FieldAccess: 592case BoundKind.EventAccess: 599case BoundKind.TupleLiteral: 600case BoundKind.ConvertedTupleLiteral: 604case BoundKind.InlineArrayAccess: 849case BoundKind.LabeledStatement: 855case BoundKind.LabelStatement: 861case BoundKind.SwitchSection: 1871if (pend.Branch.Kind != BoundKind.YieldReturnStatement) 2131if (expr.Kind != BoundKind.PropertyAccess) 2164var refKind = node.Left.Kind == BoundKind.BadExpression 2245receiverOpt.Kind != BoundKind.TypeExpression && 2426var childKind = child.Kind; 2428if (childKind == BoundKind.BinaryOperator) 2441else if (childKind == BoundKind.UserDefinedConditionalLogicalOperator) 2466case BoundKind.BinaryOperator: 2471case 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 (86)
241if (node.Kind == BoundKind.Attribute) 450BoundKind kind = pendingBranch.Kind; 453case BoundKind.AwaitExpression: 455case BoundKind.UsingStatement: 458case BoundKind.ForEachStatement: 461case BoundKind.UsingLocalDeclarations: 800Debug.Assert(fieldOrEventAccess.Kind == BoundKind.FieldAccess || fieldOrEventAccess.Kind == BoundKind.EventAccess); 806case BoundKind.FieldAccess: 822case BoundKind.EventAccess: 839case BoundKind.ThisReference: 843case BoundKind.Local: 847case BoundKind.Parameter: 851case BoundKind.InlineArrayAccess: 936if (value is { ConstantValueOpt: not null, Kind: not BoundKind.InterpolatedString }) return false; 940case BoundKind.Conversion: 954case BoundKind.DefaultLiteral: 955case BoundKind.DefaultExpression: 957case BoundKind.ObjectCreationExpression: 960case BoundKind.TupleLiteral: 961case BoundKind.ConvertedTupleLiteral: 962case BoundKind.Utf8String: 978case BoundKind.FieldAccess: 993if (n.Kind == BoundKind.Local) 1005case BoundKind.EventAccess: 1026case BoundKind.ThisReference: 1030case BoundKind.Local: 1034case BoundKind.Parameter: 1038case BoundKind.RangeVariable: 1042case BoundKind.InlineArrayAccess: 1087case BoundKind.FieldAccess: 1103case BoundKind.EventAccess: 1115case BoundKind.PropertyAccess: 1139receiver.Kind != BoundKind.TypeExpression && 1156receiverOpt.Kind != BoundKind.TypeExpression && 1399case BoundKind.ThisReference: 1412case BoundKind.Local: 1418case BoundKind.FieldAccess: 1430case BoundKind.EventAccess: 1442case BoundKind.InlineArrayAccess: 1448case BoundKind.PropertyAccess: 1470case BoundKind.Parameter: 1477case BoundKind.RangeVariable: 1502case BoundKind.FieldAccess: 1511case BoundKind.Local: 1515case BoundKind.RangeVariable: 1517case BoundKind.Parameter: 1519case BoundKind.ThisReference: 1521case BoundKind.BaseReference: 1554case BoundKind.ListPattern: 1555case BoundKind.RecursivePattern: 1556case BoundKind.DeclarationPattern: 1572case BoundKind.LocalDeclaration: 1583case BoundKind.Local: 1601case BoundKind.InlineArrayAccess: 1631case BoundKind.Parameter: 1648case BoundKind.ObjectInitializerMember: 1660case BoundKind.ThisReference: 1661case BoundKind.FieldAccess: 1662case BoundKind.EventAccess: 1663case BoundKind.PropertyAccess: 1672case BoundKind.RangeVariable: 1676case BoundKind.BadExpression: 1687case BoundKind.TupleLiteral: 1688case BoundKind.ConvertedTupleLiteral: 2020case BoundKind.DeclarationPattern: 2027case BoundKind.DiscardPattern: 2028case BoundKind.TypePattern: 2030case BoundKind.SlicePattern: 2039case BoundKind.ConstantPattern: 2045case BoundKind.RecursivePattern: 2079case BoundKind.ITuplePattern: 2088case BoundKind.ListPattern: 2099case BoundKind.RelationalPattern: 2105case BoundKind.NegatedPattern: 2111case BoundKind.BinaryPattern: 2220if (stmt.Kind != BoundKind.LocalFunctionStatement) 2476if (pending.Branch.Kind == BoundKind.ReturnStatement) 2550if (initializer.Kind == BoundKind.AddressOfOperator) 2623case BoundKind.Local: 2626case BoundKind.Parameter: 2629case BoundKind.FieldAccess: 2637case BoundKind.EventAccess: 2645case BoundKind.ThisReference: 2646case BoundKind.BaseReference: 2650case BoundKind.InlineArrayAccess:
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)
215case BoundKind.ThisReference: 216case BoundKind.BaseReference: 218case BoundKind.Local: 220case BoundKind.Parameter: 222case BoundKind.RangeVariable: 224case BoundKind.FieldAccess: 225case BoundKind.EventAccess: 226case BoundKind.PropertyAccess: 233case BoundKind.AssignmentOperator:
FlowAnalysis\NullableWalker.cs (73)
275private static readonly ImmutableArray<BoundKind> s_skippedExpressions = ImmutableArray.Create(BoundKind.ArrayInitialization, 276BoundKind.ObjectInitializerExpression, 277BoundKind.CollectionInitializerExpression, 278BoundKind.DynamicCollectionElementInitializer); 437private bool IsAnalyzingAttribute => methodMainNode.Kind == BoundKind.Attribute; 548Debug.Assert(expression != null || placeholder.Kind == BoundKind.InterpolatedStringArgumentPlaceholder); 569case BoundKind.DeconstructValuePlaceholder: 570case BoundKind.InterpolatedStringHandlerPlaceholder: 571case BoundKind.InterpolatedStringArgumentPlaceholder: 572case BoundKind.ObjectOrCollectionValuePlaceholder: 573case BoundKind.AwaitableValuePlaceholder: 576case BoundKind.ImplicitIndexerValuePlaceholder: 2029case BoundKind.FieldAccess: 2045case BoundKind.EventAccess: 2058case BoundKind.PropertyAccess: 2076receiver.Kind != BoundKind.TypeExpression && 2104case BoundKind.ThisReference: 2105case BoundKind.BaseReference: 2111case BoundKind.Conversion: 2154case BoundKind.DefaultLiteral: 2155case BoundKind.DefaultExpression: 2156case BoundKind.ObjectCreationExpression: 2157case BoundKind.DynamicObjectCreationExpression: 2158case BoundKind.AnonymousObjectCreationExpression: 2159case BoundKind.NewT: 2160case BoundKind.TupleLiteral: 2161case BoundKind.ConvertedTupleLiteral: 2163case BoundKind.ConditionalAccess: 2165case BoundKind.ConditionalReceiver: 2573case BoundKind.Conversion: 2580case BoundKind.DefaultLiteral: 2581case BoundKind.DefaultExpression: 3097if (!expr.IsSuppressed && RemoveConversion(expr, includeExplicitConversions: false).expression.Kind != BoundKind.ThrowExpression) 4105Debug.Assert(node.Kind is BoundKind.ObjectCreationExpression or BoundKind.DynamicObjectCreationExpression or BoundKind.NewT or BoundKind.NoPiaObjectCreationExpression); 4198case BoundKind.AssignmentOperator: 4213case BoundKind.CollectionElementInitializer: 4243case BoundKind.ObjectInitializerMember: 4914if (child.Kind == BoundKind.ArrayInitialization) 5480case BoundKind.Conversion: 5484case BoundKind.AsOperator: 5487case BoundKind.ConditionalAccess: 5674while (possiblyConversion.Kind == BoundKind.Conversion) 7449return (argument.Kind == BoundKind.Lambda); 8049/// other than <see cref="BoundKind.ExpressionWithNullability"/> which is an expression 8056case BoundKind.DefaultLiteral: 8057case BoundKind.DefaultExpression: 8058case BoundKind.Literal: 8060case BoundKind.ExpressionWithNullability: 8062case BoundKind.MethodGroup: 8063case BoundKind.UnboundLambda: 8064case BoundKind.UnconvertedObjectCreationExpression: 8065case BoundKind.ConvertedTupleLiteral: 8066case BoundKind.UnconvertedCollectionExpression: 8106if (argument.Kind == BoundKind.Lambda) 8115if (argument.Kind == BoundKind.CollectionExpression) 8207if (expr.Kind != BoundKind.Conversion) 8292case BoundKind.InterpolatedString: 9133if (operandType.Type?.IsTupleType == true || conversionOperand.Kind == BoundKind.TupleLiteral) 10125if (left.Kind == BoundKind.EventAccess && ((BoundEventAccess)left).EventSymbol.IsWindowsRuntimeEvent) 10543case BoundKind.TupleLiteral: 10544case BoundKind.ConvertedTupleLiteral: 10561case BoundKind.TupleLiteral: 10562case BoundKind.ConvertedTupleLiteral: 10564case BoundKind.Conversion: 10758if (initializer.Kind == BoundKind.AddressOfOperator) 10764if (node.Expression.Kind == BoundKind.AddressOfOperator) 11016if (node.Expression.Kind != BoundKind.Conversion) 11544case BoundKind.BinaryOperator: 11547case BoundKind.UserDefinedConditionalLogicalOperator:
FlowAnalysis\NullableWalker.SnapshotManager.cs (1)
106if (node.Kind == BoundKind.TypeExpression || node.WasCompilerGenerated)
FlowAnalysis\ReadWriteWalker.cs (14)
147if (!IsInside && node.Span.Contains(RegionSpan) && (expr.Kind == BoundKind.FieldAccess)) 190case BoundKind.Local: 196case BoundKind.ThisReference: 202case BoundKind.BaseReference: 208case BoundKind.Parameter: 214case BoundKind.RangeVariable: 220case BoundKind.FieldAccess: 226case BoundKind.InlineArrayAccess: 240case BoundKind.RangeVariable: 244case BoundKind.QueryClause: 255case BoundKind.FieldAccess: 265case BoundKind.InlineArrayAccess: 306case BoundKind.Parameter: 308case BoundKind.PropertyAccess:
FlowAnalysis\RegionAnalysisContext.cs (2)
51case BoundKind.NamespaceExpression: 52case BoundKind.TypeExpression:
Generated\BoundNodes.xml.Generated.cs (565)
278protected BoundInitializer(BoundKind kind, SyntaxNode syntax, bool hasErrors) 283protected BoundInitializer(BoundKind kind, SyntaxNode syntax) 292protected BoundEqualsValue(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 310: base(BoundKind.FieldEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 340: base(BoundKind.PropertyEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 370: base(BoundKind.ParameterEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 400: base(BoundKind.GlobalStatementInitializer, syntax, hasErrors || statement.HasErrors()) 427protected BoundExpression(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 433protected BoundExpression(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 444protected BoundValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 449protected BoundValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 458protected BoundEarlyValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 463protected BoundEarlyValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 473: base(BoundKind.ValuePlaceholder, syntax, type, hasErrors) 478: base(BoundKind.ValuePlaceholder, syntax, type) 501: base(BoundKind.CapturedReceiverPlaceholder, syntax, type, hasErrors || receiver.HasErrors()) 531: base(BoundKind.DeconstructValuePlaceholder, syntax, type, hasErrors) 541: base(BoundKind.DeconstructValuePlaceholder, syntax, type) 572: base(BoundKind.TupleOperandPlaceholder, syntax, type, hasErrors) 580: base(BoundKind.TupleOperandPlaceholder, syntax, type) 607: base(BoundKind.AwaitableValuePlaceholder, syntax, type, hasErrors) 612: base(BoundKind.AwaitableValuePlaceholder, syntax, type) 636: base(BoundKind.DisposableValuePlaceholder, syntax, type, hasErrors) 644: base(BoundKind.DisposableValuePlaceholder, syntax, type) 671: base(BoundKind.ObjectOrCollectionValuePlaceholder, syntax, type, hasErrors) 680: base(BoundKind.ObjectOrCollectionValuePlaceholder, syntax, type) 709: base(BoundKind.ImplicitIndexerValuePlaceholder, syntax, type, hasErrors) 717: base(BoundKind.ImplicitIndexerValuePlaceholder, syntax, type) 744: base(BoundKind.ImplicitIndexerReceiverPlaceholder, syntax, type, hasErrors) 753: base(BoundKind.ImplicitIndexerReceiverPlaceholder, syntax, type) 782: base(BoundKind.ListPatternReceiverPlaceholder, syntax, type, hasErrors) 790: base(BoundKind.ListPatternReceiverPlaceholder, syntax, type) 817: base(BoundKind.ListPatternIndexPlaceholder, syntax, type, hasErrors) 825: base(BoundKind.ListPatternIndexPlaceholder, syntax, type) 852: base(BoundKind.SlicePatternReceiverPlaceholder, syntax, type, hasErrors) 860: base(BoundKind.SlicePatternReceiverPlaceholder, syntax, type) 887: base(BoundKind.SlicePatternRangePlaceholder, syntax, type, hasErrors) 895: base(BoundKind.SlicePatternRangePlaceholder, syntax, type) 922: base(BoundKind.Dup, syntax, type, hasErrors) 928: base(BoundKind.Dup, syntax, type) 953: base(BoundKind.PassByCopy, syntax, type, hasErrors || expression.HasErrors()) 981: base(BoundKind.BadExpression, syntax, type, hasErrors || childBoundNodes.HasErrors()) 1014: base(BoundKind.BadStatement, syntax, hasErrors || childBoundNodes.HasErrors()) 1042: base(BoundKind.ExtractedFinallyBlock, syntax, hasErrors || finallyBlock.HasErrors()) 1070: base(BoundKind.TypeExpression, syntax, type, hasErrors || boundContainingTypeOpt.HasErrors() || boundDimensionsOpt.HasErrors()) 1105: base(BoundKind.TypeOrValueExpression, syntax, type, hasErrors) 1114: base(BoundKind.TypeOrValueExpression, syntax, type) 1143: base(BoundKind.NamespaceExpression, syntax, null, hasErrors) 1153: base(BoundKind.NamespaceExpression, syntax, null) 1184: base(BoundKind.UnaryOperator, syntax, type, hasErrors || operand.HasErrors()) 1226: base(BoundKind.IncrementOperator, syntax, type, hasErrors || operand.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors() || resultPlaceholder.HasErrors() || resultConversion.HasErrors()) 1274: base(BoundKind.AddressOfOperator, syntax, type, hasErrors || operand.HasErrors()) 1306: base(BoundKind.UnconvertedAddressOfOperator, syntax, null, hasErrors || operand.HasErrors()) 1335: base(BoundKind.FunctionPointerLoad, syntax, type, hasErrors) 1346: base(BoundKind.FunctionPointerLoad, syntax, type) 1378: base(BoundKind.PointerIndirectionOperator, syntax, type, hasErrors || operand.HasErrors()) 1410: base(BoundKind.PointerElementAccess, syntax, type, hasErrors || expression.HasErrors() || index.HasErrors()) 1447: base(BoundKind.FunctionPointerInvocation, syntax, type, hasErrors || invokedExpression.HasErrors() || arguments.HasErrors()) 1484: base(BoundKind.RefTypeOperator, syntax, type, hasErrors || operand.HasErrors()) 1516: base(BoundKind.MakeRefOperator, syntax, type, hasErrors || operand.HasErrors()) 1546: base(BoundKind.RefValueOperator, syntax, type, hasErrors || operand.HasErrors()) 1578: base(BoundKind.FromEndIndexExpression, syntax, type, hasErrors || operand.HasErrors()) 1610: base(BoundKind.RangeExpression, syntax, type, hasErrors || leftOperandOpt.HasErrors() || rightOperandOpt.HasErrors()) 1642protected BoundBinaryOperatorBase(BoundKind kind, SyntaxNode syntax, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false) 1662: base(BoundKind.BinaryOperator, syntax, left, right, type, hasErrors || left.HasErrors() || right.HasErrors()) 1696: base(BoundKind.TupleBinaryOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1734: base(BoundKind.UserDefinedConditionalLogicalOperator, syntax, left, right, type, hasErrors || left.HasErrors() || right.HasErrors()) 1779: base(BoundKind.CompoundAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors() || finalPlaceholder.HasErrors() || finalConversion.HasErrors()) 1826: base(BoundKind.AssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1860: base(BoundKind.DeconstructionAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1895: base(BoundKind.NullCoalescingOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors()) 1936: base(BoundKind.NullCoalescingAssignmentOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors()) 1967: base(BoundKind.UnconvertedConditionalOperator, syntax, null, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 2006: base(BoundKind.ConditionalOperator, syntax, type, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 2050: base(BoundKind.ArrayAccess, syntax, type, hasErrors || expression.HasErrors() || indices.HasErrors()) 2083: base(BoundKind.RefArrayAccess, syntax, null, hasErrors || arrayAccess.HasErrors()) 2112: base(BoundKind.ArrayLength, syntax, type, hasErrors || expression.HasErrors()) 2142: base(BoundKind.AwaitableInfo, syntax, hasErrors || awaitableInstancePlaceholder.HasErrors() || getAwaiter.HasErrors()) 2175: base(BoundKind.AwaitExpression, syntax, type, hasErrors || expression.HasErrors() || awaitableInfo.HasErrors()) 2209protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors) 2218protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type) 2234: base(BoundKind.TypeOfOperator, syntax, getTypeFromHandle, type, hasErrors || sourceType.HasErrors()) 2263: base(BoundKind.BlockInstrumentation, syntax, hasErrors || prologue.HasErrors() || epilogue.HasErrors()) 2295: base(BoundKind.MethodDefIndex, syntax, type, hasErrors) 2305: base(BoundKind.MethodDefIndex, syntax, type) 2335: base(BoundKind.LocalId, syntax, type, hasErrors) 2346: base(BoundKind.LocalId, syntax, type) 2378: base(BoundKind.ParameterId, syntax, type, hasErrors) 2389: base(BoundKind.ParameterId, syntax, type) 2421: base(BoundKind.StateMachineInstanceId, syntax, type, hasErrors) 2429: base(BoundKind.StateMachineInstanceId, syntax, type) 2456: base(BoundKind.MaximumMethodDefIndex, syntax, type, hasErrors) 2464: base(BoundKind.MaximumMethodDefIndex, syntax, type) 2491: base(BoundKind.InstrumentationPayloadRoot, syntax, type, hasErrors) 2500: base(BoundKind.InstrumentationPayloadRoot, syntax, type) 2529: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type, hasErrors) 2537: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type) 2564: base(BoundKind.ModuleCancellationTokenExpression, syntax, type, hasErrors) 2572: base(BoundKind.ModuleCancellationTokenExpression, syntax, type) 2599: base(BoundKind.ModuleVersionId, syntax, type, hasErrors) 2607: base(BoundKind.ModuleVersionId, syntax, type) 2634: base(BoundKind.ModuleVersionIdString, syntax, type, hasErrors) 2642: base(BoundKind.ModuleVersionIdString, syntax, type) 2669: base(BoundKind.SourceDocumentIndex, syntax, type, hasErrors) 2679: base(BoundKind.SourceDocumentIndex, syntax, type) 2709: base(BoundKind.MethodInfo, syntax, type, hasErrors) 2720: base(BoundKind.MethodInfo, syntax, type) 2752: base(BoundKind.FieldInfo, syntax, type, hasErrors) 2763: base(BoundKind.FieldInfo, syntax, type) 2795: base(BoundKind.DefaultLiteral, syntax, null, hasErrors) 2800: base(BoundKind.DefaultLiteral, syntax, null) 2818: base(BoundKind.DefaultExpression, syntax, type, hasErrors || targetType.HasErrors()) 2849: base(BoundKind.IsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors()) 2884: base(BoundKind.AsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors()) 2921: base(BoundKind.SizeOfOperator, syntax, type, hasErrors || sourceType.HasErrors()) 2953: base(BoundKind.Conversion, syntax, type, hasErrors || operand.HasErrors()) 2995: base(BoundKind.ReadOnlySpanFromArray, syntax, type, hasErrors || operand.HasErrors()) 3028: base(BoundKind.ArgList, syntax, type, hasErrors) 3036: base(BoundKind.ArgList, syntax, type) 3063: base(BoundKind.ArgListOperator, syntax, type, hasErrors || arguments.HasErrors()) 3094: base(BoundKind.FixedLocalCollectionInitializer, syntax, type, hasErrors || elementPointerPlaceholder.HasErrors() || elementPointerConversion.HasErrors() || expression.HasErrors()) 3132protected BoundStatement(BoundKind kind, SyntaxNode syntax, bool hasErrors) 3137protected BoundStatement(BoundKind kind, SyntaxNode syntax) 3147: base(BoundKind.SequencePoint, syntax, hasErrors || statementOpt.HasErrors()) 3172: base(BoundKind.SequencePointWithSpan, syntax, hasErrors || statementOpt.HasErrors()) 3199: base(BoundKind.SavePreviousSequencePoint, syntax, hasErrors) 3208: base(BoundKind.SavePreviousSequencePoint, syntax) 3236: base(BoundKind.RestorePreviousSequencePoint, syntax, hasErrors) 3245: base(BoundKind.RestorePreviousSequencePoint, syntax) 3273: base(BoundKind.StepThroughSequencePoint, syntax, hasErrors) 3279: base(BoundKind.StepThroughSequencePoint, syntax) 3304: base(BoundKind.Block, syntax, statements, hasErrors || instrumentation.HasErrors() || statements.HasErrors()) 3340: base(BoundKind.Scope, syntax, statements, hasErrors || statements.HasErrors()) 3369: base(BoundKind.StateMachineScope, syntax, hasErrors || statement.HasErrors()) 3400: base(BoundKind.LocalDeclaration, syntax, hasErrors || declaredTypeOpt.HasErrors() || initializerOpt.HasErrors() || argumentsOpt.HasErrors()) 3435protected BoundMultipleLocalDeclarationsBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false) 3450: base(BoundKind.MultipleLocalDeclarations, syntax, localDeclarations, hasErrors || localDeclarations.HasErrors()) 3476: base(BoundKind.UsingLocalDeclarations, syntax, localDeclarations, hasErrors || awaitOpt.HasErrors() || localDeclarations.HasErrors()) 3506: base(BoundKind.LocalFunctionStatement, syntax, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 3538: base(BoundKind.NoOpStatement, syntax, hasErrors) 3544: base(BoundKind.NoOpStatement, syntax) 3569: base(BoundKind.ReturnStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3598: base(BoundKind.YieldReturnStatement, syntax, hasErrors || expression.HasErrors()) 3626: base(BoundKind.YieldBreakStatement, syntax, hasErrors) 3631: base(BoundKind.YieldBreakStatement, syntax) 3643: base(BoundKind.ThrowStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3668: base(BoundKind.ExpressionStatement, syntax, hasErrors || expression.HasErrors()) 3696: base(BoundKind.BreakStatement, syntax, hasErrors) 3705: base(BoundKind.BreakStatement, syntax) 3733: base(BoundKind.ContinueStatement, syntax, hasErrors) 3742: base(BoundKind.ContinueStatement, syntax) 3770: base(BoundKind.SwitchStatement, syntax, hasErrors || expression.HasErrors() || switchSections.HasErrors() || reachabilityDecisionDag.HasErrors() || defaultLabel.HasErrors()) 3815: base(BoundKind.SwitchDispatch, syntax, hasErrors || expression.HasErrors()) 3851: base(BoundKind.IfStatement, syntax, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternativeOpt.HasErrors()) 3883protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors) 3894protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel) 3911protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 3934: base(BoundKind.DoStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 3964: base(BoundKind.WhileStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 3994: base(BoundKind.ForStatement, syntax, breakLabel, continueLabel, hasErrors || initializer.HasErrors() || condition.HasErrors() || increment.HasErrors() || body.HasErrors()) 4036: base(BoundKind.ForEachStatement, syntax, breakLabel, continueLabel, hasErrors || elementPlaceholder.HasErrors() || elementConversion.HasErrors() || iterationVariableType.HasErrors() || iterationErrorExpressionOpt.HasErrors() || expression.HasErrors() || deconstructionOpt.HasErrors() || awaitOpt.HasErrors() || body.HasErrors()) 4087: base(BoundKind.ForEachDeconstructStep, syntax, hasErrors || deconstructionAssignment.HasErrors() || targetPlaceholder.HasErrors()) 4118: base(BoundKind.UsingStatement, syntax, hasErrors || declarationsOpt.HasErrors() || expressionOpt.HasErrors() || body.HasErrors() || awaitOpt.HasErrors()) 4157: base(BoundKind.FixedStatement, syntax, hasErrors || declarations.HasErrors() || body.HasErrors()) 4191: base(BoundKind.LockStatement, syntax, hasErrors || argument.HasErrors() || body.HasErrors()) 4222: base(BoundKind.TryStatement, syntax, hasErrors || tryBlock.HasErrors() || catchBlocks.HasErrors() || finallyBlockOpt.HasErrors()) 4259: base(BoundKind.CatchBlock, syntax, hasErrors || exceptionSourceOpt.HasErrors() || exceptionFilterPrologueOpt.HasErrors() || exceptionFilterOpt.HasErrors() || body.HasErrors()) 4300: base(BoundKind.Literal, syntax, type, hasErrors) 4306: base(BoundKind.Literal, syntax, type) 4331: base(BoundKind.Utf8String, syntax, type, hasErrors) 4341: base(BoundKind.Utf8String, syntax, type) 4371: base(BoundKind.ThisReference, syntax, type, hasErrors) 4379: base(BoundKind.ThisReference, syntax, type) 4406: base(BoundKind.PreviousSubmissionReference, syntax, type, hasErrors) 4414: base(BoundKind.PreviousSubmissionReference, syntax, type) 4441: base(BoundKind.HostObjectMemberReference, syntax, type, hasErrors) 4449: base(BoundKind.HostObjectMemberReference, syntax, type) 4476: base(BoundKind.BaseReference, syntax, type, hasErrors) 4481: base(BoundKind.BaseReference, syntax, type) 4505: base(BoundKind.Local, syntax, type, hasErrors) 4518: base(BoundKind.Local, syntax, type) 4554: base(BoundKind.PseudoVariable, syntax, type, hasErrors) 4566: base(BoundKind.PseudoVariable, syntax, type) 4599: base(BoundKind.RangeVariable, syntax, type, hasErrors || value.HasErrors()) 4632: base(BoundKind.Parameter, syntax, type, hasErrors) 4642: base(BoundKind.Parameter, syntax, type) 4672: base(BoundKind.LabelStatement, syntax, hasErrors) 4681: base(BoundKind.LabelStatement, syntax) 4709: base(BoundKind.GotoStatement, syntax, hasErrors || caseExpressionOpt.HasErrors() || labelExpressionOpt.HasErrors()) 4741: base(BoundKind.LabeledStatement, syntax, hasErrors || body.HasErrors()) 4772: base(BoundKind.Label, syntax, type, hasErrors) 4781: base(BoundKind.Label, syntax, type) 4808protected BoundStatementList(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 4818: base(BoundKind.StatementList, syntax, hasErrors || statements.HasErrors()) 4846: base(BoundKind.ConditionalGoto, syntax, hasErrors || condition.HasErrors()) 4878protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false) 4903: base(BoundKind.SwitchExpressionArm, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors() || value.HasErrors()) 4942: base(BoundKind.UnconvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 4970: base(BoundKind.ConvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 5004: base(BoundKind.DecisionDag, syntax, hasErrors || rootNode.HasErrors()) 5031protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax, bool hasErrors) 5036protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax) 5046: base(BoundKind.EvaluationDecisionDagNode, syntax, hasErrors || evaluation.HasErrors() || next.HasErrors()) 5077: base(BoundKind.TestDecisionDagNode, syntax, hasErrors || test.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5111: base(BoundKind.WhenDecisionDagNode, syntax, hasErrors || whenExpression.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5146: base(BoundKind.LeafDecisionDagNode, syntax, hasErrors) 5155: base(BoundKind.LeafDecisionDagNode, syntax) 5182protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5197: base(BoundKind.DagTemp, syntax, hasErrors || source.HasErrors()) 5229: base(BoundKind.DagTypeTest, syntax, input, hasErrors || input.HasErrors()) 5258: base(BoundKind.DagNonNullTest, syntax, input, hasErrors || input.HasErrors()) 5286: base(BoundKind.DagExplicitNullTest, syntax, input, hasErrors || input.HasErrors()) 5312: base(BoundKind.DagValueTest, syntax, input, hasErrors || input.HasErrors()) 5341: base(BoundKind.DagRelationalTest, syntax, input, hasErrors || input.HasErrors()) 5371protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5384: base(BoundKind.DagDeconstructEvaluation, syntax, input, hasErrors || input.HasErrors()) 5413: base(BoundKind.DagTypeEvaluation, syntax, input, hasErrors || input.HasErrors()) 5442: base(BoundKind.DagFieldEvaluation, syntax, input, hasErrors || input.HasErrors()) 5471: base(BoundKind.DagPropertyEvaluation, syntax, input, hasErrors || input.HasErrors()) 5502: base(BoundKind.DagIndexEvaluation, syntax, input, hasErrors || input.HasErrors()) 5533: base(BoundKind.DagIndexerEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5580: base(BoundKind.DagSliceEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5629: base(BoundKind.DagAssignmentEvaluation, syntax, input, hasErrors || target.HasErrors() || input.HasErrors()) 5658: base(BoundKind.SwitchSection, syntax, statements, hasErrors || switchLabels.HasErrors() || statements.HasErrors()) 5690: base(BoundKind.SwitchLabel, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors()) 5722protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false) 5737: base(BoundKind.SequencePointExpression, syntax, type, hasErrors || expression.HasErrors()) 5765: base(BoundKind.Sequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5801: base(BoundKind.SpillSequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5837: base(BoundKind.DynamicMemberAccess, syntax, type, hasErrors || receiver.HasErrors()) 5875protected BoundDynamicInvocableBase(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol? type, bool hasErrors = false) 5893: base(BoundKind.DynamicInvocation, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 5929: base(BoundKind.ConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || accessExpression.HasErrors()) 5962: base(BoundKind.LoweredConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || whenNotNull.HasErrors() || whenNullOpt.HasErrors()) 6003: base(BoundKind.ConditionalReceiver, syntax, type, hasErrors) 6012: base(BoundKind.ConditionalReceiver, syntax, type) 6041: base(BoundKind.ComplexConditionalReceiver, syntax, type, hasErrors || valueTypeReceiver.HasErrors() || referenceTypeReceiver.HasErrors()) 6074: base(BoundKind.MethodGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6115: base(BoundKind.PropertyGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6143: base(BoundKind.Call, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 6198: base(BoundKind.EventAssignmentOperator, syntax, type, hasErrors || receiverOpt.HasErrors() || argument.HasErrors()) 6237: base(BoundKind.Attribute, syntax, type, hasErrors || constructorArguments.HasErrors() || namedArguments.HasErrors()) 6282: base(BoundKind.UnconvertedObjectCreationExpression, syntax, null, hasErrors || arguments.HasErrors()) 6319protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type, bool hasErrors) 6327protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type) 6341: base(BoundKind.ObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6391protected BoundCollectionExpressionBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundNode> elements, TypeSymbol? type, bool hasErrors = false) 6406: base(BoundKind.UnconvertedCollectionExpression, syntax, elements, null, hasErrors || elements.HasErrors()) 6433: base(BoundKind.CollectionExpression, syntax, elements, type, hasErrors || placeholder.HasErrors() || collectionCreation.HasErrors() || collectionBuilderInvocationPlaceholder.HasErrors() || collectionBuilderInvocationConversion.HasErrors() || unconvertedCollectionExpression.HasErrors() || elements.HasErrors()) 6478: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type, hasErrors) 6483: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type) 6506: base(BoundKind.CollectionExpressionSpreadElement, syntax, hasErrors || expression.HasErrors() || expressionPlaceholder.HasErrors() || conversion.HasErrors() || lengthOrCount.HasErrors() || elementPlaceholder.HasErrors() || iteratorBody.HasErrors()) 6545protected BoundTupleExpression(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false) 6564: base(BoundKind.TupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || arguments.HasErrors()) 6591: base(BoundKind.ConvertedTupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || sourceTuple.HasErrors() || arguments.HasErrors()) 6621: base(BoundKind.DynamicObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6664: base(BoundKind.NoPiaObjectCreationExpression, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 6695protected BoundObjectInitializerExpressionBase(BoundKind kind, SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false) 6715: base(BoundKind.ObjectInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6743: base(BoundKind.ObjectInitializerMember, syntax, type, hasErrors || arguments.HasErrors()) 6792: base(BoundKind.DynamicObjectInitializerMember, syntax, type, hasErrors) 6804: base(BoundKind.DynamicObjectInitializerMember, syntax, type) 6837: base(BoundKind.CollectionInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6865: base(BoundKind.CollectionElementInitializer, syntax, type, hasErrors || arguments.HasErrors() || implicitReceiverOpt.HasErrors()) 6910: base(BoundKind.DynamicCollectionElementInitializer, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 6942: base(BoundKind.ImplicitReceiver, syntax, type, hasErrors) 6950: base(BoundKind.ImplicitReceiver, syntax, type) 6977: base(BoundKind.AnonymousObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || declarations.HasErrors()) 7013: base(BoundKind.AnonymousPropertyDeclaration, syntax, type, hasErrors) 7023: base(BoundKind.AnonymousPropertyDeclaration, syntax, type) 7053: base(BoundKind.NewT, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 7083: base(BoundKind.DelegateCreationExpression, syntax, type, hasErrors || argument.HasErrors()) 7119: base(BoundKind.ArrayCreation, syntax, type, hasErrors || bounds.HasErrors() || initializerOpt.HasErrors()) 7151: base(BoundKind.ArrayInitialization, syntax, null, hasErrors || initializers.HasErrors()) 7181protected BoundStackAllocArrayCreationBase(BoundKind kind, SyntaxNode syntax, TypeSymbol elementType, BoundExpression count, BoundArrayInitialization? initializerOpt, TypeSymbol? type, bool hasErrors = false) 7201: base(BoundKind.StackAllocArrayCreation, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7228: base(BoundKind.ConvertedStackAllocExpression, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7257: base(BoundKind.FieldAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7297: base(BoundKind.HoistedFieldAccess, syntax, type, hasErrors) 7307: base(BoundKind.HoistedFieldAccess, syntax, type) 7337: base(BoundKind.PropertyAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7375: base(BoundKind.EventAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7411: base(BoundKind.IndexerAccess, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 7462: base(BoundKind.ImplicitIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || argument.HasErrors() || lengthOrCountAccess.HasErrors() || receiverPlaceholder.HasErrors() || indexerOrSliceAccess.HasErrors() || argumentPlaceholders.HasErrors()) 7511: base(BoundKind.InlineArrayAccess, syntax, type, hasErrors || expression.HasErrors() || argument.HasErrors()) 7552: base(BoundKind.DynamicIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || arguments.HasErrors()) 7592: base(BoundKind.Lambda, syntax, type, hasErrors || unboundLambda.HasErrors() || body.HasErrors()) 7632: base(BoundKind.UnboundLambda, syntax, null, hasErrors) 7643: base(BoundKind.UnboundLambda, syntax, null) 7676: base(BoundKind.QueryClause, syntax, type, hasErrors || value.HasErrors() || operation.HasErrors() || cast.HasErrors() || unoptimizedForm.HasErrors()) 7717: base(BoundKind.TypeOrInstanceInitializers, syntax, statements, hasErrors || statements.HasErrors()) 7743: base(BoundKind.NameOfOperator, syntax, type, hasErrors || argument.HasErrors()) 7775protected BoundInterpolatedStringBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false) 7792: base(BoundKind.UnconvertedInterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7818: base(BoundKind.InterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7846: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type, hasErrors) 7851: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type) 7874: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type, hasErrors) 7883: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type) 7912: base(BoundKind.StringInsert, syntax, null, hasErrors || value.HasErrors() || alignment.HasErrors() || format.HasErrors()) 7947: base(BoundKind.IsPatternExpression, syntax, type, hasErrors || expression.HasErrors() || pattern.HasErrors() || reachabilityDecisionDag.HasErrors()) 7988protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors) 7999protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType) 8017: base(BoundKind.ConstantPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8054: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType, hasErrors) 8067: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType) 8093protected BoundObjectPattern(BoundKind kind, SyntaxNode syntax, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8111: base(BoundKind.DeclarationPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || variableAccess.HasErrors()) 8147: base(BoundKind.RecursivePattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || deconstruction.HasErrors() || properties.HasErrors() || variableAccess.HasErrors()) 8188: base(BoundKind.ListPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || subpatterns.HasErrors() || lengthAccess.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || variableAccess.HasErrors()) 8232: base(BoundKind.SlicePattern, syntax, inputType, narrowedType, hasErrors || pattern.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors()) 8271: base(BoundKind.ITuplePattern, syntax, inputType, narrowedType, hasErrors || subpatterns.HasErrors()) 8310protected BoundSubpattern(BoundKind kind, SyntaxNode syntax, BoundPattern pattern, bool hasErrors = false) 8325: base(BoundKind.PositionalSubpattern, syntax, pattern, hasErrors || pattern.HasErrors()) 8353: base(BoundKind.PropertySubpattern, syntax, pattern, hasErrors || member.HasErrors() || pattern.HasErrors()) 8383: base(BoundKind.PropertySubpatternMember, syntax, hasErrors || receiver.HasErrors()) 8415: base(BoundKind.TypePattern, syntax, inputType, narrowedType, hasErrors || declaredType.HasErrors()) 8451: base(BoundKind.BinaryPattern, syntax, inputType, narrowedType, hasErrors || left.HasErrors() || right.HasErrors()) 8490: base(BoundKind.NegatedPattern, syntax, inputType, narrowedType, hasErrors || negated.HasErrors()) 8524: base(BoundKind.RelationalPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8563: base(BoundKind.DiscardExpression, syntax, type, hasErrors) 8570: base(BoundKind.DiscardExpression, syntax, type) 8598: base(BoundKind.ThrowExpression, syntax, type, hasErrors || expression.HasErrors()) 8625protected VariablePendingInference(BoundKind kind, SyntaxNode syntax, Symbol variableSymbol, BoundExpression? receiverOpt, bool hasErrors = false) 8643: base(BoundKind.OutVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8669: base(BoundKind.DeconstructionVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8695: base(BoundKind.OutDeconstructVarPendingInference, syntax, null, hasErrors) 8702: base(BoundKind.OutDeconstructVarPendingInference, syntax, null) 8729protected BoundMethodBodyBase(BoundKind kind, SyntaxNode syntax, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8743: base(BoundKind.NonConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 8766: base(BoundKind.ConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || initializer.HasErrors() || blockBody.HasErrors() || expressionBody.HasErrors()) 8796: base(BoundKind.ExpressionWithNullability, syntax, type, hasErrors || expression.HasErrors()) 8827: base(BoundKind.WithExpression, syntax, type, hasErrors || receiver.HasErrors() || initializerExpression.HasErrors()) 8867case BoundKind.FieldEqualsValue: 8869case BoundKind.PropertyEqualsValue: 8871case BoundKind.ParameterEqualsValue: 8873case BoundKind.GlobalStatementInitializer: 8875case BoundKind.ValuePlaceholder: 8877case BoundKind.CapturedReceiverPlaceholder: 8879case BoundKind.DeconstructValuePlaceholder: 8881case BoundKind.TupleOperandPlaceholder: 8883case BoundKind.AwaitableValuePlaceholder: 8885case BoundKind.DisposableValuePlaceholder: 8887case BoundKind.ObjectOrCollectionValuePlaceholder: 8889case BoundKind.ImplicitIndexerValuePlaceholder: 8891case BoundKind.ImplicitIndexerReceiverPlaceholder: 8893case BoundKind.ListPatternReceiverPlaceholder: 8895case BoundKind.ListPatternIndexPlaceholder: 8897case BoundKind.SlicePatternReceiverPlaceholder: 8899case BoundKind.SlicePatternRangePlaceholder: 8901case BoundKind.Dup: 8903case BoundKind.PassByCopy: 8905case BoundKind.BadExpression: 8907case BoundKind.BadStatement: 8909case BoundKind.ExtractedFinallyBlock: 8911case BoundKind.TypeExpression: 8913case BoundKind.TypeOrValueExpression: 8915case BoundKind.NamespaceExpression: 8917case BoundKind.UnaryOperator: 8919case BoundKind.IncrementOperator: 8921case BoundKind.AddressOfOperator: 8923case BoundKind.UnconvertedAddressOfOperator: 8925case BoundKind.FunctionPointerLoad: 8927case BoundKind.PointerIndirectionOperator: 8929case BoundKind.PointerElementAccess: 8931case BoundKind.FunctionPointerInvocation: 8933case BoundKind.RefTypeOperator: 8935case BoundKind.MakeRefOperator: 8937case BoundKind.RefValueOperator: 8939case BoundKind.FromEndIndexExpression: 8941case BoundKind.RangeExpression: 8943case BoundKind.BinaryOperator: 8945case BoundKind.TupleBinaryOperator: 8947case BoundKind.UserDefinedConditionalLogicalOperator: 8949case BoundKind.CompoundAssignmentOperator: 8951case BoundKind.AssignmentOperator: 8953case BoundKind.DeconstructionAssignmentOperator: 8955case BoundKind.NullCoalescingOperator: 8957case BoundKind.NullCoalescingAssignmentOperator: 8959case BoundKind.UnconvertedConditionalOperator: 8961case BoundKind.ConditionalOperator: 8963case BoundKind.ArrayAccess: 8965case BoundKind.RefArrayAccess: 8967case BoundKind.ArrayLength: 8969case BoundKind.AwaitableInfo: 8971case BoundKind.AwaitExpression: 8973case BoundKind.TypeOfOperator: 8975case BoundKind.BlockInstrumentation: 8977case BoundKind.MethodDefIndex: 8979case BoundKind.LocalId: 8981case BoundKind.ParameterId: 8983case BoundKind.StateMachineInstanceId: 8985case BoundKind.MaximumMethodDefIndex: 8987case BoundKind.InstrumentationPayloadRoot: 8989case BoundKind.ThrowIfModuleCancellationRequested: 8991case BoundKind.ModuleCancellationTokenExpression: 8993case BoundKind.ModuleVersionId: 8995case BoundKind.ModuleVersionIdString: 8997case BoundKind.SourceDocumentIndex: 8999case BoundKind.MethodInfo: 9001case BoundKind.FieldInfo: 9003case BoundKind.DefaultLiteral: 9005case BoundKind.DefaultExpression: 9007case BoundKind.IsOperator: 9009case BoundKind.AsOperator: 9011case BoundKind.SizeOfOperator: 9013case BoundKind.Conversion: 9015case BoundKind.ReadOnlySpanFromArray: 9017case BoundKind.ArgList: 9019case BoundKind.ArgListOperator: 9021case BoundKind.FixedLocalCollectionInitializer: 9023case BoundKind.SequencePoint: 9025case BoundKind.SequencePointWithSpan: 9027case BoundKind.SavePreviousSequencePoint: 9029case BoundKind.RestorePreviousSequencePoint: 9031case BoundKind.StepThroughSequencePoint: 9033case BoundKind.Block: 9035case BoundKind.Scope: 9037case BoundKind.StateMachineScope: 9039case BoundKind.LocalDeclaration: 9041case BoundKind.MultipleLocalDeclarations: 9043case BoundKind.UsingLocalDeclarations: 9045case BoundKind.LocalFunctionStatement: 9047case BoundKind.NoOpStatement: 9049case BoundKind.ReturnStatement: 9051case BoundKind.YieldReturnStatement: 9053case BoundKind.YieldBreakStatement: 9055case BoundKind.ThrowStatement: 9057case BoundKind.ExpressionStatement: 9059case BoundKind.BreakStatement: 9061case BoundKind.ContinueStatement: 9063case BoundKind.SwitchStatement: 9065case BoundKind.SwitchDispatch: 9067case BoundKind.IfStatement: 9069case BoundKind.DoStatement: 9071case BoundKind.WhileStatement: 9073case BoundKind.ForStatement: 9075case BoundKind.ForEachStatement: 9077case BoundKind.ForEachDeconstructStep: 9079case BoundKind.UsingStatement: 9081case BoundKind.FixedStatement: 9083case BoundKind.LockStatement: 9085case BoundKind.TryStatement: 9087case BoundKind.CatchBlock: 9089case BoundKind.Literal: 9091case BoundKind.Utf8String: 9093case BoundKind.ThisReference: 9095case BoundKind.PreviousSubmissionReference: 9097case BoundKind.HostObjectMemberReference: 9099case BoundKind.BaseReference: 9101case BoundKind.Local: 9103case BoundKind.PseudoVariable: 9105case BoundKind.RangeVariable: 9107case BoundKind.Parameter: 9109case BoundKind.LabelStatement: 9111case BoundKind.GotoStatement: 9113case BoundKind.LabeledStatement: 9115case BoundKind.Label: 9117case BoundKind.StatementList: 9119case BoundKind.ConditionalGoto: 9121case BoundKind.SwitchExpressionArm: 9123case BoundKind.UnconvertedSwitchExpression: 9125case BoundKind.ConvertedSwitchExpression: 9127case BoundKind.DecisionDag: 9129case BoundKind.EvaluationDecisionDagNode: 9131case BoundKind.TestDecisionDagNode: 9133case BoundKind.WhenDecisionDagNode: 9135case BoundKind.LeafDecisionDagNode: 9137case BoundKind.DagTemp: 9139case BoundKind.DagTypeTest: 9141case BoundKind.DagNonNullTest: 9143case BoundKind.DagExplicitNullTest: 9145case BoundKind.DagValueTest: 9147case BoundKind.DagRelationalTest: 9149case BoundKind.DagDeconstructEvaluation: 9151case BoundKind.DagTypeEvaluation: 9153case BoundKind.DagFieldEvaluation: 9155case BoundKind.DagPropertyEvaluation: 9157case BoundKind.DagIndexEvaluation: 9159case BoundKind.DagIndexerEvaluation: 9161case BoundKind.DagSliceEvaluation: 9163case BoundKind.DagAssignmentEvaluation: 9165case BoundKind.SwitchSection: 9167case BoundKind.SwitchLabel: 9169case BoundKind.SequencePointExpression: 9171case BoundKind.Sequence: 9173case BoundKind.SpillSequence: 9175case BoundKind.DynamicMemberAccess: 9177case BoundKind.DynamicInvocation: 9179case BoundKind.ConditionalAccess: 9181case BoundKind.LoweredConditionalAccess: 9183case BoundKind.ConditionalReceiver: 9185case BoundKind.ComplexConditionalReceiver: 9187case BoundKind.MethodGroup: 9189case BoundKind.PropertyGroup: 9191case BoundKind.Call: 9193case BoundKind.EventAssignmentOperator: 9195case BoundKind.Attribute: 9197case BoundKind.UnconvertedObjectCreationExpression: 9199case BoundKind.ObjectCreationExpression: 9201case BoundKind.UnconvertedCollectionExpression: 9203case BoundKind.CollectionExpression: 9205case BoundKind.CollectionExpressionSpreadExpressionPlaceholder: 9207case BoundKind.CollectionExpressionSpreadElement: 9209case BoundKind.TupleLiteral: 9211case BoundKind.ConvertedTupleLiteral: 9213case BoundKind.DynamicObjectCreationExpression: 9215case BoundKind.NoPiaObjectCreationExpression: 9217case BoundKind.ObjectInitializerExpression: 9219case BoundKind.ObjectInitializerMember: 9221case BoundKind.DynamicObjectInitializerMember: 9223case BoundKind.CollectionInitializerExpression: 9225case BoundKind.CollectionElementInitializer: 9227case BoundKind.DynamicCollectionElementInitializer: 9229case BoundKind.ImplicitReceiver: 9231case BoundKind.AnonymousObjectCreationExpression: 9233case BoundKind.AnonymousPropertyDeclaration: 9235case BoundKind.NewT: 9237case BoundKind.DelegateCreationExpression: 9239case BoundKind.ArrayCreation: 9241case BoundKind.ArrayInitialization: 9243case BoundKind.StackAllocArrayCreation: 9245case BoundKind.ConvertedStackAllocExpression: 9247case BoundKind.FieldAccess: 9249case BoundKind.HoistedFieldAccess: 9251case BoundKind.PropertyAccess: 9253case BoundKind.EventAccess: 9255case BoundKind.IndexerAccess: 9257case BoundKind.ImplicitIndexerAccess: 9259case BoundKind.InlineArrayAccess: 9261case BoundKind.DynamicIndexerAccess: 9263case BoundKind.Lambda: 9265case BoundKind.UnboundLambda: 9267case BoundKind.QueryClause: 9269case BoundKind.TypeOrInstanceInitializers: 9271case BoundKind.NameOfOperator: 9273case BoundKind.UnconvertedInterpolatedString: 9275case BoundKind.InterpolatedString: 9277case BoundKind.InterpolatedStringHandlerPlaceholder: 9279case BoundKind.InterpolatedStringArgumentPlaceholder: 9281case BoundKind.StringInsert: 9283case BoundKind.IsPatternExpression: 9285case BoundKind.ConstantPattern: 9287case BoundKind.DiscardPattern: 9289case BoundKind.DeclarationPattern: 9291case BoundKind.RecursivePattern: 9293case BoundKind.ListPattern: 9295case BoundKind.SlicePattern: 9297case BoundKind.ITuplePattern: 9299case BoundKind.PositionalSubpattern: 9301case BoundKind.PropertySubpattern: 9303case BoundKind.PropertySubpatternMember: 9305case BoundKind.TypePattern: 9307case BoundKind.BinaryPattern: 9309case BoundKind.NegatedPattern: 9311case BoundKind.RelationalPattern: 9313case BoundKind.DiscardExpression: 9315case BoundKind.ThrowExpression: 9317case BoundKind.OutVariablePendingInference: 9319case BoundKind.DeconstructionVariablePendingInference: 9321case BoundKind.OutDeconstructVarPendingInference: 9323case BoundKind.NonConstructorMethodBody: 9325case BoundKind.ConstructorMethodBody: 9327case BoundKind.ExpressionWithNullability: 9329case BoundKind.WithExpression:
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (3)
310if (node.Expression.Kind == BoundKind.AwaitExpression) 314else if (node.Expression.Kind == BoundKind.AssignmentOperator) 317if (expression.Right.Kind == BoundKind.AwaitExpression)
Lowering\ClosureConversion\ClosureConversion.Analysis.cs (6)
110case BoundKind.SequencePoint: 114case BoundKind.SequencePointWithSpan: 118case BoundKind.Block: 119case BoundKind.StatementList: 120case BoundKind.FieldEqualsValue: 123case BoundKind.GlobalStatementInitializer:
Lowering\ClosureConversion\ClosureConversion.cs (3)
1104if (visited.Kind != BoundKind.Call) 1331if (node.Argument.Kind == BoundKind.Lambda) 1378receiver.Kind == BoundKind.TypeExpression &&
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (41)
140case BoundKind.ReturnStatement: 148case BoundKind.ExpressionStatement: 150case BoundKind.SequencePoint: 153case BoundKind.SequencePointWithSpan: 183case BoundKind.ArrayAccess: 185case BoundKind.ArrayCreation: 187case BoundKind.ArrayLength: 189case BoundKind.AsOperator: 191case BoundKind.BaseReference: 193case BoundKind.BinaryOperator: 196case BoundKind.UserDefinedConditionalLogicalOperator: 199case BoundKind.Call: 201case BoundKind.ConditionalOperator: 203case BoundKind.Conversion: 205case BoundKind.PassByCopy: 207case BoundKind.DelegateCreationExpression: 209case BoundKind.FieldAccess: 216case BoundKind.IsOperator: 218case BoundKind.Lambda: 220case BoundKind.NewT: 222case BoundKind.NullCoalescingOperator: 224case BoundKind.ObjectCreationExpression: 226case BoundKind.Parameter: 228case BoundKind.PointerIndirectionOperator: 230case BoundKind.PointerElementAccess: 232case BoundKind.PropertyAccess: 234case BoundKind.SizeOfOperator: 236case BoundKind.UnaryOperator: 239case BoundKind.DefaultExpression: 240case BoundKind.HostObjectMemberReference: 241case BoundKind.Literal: 242case BoundKind.Local: 243case BoundKind.MethodInfo: 244case BoundKind.PreviousSubmissionReference: 245case BoundKind.ThisReference: 246case BoundKind.TypeOfOperator: 533if (operand.Kind == BoundKind.Conversion) 787if (node.Argument.Kind == BoundKind.MethodGroup) 789throw ExceptionUtilities.UnexpectedValue(BoundKind.MethodGroup); 945case BoundKind.ObjectInitializerExpression: 996case BoundKind.CollectionInitializerExpression:
Lowering\DiagnosticsPass_ExpressionTrees.cs (8)
253if (_inExpressionLambda && node.Left.Kind != BoundKind.ObjectInitializerMember && node.Left.Kind != BoundKind.DynamicObjectInitializerMember) 277bool hasBaseReceiver = node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.BaseReference; 291bool hasBaseReceiver = node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.BaseReference; 709if (current.Left.Kind == BoundKind.BinaryOperator) 797if (operand.Kind == BoundKind.FieldAccess) 897if (node.Argument.Kind != BoundKind.MethodGroup) 981if (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)
123if (rewritten.Kind == BoundKind.Block)
Lowering\Instrumentation\Instrumenter.cs (1)
307Debug.Assert(original.Kind == BoundKind.SwitchStatement);
Lowering\LocalRewriter\LocalRewriter.cs (42)
286node.Kind is not (BoundKind.ImplicitReceiver or BoundKind.ObjectOrCollectionValuePlaceholder or BoundKind.ValuePlaceholder)) 309return node.Kind == BoundKind.DeconstructionAssignmentOperator && !((BoundDeconstructionAssignmentOperator)node).IsUsed; 709if (initializer.Kind == BoundKind.Block) 881case BoundKind.Block: 886if (initializer.Kind == BoundKind.ExpressionStatement) 888goto case BoundKind.ExpressionStatement; 893case BoundKind.ExpressionStatement: 894return ((BoundExpressionStatement)initializer).Expression.Kind == BoundKind.AssignmentOperator; 911if (statement.Kind != BoundKind.ExpressionStatement) 922Debug.Assert(assignment.Left.Kind == BoundKind.FieldAccess); 1020case BoundKind.Parameter: 1021case BoundKind.Local: 1022case BoundKind.ArrayAccess: 1023case BoundKind.ThisReference: 1024case BoundKind.PointerIndirectionOperator: 1025case BoundKind.PointerElementAccess: 1026case BoundKind.RefValueOperator: 1027case BoundKind.PseudoVariable: 1028case BoundKind.DiscardExpression: 1031case BoundKind.DeconstructValuePlaceholder: 1036case BoundKind.InterpolatedStringArgumentPlaceholder: 1043case BoundKind.InterpolatedStringHandlerPlaceholder: 1048case BoundKind.CollectionExpressionSpreadExpressionPlaceholder: 1052case BoundKind.EventAccess: 1066case BoundKind.FieldAccess: 1077case BoundKind.Sequence: 1080case BoundKind.AssignmentOperator: 1083case BoundKind.ConditionalOperator: 1086case BoundKind.Call: 1089case BoundKind.PropertyAccess: 1092case BoundKind.IndexerAccess: 1095case BoundKind.ImplicitIndexerAccess: 1098case BoundKind.ImplicitIndexerReceiverPlaceholder: 1102case BoundKind.InlineArrayAccess: 1105case BoundKind.ImplicitIndexerValuePlaceholder: 1110case BoundKind.ListPatternReceiverPlaceholder: 1111case BoundKind.SlicePatternReceiverPlaceholder: 1112case BoundKind.SlicePatternRangePlaceholder: 1113case BoundKind.ListPatternIndexPlaceholder: 1116case BoundKind.Conversion:
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
388ImmutableArray<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: 175case BoundKind.DynamicIndexerAccess: 176case BoundKind.DynamicMemberAccess: 179case BoundKind.PropertyAccess: 198case BoundKind.IndexerAccess: 218case BoundKind.Local: 219case BoundKind.Parameter: 220case BoundKind.FieldAccess: 230case BoundKind.DiscardExpression: 235case BoundKind.Sequence: 241if (sequence.Value.Kind == BoundKind.IndexerAccess)
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (13)
290if (loweredRight.Kind == BoundKind.Local || loweredRight.Kind == BoundKind.Parameter) 302if (loweredRight.Kind == BoundKind.Local || loweredRight.Kind == BoundKind.Parameter) 489if (loweredLeft.Kind == BoundKind.ArrayLength && loweredRight.IsDefaultValue()) 504if (loweredRight.Kind == BoundKind.ArrayLength && loweredLeft.IsDefaultValue()) 519if (loweredLeft.Kind == BoundKind.ArrayLength && loweredRight.IsDefaultValue()) 523else if (loweredRight.Kind == BoundKind.ArrayLength && loweredLeft.IsDefaultValue()) 658if (constantLeft == null && loweredLeft.Kind != BoundKind.Local && loweredLeft.Kind != BoundKind.Parameter) 719if (expression.Kind == BoundKind.Conversion) 1614if (nonNullRight != null && nonNullRight.ConstantValueOpt != null && left.Kind == BoundKind.Sequence) 1617if (seq.Value.Kind == BoundKind.ConditionalOperator)
Lowering\LocalRewriter\LocalRewriter_Block.cs (2)
111case BoundKind.LabeledStatement: 114case BoundKind.UsingLocalDeclarations:
Lowering\LocalRewriter\LocalRewriter_Call.cs (10)
35case BoundKind.MethodGroup: 43Debug.Assert(methodGroup.ReceiverOpt == null || methodGroup.ReceiverOpt.Kind != BoundKind.TypeOrValueExpression); 70case BoundKind.DynamicMemberAccess: 556case BoundKind.Parameter: 558goto case BoundKind.Local; 560case BoundKind.Local: 564case BoundKind.PassByCopy: 566case BoundKind.Conversion: 1553if (argument.Kind == BoundKind.Local) 1642if (argument.Kind == BoundKind.Local)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (40)
40if (node.Left.Kind == BoundKind.DynamicMemberAccess && 202Debug.Assert(receiverOpt.Kind != BoundKind.TypeExpression); 493Debug.Assert(receiver.Kind != BoundKind.TypeExpression); 605case BoundKind.PropertyAccess: 620case BoundKind.IndexerAccess: 632case BoundKind.ImplicitIndexerAccess: 645case BoundKind.FieldAccess: 662case BoundKind.ArrayAccess: 690case BoundKind.InlineArrayAccess: 694case BoundKind.DynamicMemberAccess: 697case BoundKind.DynamicIndexerAccess: 700case BoundKind.Local: 701case BoundKind.Parameter: 702case BoundKind.ThisReference: // a special kind of parameter 703case BoundKind.PseudoVariable: 711case BoundKind.Call: 715case BoundKind.FunctionPointerInvocation: 719case BoundKind.ConditionalOperator: 723case BoundKind.AssignmentOperator: 727case BoundKind.PointerElementAccess: 728case BoundKind.PointerIndirectionOperator: 729case BoundKind.RefValueOperator: 732case BoundKind.EventAccess: 855case BoundKind.ThisReference: 858case BoundKind.BaseReference: 861case BoundKind.Literal: 865case BoundKind.Parameter: 870case BoundKind.Local: 873case BoundKind.TypeExpression: 897case BoundKind.Parameter: 899goto case BoundKind.Local; 900case BoundKind.Local: 901case BoundKind.Lambda: 902case BoundKind.ThisReference: 903case BoundKind.BaseReference: 904case BoundKind.Literal: 907case BoundKind.Conversion: 912case BoundKind.PassByCopy: 915case BoundKind.ObjectCreationExpression: 927case BoundKind.Call:
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (4)
243case BoundKind.Sequence: 247case BoundKind.Conversion: 1303if (operand.Kind == BoundKind.Sequence) 1306if (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)
28if (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 (6)
51Debug.Assert(original.Kind is BoundKind.ForStatement or BoundKind.ForEachStatement or BoundKind.CollectionExpressionSpreadElement); 148case BoundKind.ForEachStatement: 151case BoundKind.ForStatement: 154case BoundKind.CollectionExpressionSpreadElement:
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (8)
497if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 539if (makeOffsetInput.ConstantValueOpt is null && lengthAccess.Kind is not BoundKind.ArrayLength) 799if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 950if ((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)
192if (expression.Kind != BoundKind.Call) 221while (expression.Kind == BoundKind.Conversion)
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (12)
72case BoundKind.ObjectInitializerExpression: 75case BoundKind.CollectionInitializerExpression: 91if (initializer.Kind != BoundKind.CollectionElementInitializer) 137if (initializer.Kind == BoundKind.CollectionElementInitializer) 144Debug.Assert(initializer.Kind == BoundKind.DynamicCollectionElementInitializer); 314bool isRhsNestedInitializer = right.Kind is BoundKind.ObjectInitializerExpression or BoundKind.CollectionInitializerExpression; 327case BoundKind.ObjectInitializerMember: 408case BoundKind.DynamicObjectInitializerMember: 434case BoundKind.ArrayAccess: 480case BoundKind.PointerElementAccess: 513case BoundKind.ImplicitIndexerAccess:
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (1)
580if (expr.Kind == BoundKind.Conversion)
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (1)
191if (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) 321if (loweredOperand.Kind == BoundKind.Sequence) 324if (seq.Value.Kind == BoundKind.ConditionalOperator) 488case BoundKind.Local: 491case BoundKind.Parameter: 495case BoundKind.FieldAccess: 864case BoundKind.PropertyAccess: 868case BoundKind.DynamicMemberAccess: 872case BoundKind.IndexerAccess: 876case BoundKind.DynamicIndexerAccess:
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (1)
40BoundBlock tryBlock = rewrittenBody.Kind == BoundKind.Block
Lowering\LocalRewriter\LocalRewriter_WhileStatement.cs (6)
49Debug.Assert(loop.Kind is BoundKind.WhileStatement or BoundKind.ForEachStatement or BoundKind.CollectionExpressionSpreadElement); 74case BoundKind.WhileStatement: 78case BoundKind.ForEachStatement: 82case BoundKind.CollectionExpressionSpreadElement:
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (2)
225if (loweredReceiver.Kind == BoundKind.TypeExpression) 672int discardCount = loweredArguments.Count(a => a.Kind == BoundKind.DiscardExpression);
Lowering\MethodToClassRewriter.cs (6)
286if (originalLeft.Kind != BoundKind.Local) 300Debug.Assert(originalRight.Kind != BoundKind.ConvertedStackAllocExpression); 322if (rewrittenLeft.Kind != BoundKind.Local && originalRight.Kind == BoundKind.ConvertedStackAllocExpression) 446return originalReceiver is { Kind: BoundKind.BaseReference } && 447rewrittenReceiver is { Kind: not BoundKind.BaseReference };
Lowering\SpillSequenceSpiller.cs (22)
19private const BoundKind SpillSequenceBuilderKind = (BoundKind)byte.MaxValue; 316case BoundKind.ArrayInitialization: 323case BoundKind.ArgListOperator: 336case BoundKind.Sequence: 349case BoundKind.AssignmentOperator: 352assignment is not { Left.Kind: BoundKind.Local, Right.Kind: BoundKind.ArrayAccess }) // Optimize for some known to be safe scenarios. 378case BoundKind.ThisReference: 379case BoundKind.BaseReference: 387case BoundKind.Parameter: 395case BoundKind.Local: 404case BoundKind.FieldAccess: 422case BoundKind.Literal: 423case BoundKind.TypeExpression: 426case BoundKind.ConditionalReceiver: 431case BoundKind.Call: 479case BoundKind.ObjectCreationExpression: 874case BoundKind.Local: 875case BoundKind.Parameter: 879case BoundKind.FieldAccess: 888case BoundKind.ArrayAccess:
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
297if (node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.ThisReference)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (11)
413if (statement.Kind == BoundKind.Block) 417if (rewrittenStatements.Length == 1 && rewrittenStatements[0].Kind == BoundKind.StateMachineScope) 585case BoundKind.ArrayAccess: 599case BoundKind.FieldAccess: 618if (receiver.Kind != BoundKind.ThisReference && !isFieldOfStruct) 626case BoundKind.ThisReference: 627case BoundKind.BaseReference: 628case BoundKind.DefaultExpression: 631case BoundKind.Call: 649case BoundKind.ConditionalOperator: 829if (node.Left.Kind != BoundKind.Local)
Lowering\SyntheticBoundNodeFactory.cs (3)
585if (body.Kind != BoundKind.Block) 1746var discardsPresent = arguments.Any(static a => a.Kind == BoundKind.DiscardExpression); 1751(arg, t) => arg.Kind == BoundKind.DiscardExpression ? t.factory.MakeTempForDiscard((BoundDiscardExpression)arg, t.builder) : arg,
Operations\CSharpOperationFactory.cs (172)
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.CollectionExpression: 105case BoundKind.DefaultLiteral: 107case BoundKind.DefaultExpression: 109case BoundKind.BaseReference: 111case BoundKind.ThisReference: 113case BoundKind.AssignmentOperator: 115case BoundKind.CompoundAssignmentOperator: 117case BoundKind.IncrementOperator: 119case BoundKind.BadExpression: 121case BoundKind.NewT: 123case BoundKind.NoPiaObjectCreationExpression: 125case BoundKind.UnaryOperator: 127case BoundKind.BinaryOperator: 128case BoundKind.UserDefinedConditionalLogicalOperator: 130case BoundKind.TupleBinaryOperator: 132case BoundKind.ConditionalOperator: 134case BoundKind.NullCoalescingOperator: 136case BoundKind.AwaitExpression: 138case BoundKind.ArrayAccess: 140case BoundKind.ImplicitIndexerAccess: 142case BoundKind.InlineArrayAccess: 144case BoundKind.NameOfOperator: 146case BoundKind.ThrowExpression: 148case BoundKind.AddressOfOperator: 150case BoundKind.ImplicitReceiver: 152case BoundKind.ConditionalAccess: 154case BoundKind.ConditionalReceiver: 156case BoundKind.FieldEqualsValue: 158case BoundKind.PropertyEqualsValue: 160case BoundKind.ParameterEqualsValue: 162case BoundKind.Block: 164case BoundKind.ContinueStatement: 166case BoundKind.BreakStatement: 168case BoundKind.YieldBreakStatement: 170case BoundKind.GotoStatement: 172case BoundKind.NoOpStatement: 174case BoundKind.IfStatement: 176case BoundKind.WhileStatement: 178case BoundKind.DoStatement: 180case BoundKind.ForStatement: 182case BoundKind.ForEachStatement: 184case BoundKind.TryStatement: 186case BoundKind.CatchBlock: 188case BoundKind.FixedStatement: 190case BoundKind.UsingStatement: 192case BoundKind.ThrowStatement: 194case BoundKind.ReturnStatement: 196case BoundKind.YieldReturnStatement: 198case BoundKind.LockStatement: 200case BoundKind.BadStatement: 202case BoundKind.LocalDeclaration: 204case BoundKind.MultipleLocalDeclarations: 205case BoundKind.UsingLocalDeclarations: 207case BoundKind.LabelStatement: 209case BoundKind.LabeledStatement: 211case BoundKind.ExpressionStatement: 213case BoundKind.TupleLiteral: 214case BoundKind.ConvertedTupleLiteral: 216case BoundKind.InterpolatedString: 218case BoundKind.StringInsert: 220case BoundKind.LocalFunctionStatement: 222case BoundKind.AnonymousObjectCreationExpression: 224case BoundKind.ConstantPattern: 226case BoundKind.DeclarationPattern: 228case BoundKind.RecursivePattern: 230case BoundKind.ITuplePattern: 232case BoundKind.DiscardPattern: 234case BoundKind.BinaryPattern: 236case BoundKind.NegatedPattern: 238case BoundKind.RelationalPattern: 240case BoundKind.TypePattern: 242case BoundKind.SlicePattern: 244case BoundKind.ListPattern: 246case BoundKind.SwitchStatement: 248case BoundKind.SwitchLabel: 250case BoundKind.IsPatternExpression: 252case BoundKind.QueryClause: 254case BoundKind.DelegateCreationExpression: 256case BoundKind.RangeVariable: 258case BoundKind.ConstructorMethodBody: 260case BoundKind.NonConstructorMethodBody: 262case BoundKind.DiscardExpression: 264case BoundKind.NullCoalescingAssignmentOperator: 266case BoundKind.FromEndIndexExpression: 268case BoundKind.RangeExpression: 270case BoundKind.SwitchSection: 272case BoundKind.ConvertedSwitchExpression: 274case BoundKind.SwitchExpressionArm: 276case BoundKind.ObjectOrCollectionValuePlaceholder: 278case BoundKind.FunctionPointerInvocation: 280case BoundKind.UnconvertedAddressOfOperator: 282case BoundKind.InterpolatedStringArgumentPlaceholder: 284case BoundKind.InterpolatedStringHandlerPlaceholder: 286case BoundKind.Attribute: 289case BoundKind.ArgList: 290case BoundKind.ArgListOperator: 291case BoundKind.ConvertedStackAllocExpression: 292case BoundKind.FixedLocalCollectionInitializer: 293case BoundKind.GlobalStatementInitializer: 294case BoundKind.HostObjectMemberReference: 295case BoundKind.MakeRefOperator: 296case BoundKind.MethodGroup: 297case BoundKind.NamespaceExpression: 298case BoundKind.PointerElementAccess: 299case BoundKind.PointerIndirectionOperator: 300case BoundKind.PreviousSubmissionReference: 301case BoundKind.RefTypeOperator: 302case BoundKind.RefValueOperator: 303case BoundKind.Sequence: 304case BoundKind.StackAllocArrayCreation: 305case BoundKind.TypeExpression: 306case BoundKind.TypeOrValueExpression: 314case BoundKind.FixedLocalCollectionInitializer: 326case BoundKind.UnconvertedInterpolatedString: 327case BoundKind.UnconvertedConditionalOperator: 328case BoundKind.UnconvertedSwitchExpression: 329case BoundKind.AnonymousPropertyDeclaration: 400case BoundKind.LocalDeclaration: 404case BoundKind.MultipleLocalDeclarations: 405case BoundKind.UsingLocalDeclarations: 524case BoundKind.LocalDeclaration: 530case BoundKind.MultipleLocalDeclarations: 531case BoundKind.UsingLocalDeclarations: 958if (receiver?.Kind == BoundKind.TypeExpression) 1070Debug.Assert(boundOperand.Kind == BoundKind.BadExpression || 1072ExpressionOpt?.Kind == BoundKind.BadExpression); 1082if (boundOperand.Kind == BoundKind.ConvertedTupleLiteral && TypeSymbol.Equals(boundOperand.Type, boundConversion.Type, TypeCompareKind.ConsiderEverything2)) 1096if (boundConversion.ExplicitCastInCode && conversion.IsIdentity && boundOperand.Kind == BoundKind.Conversion) 1102nestedOperand.Kind == BoundKind.ConvertedTupleLiteral && 1118if ((boundOperand.Kind == BoundKind.Lambda || 1119boundOperand.Kind == BoundKind.UnboundLambda || 1120boundOperand.Kind == BoundKind.MethodGroup) && 1327boundAssignmentOperator.Right?.Kind == BoundKind.ObjectInitializerExpression || 1328boundAssignmentOperator.Right?.Kind == BoundKind.CollectionInitializerExpression; 1643if (boundIndexerAccess.LengthOrCountAccess.Kind == BoundKind.ArrayLength) 2280if (part.Kind == BoundKind.StringInsert) 2539if (variable == null && boundDeclarationPattern.VariableAccess?.Kind == BoundKind.DiscardExpression) 2753Debug.Assert(boundSwitchLabel.Pattern.Kind == BoundKind.DiscardPattern); 2757boundSwitchLabel.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: 209case BoundKind.IndexerAccess: 217case BoundKind.ObjectCreationExpression: 225case BoundKind.Attribute: 232case BoundKind.Call: 241case BoundKind.CollectionElementInitializer: 250case BoundKind.FunctionPointerInvocation: 393|| (receiverOpt.Kind != BoundKind.ThisReference 394&& receiverOpt.Kind != BoundKind.BaseReference 395&& receiverOpt.Kind != BoundKind.ObjectOrCollectionValuePlaceholder)))
Symbols\ConstantValueUtils.cs (1)
97while (unconvertedBoundValue.Kind == BoundKind.Conversion)
Symbols\FunctionTypeSymbol.cs (2)
68Debug.Assert(expression.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda);
Symbols\Source\ParameterHelpers.cs (4)
1016case BoundKind.DefaultLiteral: 1017case BoundKind.DefaultExpression: 1019case BoundKind.ObjectCreationExpression: 1021case BoundKind.Conversion:
Symbols\Source\SourceComplexParameterSymbol.cs (1)
400if (convertedExpression.ConstantValueOpt == null && convertedExpression.Kind == BoundKind.Conversion &&