2398 references to BoundKind
Microsoft.CodeAnalysis.CSharp (2379)
Binder\Binder.cs (1)
886RoslynDebug.Assert(statement.Kind != BoundKind.StatementList);
Binder\Binder.ValueChecks.cs (228)
738case BoundKind.PropertyGroup: 748case BoundKind.Local: 752case BoundKind.OutVariablePendingInference: 753case BoundKind.OutDeconstructVarPendingInference: 757case BoundKind.DiscardExpression: 761case BoundKind.PropertyAccess: 783case BoundKind.IndexerAccess: 787case BoundKind.ImplicitIndexerAccess: 805case BoundKind.UnconvertedObjectCreationExpression: 806case BoundKind.UnconvertedCollectionExpression: 807case BoundKind.TupleLiteral: 814case BoundKind.PointerIndirectionOperator: 822case BoundKind.PointerElementAccess: 837if (expr.Kind == BoundKind.MethodGroup && valueKind != BindValueKind.RValueOrMethodGroup) 863if ((object)otherSymbol != null && receiver?.Kind == BoundKind.TypeOrValueExpression) 902case BoundKind.TypeOrValueExpression: 903case BoundKind.QueryClause when ((BoundQueryClause)expression).Value.Kind == BoundKind.TypeOrValueExpression: 935case BoundKind.PropertyAccess: 936case BoundKind.IndexerAccess: 937case BoundKind.ImplicitIndexerAccess when ((BoundImplicitIndexerAccess)expr).IndexerOrSliceAccess.Kind == BoundKind.IndexerAccess: 940case BoundKind.EventAccess: 960case BoundKind.NamespaceExpression: 965case BoundKind.TypeExpression: 970case BoundKind.Lambda: 971case BoundKind.UnboundLambda: 976case BoundKind.UnconvertedAddressOfOperator: 981case BoundKind.MethodGroup when valueKind == BindValueKind.AddressOf: 986case BoundKind.MethodGroup: 992case BoundKind.RangeVariable: 1008case BoundKind.Conversion: 1019case BoundKind.ArrayAccess: 1023case BoundKind.PointerIndirectionOperator: 1025case BoundKind.RefValueOperator: 1027case BoundKind.DynamicMemberAccess: 1028case BoundKind.DynamicIndexerAccess: 1029case BoundKind.DynamicObjectInitializerMember: 1041case BoundKind.PointerElementAccess: 1058case BoundKind.Parameter: 1062case BoundKind.Local: 1066case BoundKind.ThisReference: 1094case BoundKind.ImplicitReceiver: 1095case BoundKind.ObjectOrCollectionValuePlaceholder: 1099case BoundKind.Call: 1103case BoundKind.FunctionPointerInvocation: 1111case BoundKind.ImplicitIndexerAccess: 1125case BoundKind.InlineArrayAccess: 1147case BoundKind.ImplicitIndexerReceiverPlaceholder: 1150case BoundKind.DeconstructValuePlaceholder: 1153case BoundKind.ConditionalOperator: 1173case BoundKind.FieldAccess: 1179case BoundKind.AssignmentOperator: 1190case BoundKind.ValuePlaceholder: 1242case BoundKind.NamespaceExpression: 1245case BoundKind.TypeExpression: 1865return Flags.Includes(BinderFlags.ObjectInitializerMember) && receiver.Kind == BoundKind.ObjectOrCollectionValuePlaceholder || 2029ReportDiagnosticsIfObsolete(diagnostics, setMethod, node, receiver?.Kind == BoundKind.BaseReference); 2079ReportDiagnosticsIfObsolete(diagnostics, getMethod, node, receiver?.Kind == BoundKind.BaseReference); 2162if (receiverOpt?.Kind == BoundKind.BaseReference && member.IsAbstract) 2651if (argument.Kind == BoundKind.ArgListOperator) 3695case BoundKind.ArrayAccess: 3696case BoundKind.PointerIndirectionOperator: 3697case BoundKind.PointerElementAccess: 3701case BoundKind.RefValueOperator: 3707case BoundKind.DiscardExpression: 3711case BoundKind.DynamicMemberAccess: 3712case BoundKind.DynamicIndexerAccess: 3718case BoundKind.Parameter: 3721case BoundKind.Local: 3724case BoundKind.CapturedReceiverPlaceholder: 3728case BoundKind.ThisReference: 3733case BoundKind.ConditionalOperator: 3746case BoundKind.FieldAccess: 3749case BoundKind.EventAccess: 3768case BoundKind.Call: 3789case BoundKind.FunctionPointerInvocation: 3805case BoundKind.IndexerAccess: 3816case BoundKind.ImplicitIndexerAccess: 3857case BoundKind.InlineArrayAccess: 3879case BoundKind.PropertyAccess: 3888case BoundKind.AssignmentOperator: 3899case BoundKind.Conversion: 3906case BoundKind.UnaryOperator: 3913case BoundKind.BinaryOperator: 3920case BoundKind.UserDefinedConditionalLogicalOperator: 3926case BoundKind.CompoundAssignmentOperator: 3933case BoundKind.IncrementOperator: 3985case BoundKind.ArrayAccess: 3986case BoundKind.PointerIndirectionOperator: 3987case BoundKind.PointerElementAccess: 3991case BoundKind.RefValueOperator: 4002case BoundKind.DiscardExpression: 4006case BoundKind.DynamicMemberAccess: 4007case BoundKind.DynamicIndexerAccess: 4013case BoundKind.Parameter: 4017case BoundKind.Local: 4021case BoundKind.CapturedReceiverPlaceholder: 4029case BoundKind.ThisReference: 4034case BoundKind.ConditionalOperator: 4046case BoundKind.FieldAccess: 4050case BoundKind.EventAccess: 4060case BoundKind.Call: 4085case BoundKind.IndexerAccess: 4105case BoundKind.ImplicitIndexerAccess: 4159case BoundKind.InlineArrayAccess: 4185case BoundKind.FunctionPointerInvocation: 4203case BoundKind.PropertyAccess: 4222case BoundKind.AssignmentOperator: 4239case BoundKind.Conversion: 4251case BoundKind.UnaryOperator: 4258case BoundKind.BinaryOperator: 4265case BoundKind.UserDefinedConditionalLogicalOperator: 4271case BoundKind.CompoundAssignmentOperator: 4278case BoundKind.IncrementOperator: 4285case BoundKind.ThrowExpression: 4348case BoundKind.ThisReference: 4352case BoundKind.DefaultLiteral: 4353case BoundKind.DefaultExpression: 4354case BoundKind.Utf8String: 4358case BoundKind.Parameter: 4361case BoundKind.FromEndIndexExpression: 4366case BoundKind.TupleLiteral: 4367case BoundKind.ConvertedTupleLiteral: 4371case BoundKind.MakeRefOperator: 4372case BoundKind.RefValueOperator: 4378case BoundKind.DiscardExpression: 4381case BoundKind.DeconstructValuePlaceholder: 4382case BoundKind.InterpolatedStringArgumentPlaceholder: 4383case BoundKind.AwaitableValuePlaceholder: 4386case BoundKind.Local: 4389case BoundKind.CapturedReceiverPlaceholder: 4394case BoundKind.StackAllocArrayCreation: 4395case BoundKind.ConvertedStackAllocExpression: 4398case BoundKind.ConditionalOperator: 4413case BoundKind.NullCoalescingOperator: 4419case BoundKind.FieldAccess: 4432case BoundKind.Call: 4447case BoundKind.FunctionPointerInvocation: 4456case BoundKind.IndexerAccess: 4467case BoundKind.ImplicitIndexerAccess: 4501case BoundKind.InlineArrayAccess: 4515case BoundKind.PropertyAccess: 4524case BoundKind.ObjectCreationExpression: 4543case BoundKind.NewT: 4558case BoundKind.WithExpression: 4564case BoundKind.UnaryOperator: 4576case BoundKind.Conversion: 4617case BoundKind.AssignmentOperator: 4624case BoundKind.NullCoalescingAssignmentOperator: 4627case BoundKind.IncrementOperator: 4649case BoundKind.CompoundAssignmentOperator: 4672case BoundKind.BinaryOperator: 4686case BoundKind.RangeExpression: 4692case BoundKind.UserDefinedConditionalLogicalOperator: 4700case BoundKind.QueryClause: 4703case BoundKind.RangeVariable: 4706case BoundKind.ObjectInitializerExpression: 4710case BoundKind.CollectionInitializerExpression: 4714case BoundKind.ObjectInitializerMember: 4720case BoundKind.ImplicitReceiver: 4721case BoundKind.ObjectOrCollectionValuePlaceholder: 4726case BoundKind.InterpolatedStringHandlerPlaceholder: 4731case BoundKind.DisposableValuePlaceholder: 4736case BoundKind.PointerElementAccess: 4737case BoundKind.PointerIndirectionOperator: 4741case BoundKind.AsOperator: 4742case BoundKind.AwaitExpression: 4743case BoundKind.ConditionalAccess: 4744case BoundKind.ConditionalReceiver: 4745case BoundKind.ArrayAccess: 4749case BoundKind.ArgList: 4753case BoundKind.ConvertedSwitchExpression: 4754case BoundKind.UnconvertedSwitchExpression: 4863if (expr.Kind == BoundKind.AssignmentOperator) 5017case BoundKind.ThisReference: 5022case BoundKind.DefaultLiteral: 5023case BoundKind.DefaultExpression: 5024case BoundKind.Utf8String: 5028case BoundKind.Parameter: 5031case BoundKind.TupleLiteral: 5032case BoundKind.ConvertedTupleLiteral: 5036case BoundKind.MakeRefOperator: 5037case BoundKind.RefValueOperator: 5041case BoundKind.DiscardExpression: 5045case BoundKind.DeconstructValuePlaceholder: 5046case BoundKind.AwaitableValuePlaceholder: 5047case BoundKind.InterpolatedStringArgumentPlaceholder: 5055case BoundKind.Local: 5064case BoundKind.CapturedReceiverPlaceholder: 5069case BoundKind.StackAllocArrayCreation: 5070case BoundKind.ConvertedStackAllocExpression: 5078case BoundKind.UnconvertedConditionalOperator: 5086case BoundKind.ConditionalOperator: 5102case BoundKind.NullCoalescingOperator: 5107case BoundKind.FieldAccess: 5120case BoundKind.Call: 5140case BoundKind.FunctionPointerInvocation: 5153case BoundKind.IndexerAccess: 5168case BoundKind.ImplicitIndexerAccess: 5212case BoundKind.InlineArrayAccess: 5230case BoundKind.PropertyAccess: 5243case BoundKind.ObjectCreationExpression: 5273case BoundKind.NewT: 5294case BoundKind.WithExpression: 5305case BoundKind.UnaryOperator: 5321case BoundKind.FromEndIndexExpression: 5325case BoundKind.Conversion: 5377case BoundKind.AssignmentOperator: 5381case BoundKind.NullCoalescingAssignmentOperator: 5385case BoundKind.IncrementOperator: 5411case BoundKind.CompoundAssignmentOperator: 5436case BoundKind.BinaryOperator: 5459case BoundKind.RangeExpression: 5469case BoundKind.UserDefinedConditionalLogicalOperator: 5481case BoundKind.QueryClause: 5485case BoundKind.RangeVariable: 5489case BoundKind.ObjectInitializerExpression: 5493case BoundKind.CollectionInitializerExpression: 5497case BoundKind.PointerElementAccess: 5501case BoundKind.PointerIndirectionOperator: 5505case BoundKind.AsOperator: 5506case BoundKind.AwaitExpression: 5507case BoundKind.ConditionalAccess: 5508case BoundKind.ConditionalReceiver: 5509case BoundKind.ArrayAccess: 5513case BoundKind.UnconvertedSwitchExpression: 5514case BoundKind.ConvertedSwitchExpression:
Binder\Binder_Attributes.cs (5)
816case BoundKind.FieldAccess: 821case BoundKind.PropertyAccess: 866case BoundKind.Conversion: 868case BoundKind.TypeOfOperator: 870case BoundKind.ArrayCreation:
Binder\Binder_Await.cs (3)
81if (expression.Kind != BoundKind.Call || 587if (getAwaiterCall.Kind != BoundKind.Call) 696if (getAwaiterGetResultCall.Kind != BoundKind.Call)
Binder\Binder_Conversions.cs (18)
138if (conversion.IsAnonymousFunction && source.Kind == BoundKind.UnboundLambda) 209if (source.Kind == BoundKind.UnconvertedSwitchExpression) 231if (source.Kind == BoundKind.UnconvertedCollectionExpression) 253if (source.Kind == BoundKind.UnconvertedConditionalOperator) 1308if (boundExpression.Kind == BoundKind.FieldAccess || boundExpression.Kind == BoundKind.PropertyAccess) 1315if (boundExpression.Kind != BoundKind.MethodGroup) 2166Debug.Assert(source.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda); 2173if (source.Kind == BoundKind.UnboundLambda && 2182source.Kind == BoundKind.MethodGroup && 2534if (node.Kind != BoundKind.MethodGroup) 2677if (receiverOpt.Kind == BoundKind.QueryClause) 2779while (receiverOpt.Kind == BoundKind.QueryClause) 2784return receiverOpt.Kind == BoundKind.TypeExpression; 2796case BoundKind.ThisReference: 2797case BoundKind.HostObjectMemberReference: 2798case BoundKind.PreviousSubmissionReference:
Binder\Binder_Deconstruct.cs (9)
212if (boundRHS.Kind == BoundKind.TupleLiteral) 371case BoundKind.DeconstructionVariablePendingInference: 376case BoundKind.DiscardExpression: 406case BoundKind.DeconstructionVariablePendingInference: 410case BoundKind.DiscardExpression: 488if (element.Kind == BoundKind.TupleLiteral) 597if (expression.Kind == BoundKind.DiscardExpression) 661if (memberAccess.Kind != BoundKind.MethodGroup) 793if (expression == null && checkedVariable.Kind != BoundKind.DiscardExpression)
Binder\Binder_Expressions.cs (71)
206BoundKind exprKind = expr.Kind; 208if (expr.HasAnyErrors && ((object)resultType != null || exprKind == BoundKind.UnboundLambda || exprKind == BoundKind.DefaultLiteral)) 213if (exprKind == BoundKind.BadExpression) 260if (valueOrType.Kind == BoundKind.TypeExpression) 417Debug.Assert(expr.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup); 547if (expr.Kind == BoundKind.ArgListOperator) 589if (IsEarlyAttributeBinder && result.Kind == BoundKind.MethodGroup && (!IsInsideNameof || EnclosingNameofArgument != node)) 2797if (operand.Kind == BoundKind.UnboundLambda) 2846case BoundKind.MethodGroup: 2856case BoundKind.TupleLiteral: 2880case BoundKind.StackAllocArrayCreation: 2886case BoundKind.UnconvertedConditionalOperator when operand.Type is null: 2887case BoundKind.UnconvertedSwitchExpression when operand.Type is null: 2892case BoundKind.UnconvertedCollectionExpression: 2897case BoundKind.UnconvertedAddressOfOperator: 3143case BoundKind.PropertyAccess: 3144case BoundKind.IndexerAccess: 3534else if (argument.Kind == BoundKind.OutVariablePendingInference) 3538else if (argument.Kind == BoundKind.OutDeconstructVarPendingInference) 3542else if (argument.Kind == BoundKind.DiscardExpression && !argument.HasExpressionType()) 3578(BoundKind.OutVariablePendingInference or BoundKind.OutDeconstructVarPendingInference or BoundKind.DiscardExpression or BoundKind.ArgListOperator)); 5469else if (argument.Kind == BoundKind.MethodGroup) 5906if (boundMember.Kind == BoundKind.PropertyGroup) 5948BoundKind boundMemberKind = boundMember.Kind; 5960case BoundKind.FieldAccess: 5977case BoundKind.EventAccess: 5980case BoundKind.PropertyAccess: 5984case BoundKind.IndexerAccess: 6018case BoundKind.ImplicitIndexerAccess: 6029case BoundKind.DynamicObjectInitializerMember: 6032case BoundKind.DynamicIndexerAccess: 6042case BoundKind.ArrayAccess: 6043case BoundKind.PointerElementAccess: 6537if (addMethodInvocation.Kind == BoundKind.DynamicInvocation) 6548else if (addMethodInvocation.Kind == BoundKind.Call) 6577Debug.Assert(addMethodInvocation.Kind == BoundKind.BadExpression); 7057case BoundKind.ObjectCreationExpression: 7063case BoundKind.BadExpression: 7540if (boundValue.Kind == BoundKind.Conversion) 7732if (boundLeft.Kind == BoundKind.UnboundLambda) 7779case BoundKind.NamespaceExpression: 7789case BoundKind.TypeExpression: 7799case BoundKind.TypeOrValueExpression: 7809if (boundLeft.Kind == BoundKind.Literal && ((BoundLiteral)boundLeft).ConstantValueOpt == ConstantValue.Null) 7998case BoundKind.MethodGroup: 8021case BoundKind.PropertyGroup: 8123bool leftIsBaseReference = boundLeft.Kind == BoundKind.BaseReference; 8230if (boundLeft.HasAnyErrors && boundLeft.Kind != BoundKind.TypeOrValueExpression) 8251else if (boundLeft.Kind == BoundKind.TypeExpression || 8252boundLeft.Kind == BoundKind.BaseReference || 8489ReportDiagnosticsIfObsolete(diagnostics, symbol, node, hasBaseReceiver: left.Kind == BoundKind.BaseReference); 9051ReportDiagnosticsIfObsolete(diagnostics, propertySymbol, node, hasBaseReceiver: receiver?.Kind == BoundKind.BaseReference); 9156case BoundKind.PreviousSubmissionReference: 9159case BoundKind.TypeExpression: 9161case BoundKind.QueryClause: 9352if (receiver.Kind == BoundKind.PropertyGroup) 9767if (index.Kind == BoundKind.OutVariablePendingInference) 9771else if (index.Kind == BoundKind.DiscardExpression && !index.HasExpressionType()) 9959LookupOptions lookupOptions = expr.Kind == BoundKind.BaseReference ? LookupOptions.UseBaseReferenceAccessibility : LookupOptions.Default; 10073BoundKind receiverKind = receiver.Kind; 10074if (receiverKind == BoundKind.BaseReference) 10079else if (receiverKind == BoundKind.TypeOrValueExpression) 10215ReportDiagnosticsIfObsolete(diagnostics, property, syntax, hasBaseReceiver: receiver != null && receiver.Kind == BoundKind.BaseReference); 10225if (!gotError && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 11375if (access.Kind == BoundKind.MethodGroup) 11539if (receiver.Kind == BoundKind.UnboundLambda)
Binder\Binder_Initializers.cs (2)
268if (statement.Kind == BoundKind.LabeledStatement) 271while (labeledStatementBody.Kind == BoundKind.LabeledStatement)
Binder\Binder_Invocation.cs (40)
108if (!allowFieldsAndProperties && (boundExpression.Kind == BoundKind.FieldAccess || boundExpression.Kind == BoundKind.PropertyAccess)) 113if (boundExpression.Kind == BoundKind.FieldAccess) 125Debug.Assert(allowFieldsAndProperties || boundExpression.Kind is (BoundKind.MethodGroup or BoundKind.BadExpression)); 130Debug.Assert(!args.Any(static e => e.Kind == BoundKind.OutVariablePendingInference || 131e.Kind == BoundKind.OutDeconstructVarPendingInference || 132e.Kind == BoundKind.DiscardExpression && !e.HasExpressionType())); 146if (queryClause != null && result.Kind == BoundKind.DynamicInvocation) 162if (boundExpression.Kind == BoundKind.FieldAccess) 247string name = boundExpression.Kind == BoundKind.MethodGroup ? GetName(node.Expression) : null; 281if (argument.Kind == BoundKind.OutVariablePendingInference) 358else if (boundExpression.Kind == BoundKind.MethodGroup) 411if (expression.Kind == BoundKind.MethodGroup) 421case BoundKind.BaseReference: 426case BoundKind.ThisReference: 449case BoundKind.TypeOrValueExpression: 594if (arg.Kind == BoundKind.Lambda || arg.Kind == BoundKind.UnboundLambda) 600else if (arg.Kind == BoundKind.MethodGroup) 606else if (arg.Kind == BoundKind.ArgListOperator) 735Debug.Assert(extensionMemberAccess.Kind != BoundKind.MethodGroup); 1081case BoundKind.Call: 1095else if (call.ReceiverOpt.Kind == BoundKind.BaseReference && this.ContainingType.IsRestrictedType()) 1103case BoundKind.DynamicInvocation: 1116case BoundKind.FunctionPointerInvocation: 1330if (!gotError && method.RequiresInstanceReceiver && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 1346bool hasBaseReceiver = receiver != null && receiver.Kind == BoundKind.BaseReference; 1970case BoundKind.TypeOrValueExpression: 1996case BoundKind.QueryClause: 2034if ((object)expr != null && expr.Kind != BoundKind.TypeExpression) 2174case BoundKind.UnboundLambda: 2209case BoundKind.OutVariablePendingInference: 2210case BoundKind.DiscardExpression: 2218if (argument.Kind == BoundKind.OutVariablePendingInference) 2229else if (argument.Kind == BoundKind.DiscardExpression) 2243case BoundKind.OutDeconstructVarPendingInference: 2248case BoundKind.Parameter: 2249case BoundKind.Local: 2337var originalMethods = (expr.Kind == BoundKind.MethodGroup) ? ((BoundMethodGroup)expr).Methods : ImmutableArray<MethodSymbol>.Empty;
Binder\Binder_Operators.cs (43)
36if (left.Kind == BoundKind.EventAccess) 104if (left.Kind == BoundKind.EventAccess && !CheckEventValueKind((BoundEventAccess)left, BindValueKind.Assignable, diagnostics)) 307Debug.Assert(left.Kind != BoundKind.EventAccess || hasError); 880if (result.Kind == BoundKind.TypeExpression 885else if (result.Kind == BoundKind.BadExpression) 1296case (BoundKind.DefaultLiteral, _) when !isEquality: 1297case (_, BoundKind.DefaultLiteral) when !isEquality: 1301case (BoundKind.DefaultLiteral, BoundKind.DefaultLiteral): 1304case (BoundKind.DefaultLiteral, _) when right.Type is TypeParameterSymbol: 1308case (_, BoundKind.DefaultLiteral) when left.Type is TypeParameterSymbol: 1312case (BoundKind.UnconvertedObjectCreationExpression, _): 1315case (_, BoundKind.UnconvertedObjectCreationExpression): 2816if (left.Kind == BoundKind.Conversion && right.Kind == BoundKind.Conversion) 3905case BoundKind.NamespaceExpression: 3906case BoundKind.TypeExpression: 4027BoundKind exprKind = expr.Kind; 4030case BoundKind.FieldAccess: 4031case BoundKind.EventAccess: 4035if (exprKind == BoundKind.FieldAccess) 4077case BoundKind.InlineArrayAccess: 4089case BoundKind.RangeVariable: 4097case BoundKind.Parameter: 4120case BoundKind.ThisReference: 4121case BoundKind.BaseReference: 4126case BoundKind.Local: 4136case BoundKind.PointerIndirectionOperator: //Covers ->, since the receiver will be one of these. 4137case BoundKind.ConvertedStackAllocExpression: 4141case BoundKind.PointerElementAccess: 4156case BoundKind.PropertyAccess: // Never fixed 4157case BoundKind.IndexerAccess: // Never fixed 4618case BoundKind.UnboundLambda: 4619case BoundKind.Lambda: 4620case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 4748operand.Kind == BoundKind.MethodGroup || 5166case BoundKind.UnboundLambda: 5167case BoundKind.Lambda: 5168case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 5177case BoundKind.TupleLiteral: 5178case BoundKind.ConvertedTupleLiteral: 5477if (leftOperand.Kind == BoundKind.UnboundLambda || leftOperand.Kind == BoundKind.MethodGroup)
Binder\Binder_Patterns.cs (11)
509wasExpression = expression.Kind != BoundKind.TypeExpression; 516Debug.Assert(expression is { Kind: BoundKind.TypeExpression, Type: { } }); 538wasExpression = expression.Kind switch { BoundKind.BadExpression => false, BoundKind.TypeExpression => false, _ => true }; 687if (convertedExpression.Kind == BoundKind.Conversion) 1562if (boundMember.Kind == BoundKind.PropertyGroup) 1572case BoundKind.FieldAccess: 1573case BoundKind.PropertyAccess: 1576case BoundKind.IndexerAccess: 1577case BoundKind.DynamicIndexerAccess: 1578case BoundKind.EventAccess:
Binder\Binder_Query.cs (7)
935while (ultimateReceiver.Kind == BoundKind.QueryClause) 942Debug.Assert(ultimateReceiver.Kind != BoundKind.MethodGroup || ultimateReceiver.HasAnyErrors); 960else if (ultimateReceiver.Kind == BoundKind.NamespaceExpression) 964else if (ultimateReceiver.Kind == BoundKind.Lambda || ultimateReceiver.Kind == BoundKind.UnboundLambda) 972else if (ultimateReceiver.Kind == BoundKind.TypeExpression) 980else 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. 1672case BoundKind.PropertyAccess: 1679case BoundKind.IndexerAccess: 1686case BoundKind.ImplicitIndexerAccess: 1810(propertyIsStatic || receiver?.Kind == BoundKind.ThisReference); 1845else if (receiver.Kind == BoundKind.BaseReference) 1971if (expression.HasAnyErrors && expression.Kind != BoundKind.UnboundLambda) 2361case BoundKind.BadExpression: 2365case BoundKind.UnboundLambda: 2370case BoundKind.TupleLiteral: 2394case BoundKind.MethodGroup: 2399case BoundKind.UnconvertedAddressOfOperator: 2404case BoundKind.Literal: 2421case BoundKind.StackAllocArrayCreation: 2427case BoundKind.UnconvertedSwitchExpression: 2440case BoundKind.UnconvertedCollectionExpression: 2445case BoundKind.AddressOfOperator when targetType.IsFunctionPointer(): 2450case BoundKind.UnconvertedConditionalOperator: 2479Debug.Assert(operand.HasAnyErrors && operand.Kind != BoundKind.UnboundLambda, "Missing a case in implicit conversion error reporting"); 2722if (expr.Kind == BoundKind.AssignmentOperator) 2725if (assignment.Right.Kind == BoundKind.Literal && assignment.Right.ConstantValueOpt.Discriminator == ConstantValueTypeDiscriminator.Boolean) 3197if (!argument.HasAnyErrors || argument.Kind == BoundKind.UnboundLambda) 3473if (expression.Kind == BoundKind.DelegateCreationExpression || expression.Kind == BoundKind.NameOfOperator) 3501if ((refKind != RefKind.None) != (returnRefKind != RefKind.None) && expression.Kind != BoundKind.ThrowExpression) 4155if (boundAccess.Kind != BoundKind.MethodGroup) 4183if (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)
2433if (RemainingTests[0] is One { Test: { Kind: BoundKind.DagNonNullTest } planA }) 2440case One { Test: { Kind: BoundKind.DagTypeTest } planB1 }: 2447case One { Test: { Kind: BoundKind.DagValueTest } planB2 }:
Binder\DecisionDagBuilder_ListPatterns.cs (1)
19list.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)
582if (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)
469&& nonDelegate.Kind == BoundKind.UnboundLambda)
Binder\Semantics\OverloadResolution\MethodGroup.cs (1)
117if (this.Receiver.Kind == BoundKind.TypeExpression)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (17)
635if (argument.Kind == BoundKind.UnboundLambda && target.Type.GetDelegateType() is { }) 640else if (argument.Kind == BoundKind.UnconvertedCollectionExpression) 644else if (argument.Kind != BoundKind.TupleLiteral || 877if (argument.Kind == BoundKind.TupleLiteral && (object)argument.Type == null) 881else if (argument.Kind == BoundKind.UnconvertedCollectionExpression) 1021if ((isFunctionPointer && argument.Kind != BoundKind.UnconvertedAddressOfOperator) || 1022(!isFunctionPointer && argument.Kind is not (BoundKind.UnboundLambda or BoundKind.MethodGroup))) 1077if ((isFunctionPointer && argument.Kind != BoundKind.UnconvertedAddressOfOperator) || 1078(!isFunctionPointer && argument.Kind is not (BoundKind.UnboundLambda or BoundKind.MethodGroup))) 1446if (source.Kind is not (BoundKind.MethodGroup or BoundKind.UnconvertedAddressOfOperator)) 1457if (delegateOrFunctionPointerType.IsFunctionPointer() != (source.Kind == BoundKind.UnconvertedAddressOfOperator)) 1557if (source.Kind != BoundKind.UnboundLambda) 1611if (source.Kind != BoundKind.UnboundLambda) 3088if (source.Kind != BoundKind.UnboundLambda)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (18)
2166var argumentKind = arguments[i].Kind; 2170if (argumentKind == BoundKind.ArgListOperator) 2308var argumentKind = arguments[i].Kind; 2312if (argumentKind == BoundKind.ArgListOperator) 2472if (arguments[i].Kind == BoundKind.ArgListOperator) 2618if (arguments[i].Kind != BoundKind.ArgListOperator) 2945var nodeKind = node.Kind; 2946if (nodeKind == BoundKind.OutVariablePendingInference || 2947nodeKind == BoundKind.OutDeconstructVarPendingInference || 2948(nodeKind == BoundKind.DiscardExpression && !node.HasExpressionType())) 3268if (node.Kind == BoundKind.TupleLiteral) 3284if (node.Kind == BoundKind.UnboundLambda && 3324if (lambda.Body.Statements[0].Kind == BoundKind.ReturnStatement) 3600if (node?.Kind == BoundKind.MethodGroup) 4550if (argument.Kind == BoundKind.ArgListOperator) 4725if (argument.Kind == BoundKind.OutVariablePendingInference || 4726argument.Kind == BoundKind.OutDeconstructVarPendingInference || 4727(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: 612return this.Condition.Kind == BoundKind.UnaryOperator && ((BoundUnaryOperator)this.Condition).OperatorKind.IsDynamic(); 738if (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: 213Debug.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)
347if (inits[0].Kind == BoundKind.ArrayInitialization) 369Debug.Assert(inits.All((init) => init.Kind != BoundKind.ArrayInitialization) || 370inits.All((init) => init.Kind == BoundKind.ArrayInitialization), 373return 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)) || 870Debug.Assert(sequence.Value.Kind != BoundKind.TypeExpression || !used); 871if (sequence.Value.Kind != BoundKind.TypeExpression) 1013Debug.Assert(arguments[i].Kind == BoundKind.ArgListOperator); 1242else if (receiver.Kind == BoundKind.Conversion) 1253else if (receiver.Kind == BoundKind.FieldAccess) 1284if (receiver.Kind == BoundKind.Conversion && ((BoundConversion)receiver).ConversionKind == ConversionKind.Unboxing) 1297case BoundKind.Parameter: 1301case BoundKind.Local: 1305case BoundKind.Sequence: 1308case BoundKind.FieldAccess: 1527Debug.Assert(receiver.Kind != BoundKind.BaseReference, "base should always use call"); 1538case BoundKind.ArrayCreation: 1541case BoundKind.ObjectCreationExpression: 1546case BoundKind.Conversion: 1566case BoundKind.ThisReference: 1573case BoundKind.FieldAccess: 1577case BoundKind.Local: 1581case BoundKind.DelegateCreationExpression: 1584case BoundKind.Sequence: 1588case BoundKind.AssignmentOperator: 1592case BoundKind.TypeOfOperator: 1595case BoundKind.ConditionalReceiver: 1611case BoundKind.ThisReference: 1614case BoundKind.Sequence: 1657Debug.Assert(receiver.Kind == BoundKind.ThisReference); 2159case BoundKind.TypeExpression: 2160case BoundKind.Parameter: 2161case BoundKind.Local: 2162case BoundKind.ThisReference: 2164case BoundKind.FieldAccess: 2175case BoundKind.PassByCopy: 2178case BoundKind.BinaryOperator: 2191case BoundKind.Conversion: 2240case BoundKind.Local: 2243case BoundKind.Parameter: 2246case BoundKind.Call: 2249case BoundKind.FunctionPointerInvocation: 2252case BoundKind.Dup: 2255case BoundKind.Sequence: 2652if (objCreation.Arguments.Length > 0 && objCreation.Arguments[0].Kind == BoundKind.ConvertedStackAllocExpression) 2686if (left.Kind == BoundKind.ArrayAccess && left.Type.TypeKind == TypeKind.TypeParameter && !left.Type.IsValueType) 2691if (left.Kind == BoundKind.FieldAccess) 2795case BoundKind.Parameter: 2798case BoundKind.Local: 2814case BoundKind.RefValueOperator: 2818case BoundKind.FieldAccess: 2836case BoundKind.Parameter: 2848case BoundKind.Local: 2900case BoundKind.ArrayAccess: 2909case BoundKind.ThisReference: 2920case BoundKind.Dup: 2931case BoundKind.ConditionalOperator: 2943case BoundKind.PointerIndirectionOperator: 2953case BoundKind.Sequence: 2966case BoundKind.Call: 2977case BoundKind.FunctionPointerInvocation: 2988case BoundKind.PropertyAccess: 2989case BoundKind.IndexerAccess: 2991case BoundKind.PreviousSubmissionReference: 2995case BoundKind.PseudoVariable: 3000case BoundKind.ModuleVersionId: 3001case BoundKind.InstrumentationPayloadRoot: 3004case BoundKind.AssignmentOperator: 3043Debug.Assert(lhs.Kind != BoundKind.Parameter || exprTempsAfter <= exprTempsBefore); 3045if (lhs.Kind == BoundKind.Local && ((BoundLocal)lhs).LocalSymbol.SynthesizedKind.IsLongLived()) 3103case BoundKind.FieldAccess: 3107case BoundKind.Local: 3134case BoundKind.ArrayAccess: 3140case BoundKind.ThisReference: 3144case BoundKind.Parameter: 3148case BoundKind.Dup: 3153case BoundKind.ConditionalOperator: 3158case BoundKind.RefValueOperator: 3159case BoundKind.PointerIndirectionOperator: 3160case BoundKind.PseudoVariable: 3164case BoundKind.Sequence: 3171case BoundKind.Call: 3176case BoundKind.FunctionPointerInvocation: 3181case BoundKind.ModuleVersionId: 3185case BoundKind.InstrumentationPayloadRoot: 3189case BoundKind.AssignmentOperator: 3198case BoundKind.PreviousSubmissionReference: 3956case BoundKind.Conversion: 3970case BoundKind.AssignmentOperator: 3974case BoundKind.Sequence: 3978case BoundKind.Local: 3987case 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: 1158while (exceptionSource.Kind == BoundKind.Sequence) 1168case BoundKind.Local: 1178case BoundKind.FieldAccess: 1291if (expression.Kind == BoundKind.Sequence) 1299if (expression.Kind == BoundKind.SequencePointExpression) 1308case BoundKind.Local: 1317case BoundKind.Parameter:
CodeGen\Optimizer.cs (35)
450Debug.Assert(expr.Kind != BoundKind.Label); 761if (value != null && value.Kind == BoundKind.Local && ((BoundLocal)value).LocalSymbol == local) 769if (lastSideeffect.Kind == BoundKind.AssignmentOperator) 773assignment.Right.Kind == BoundKind.Sequence) 949bool mayPushReceiver = (right.Kind == BoundKind.ObjectCreationExpression && 995assignmentLocal.Type.IsPointerOrFunctionPointer() && right.Kind == BoundKind.Conversion && 1006right.Kind == BoundKind.PointerIndirectionOperator) 1040(lhs.Kind is BoundKind.Local or BoundKind.Parameter or BoundKind.FieldAccess && lhs.GetRefKind() != RefKind.None), 1045case BoundKind.ThisReference: 1049case BoundKind.Parameter: 1057case BoundKind.Local: 1065case BoundKind.Call: 1069case BoundKind.FunctionPointerInvocation: 1073case BoundKind.ConditionalOperator: 1077case BoundKind.AssignmentOperator: 1081case BoundKind.Sequence: 1086case BoundKind.RefValueOperator: 1087case BoundKind.PointerIndirectionOperator: 1088case BoundKind.PseudoVariable: 1091case BoundKind.ModuleVersionId: 1092case BoundKind.InstrumentationPayloadRoot: 1094goto case BoundKind.FieldAccess; 1096case BoundKind.FieldAccess: 1097case BoundKind.ArrayAccess: 1109if (lhs.Kind == BoundKind.FieldAccess) 1434if (boundExpression.Kind == BoundKind.Local) 1486if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 1502if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 1706if (exceptionSourceOpt.Kind == BoundKind.Local) 1945top.Item1.Kind == BoundKind.Local && 2080if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2096if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2308if (exceptionSource.Kind == BoundKind.Local)
Compilation\CSharpSemanticModel.cs (58)
1938else if (highestBoundExpr.Kind == BoundKind.TypeOrValueExpression) 1944else if (highestBoundExpr.Kind == BoundKind.UnaryOperator) 2099var highestBoundExprKind = highestBoundExpr?.Kind ?? BoundKind.NoOpStatement; 2104if (highestBoundExprKind == BoundKind.Lambda) // the enclosing conversion is explicit 2120if (tupleLiteralConversion.Operand.Kind == BoundKind.ConvertedTupleLiteral) 2134else if (highestBoundExprKind == BoundKind.FixedLocalCollectionInitializer) 2205if (highestBoundExprKind != BoundKind.Conversion) 2209else if (((BoundConversion)highestBoundExpr).Operand.Kind != BoundKind.Conversion) 2227else if (boundNodeForSyntacticParent?.Kind == BoundKind.DelegateCreationExpression) 2234case BoundKind.MethodGroup: 2239case BoundKind.Lambda: 2245case BoundKind.UnboundLambda: 2314if (boundExpr != null && boundExpr.Kind != BoundKind.TypeExpression) 3371case BoundKind.MethodGroup: 3375case BoundKind.PropertyGroup: 3380case BoundKind.BadExpression: 3403case BoundKind.DelegateCreationExpression: 3406case BoundKind.TypeExpression: 3414boundNodeForSyntacticParent.Kind == BoundKind.BadExpression && 3436case BoundKind.TypeOrValueExpression: 3445case BoundKind.Call: 3470case BoundKind.FunctionPointerInvocation: 3478case BoundKind.UnconvertedAddressOfOperator: 3492case BoundKind.IndexerAccess: 3506case BoundKind.ImplicitIndexerAccess: 3510case BoundKind.EventAssignmentOperator: 3527case BoundKind.EventAccess when boundNodeForSyntacticParent is BoundEventAssignmentOperator { ResultKind: LookupResultKind.Viable } parentOperator && 3538case BoundKind.Conversion: 3561case BoundKind.BinaryOperator: 3565case BoundKind.UnaryOperator: 3569case BoundKind.UserDefinedConditionalLogicalOperator: 3575case BoundKind.CompoundAssignmentOperator: 3579case BoundKind.IncrementOperator: 3583case BoundKind.AwaitExpression: 3588case BoundKind.ConditionalOperator: 3594case BoundKind.Attribute: 3629case BoundKind.QueryClause: 3640case BoundKind.DynamicInvocation: 3648case BoundKind.DynamicCollectionElementInitializer: 3656case BoundKind.DynamicIndexerAccess: 3664case BoundKind.DynamicMemberAccess: 3669case BoundKind.DynamicObjectCreationExpression: 3676case BoundKind.ObjectCreationExpression: 3693case BoundKind.ThisReference: 3694case BoundKind.BaseReference: 3705case BoundKind.FromEndIndexExpression: 3715case BoundKind.RangeExpression: 4002case BoundKind.Attribute: 4016case BoundKind.BadExpression: 4281case BoundKind.Call: 4302case BoundKind.DelegateCreationExpression: 4312case BoundKind.Conversion: 4344case BoundKind.DynamicInvocation: 4350case BoundKind.BadExpression: 4361case BoundKind.NameOfOperator: 4430case BoundKind.IndexerAccess: 4451case BoundKind.BadExpression:
Compilation\MemberSemanticModel.cs (12)
1239Debug.Assert(highestBoundNode.Kind != BoundKind.UnboundLambda); 1783case BoundKind.UnboundLambda: 1785goto case BoundKind.Lambda; 1786case BoundKind.Lambda: 1790case BoundKind.QueryClause: 1812case BoundKind.QueryClause: 1816case BoundKind.Call: 1828while (receiver?.Kind == BoundKind.MethodGroup) 1845case BoundKind.Conversion: 1848case BoundKind.UnboundLambda: 1852case BoundKind.Lambda: 1895if (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)
623(init.Kind == BoundKind.FieldEqualsValue) && !((BoundFieldEqualsValue)init).Field.IsMetadataConstant)); 1339if (processedInitializers.LoweredInitializers.Kind == BoundKind.StatementList) 1991case BoundKind.ConstructorMethodBody: 2021case BoundKind.NonConstructorMethodBody: 2027case BoundKind.Block:
FlowAnalysis\AbstractFlowPass.cs (25)
555case BoundKind.Parameter: 559case BoundKind.Local: 563case BoundKind.ThisReference: 564case BoundKind.BaseReference: 567case BoundKind.PropertyAccess: 584case BoundKind.FieldAccess: 591case BoundKind.EventAccess: 598case BoundKind.TupleLiteral: 599case BoundKind.ConvertedTupleLiteral: 603case BoundKind.InlineArrayAccess: 848case BoundKind.LabeledStatement: 854case BoundKind.LabelStatement: 860case 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) 2468case BoundKind.BinaryOperator: 2472case BoundKind.UserDefinedConditionalLogicalOperator: 2488case BoundKind.BinaryOperator: 2493case BoundKind.UserDefinedConditionalLogicalOperator: 2505Debug.Assert(!isBool || binary.Kind != BoundKind.UserDefinedConditionalLogicalOperator);
FlowAnalysis\ControlFlowPass.cs (12)
215case BoundKind.GotoStatement: 222case BoundKind.BreakStatement: 223case BoundKind.ContinueStatement: 230case BoundKind.ReturnStatement: 243case BoundKind.NoOpStatement: 244case BoundKind.Block: 245case BoundKind.ThrowStatement: 246case BoundKind.LabeledStatement: 247case BoundKind.LocalFunctionStatement: 250case BoundKind.StatementList: 305case BoundKind.YieldBreakStatement: 306case 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 (81)
242if (node.Kind == BoundKind.Attribute) 737Debug.Assert(fieldOrEventAccess.Kind == BoundKind.FieldAccess || fieldOrEventAccess.Kind == BoundKind.EventAccess); 743case BoundKind.FieldAccess: 759case BoundKind.EventAccess: 776case BoundKind.ThisReference: 780case BoundKind.Local: 784case BoundKind.Parameter: 788case BoundKind.InlineArrayAccess: 873if (value is { ConstantValueOpt: not null, Kind: not BoundKind.InterpolatedString }) return false; 877case BoundKind.Conversion: 891case BoundKind.DefaultLiteral: 892case BoundKind.DefaultExpression: 894case BoundKind.ObjectCreationExpression: 897case BoundKind.TupleLiteral: 898case BoundKind.ConvertedTupleLiteral: 899case BoundKind.Utf8String: 915case BoundKind.FieldAccess: 930if (n.Kind == BoundKind.Local) 942case BoundKind.EventAccess: 963case BoundKind.ThisReference: 967case BoundKind.Local: 971case BoundKind.Parameter: 975case BoundKind.RangeVariable: 979case BoundKind.InlineArrayAccess: 1024case BoundKind.FieldAccess: 1040case BoundKind.EventAccess: 1052case BoundKind.PropertyAccess: 1076receiver.Kind != BoundKind.TypeExpression && 1093receiverOpt.Kind != BoundKind.TypeExpression && 1336case BoundKind.ThisReference: 1349case BoundKind.Local: 1355case BoundKind.FieldAccess: 1367case BoundKind.EventAccess: 1379case BoundKind.InlineArrayAccess: 1385case BoundKind.PropertyAccess: 1407case BoundKind.Parameter: 1414case BoundKind.RangeVariable: 1439case BoundKind.FieldAccess: 1448case BoundKind.Local: 1452case BoundKind.RangeVariable: 1454case BoundKind.Parameter: 1456case BoundKind.ThisReference: 1458case BoundKind.BaseReference: 1491case BoundKind.ListPattern: 1492case BoundKind.RecursivePattern: 1493case BoundKind.DeclarationPattern: 1509case BoundKind.LocalDeclaration: 1520case BoundKind.Local: 1538case BoundKind.InlineArrayAccess: 1568case BoundKind.Parameter: 1585case BoundKind.ObjectInitializerMember: 1597case BoundKind.ThisReference: 1598case BoundKind.FieldAccess: 1599case BoundKind.EventAccess: 1600case BoundKind.PropertyAccess: 1609case BoundKind.RangeVariable: 1613case BoundKind.BadExpression: 1624case BoundKind.TupleLiteral: 1625case BoundKind.ConvertedTupleLiteral: 1957case BoundKind.DeclarationPattern: 1964case BoundKind.DiscardPattern: 1965case BoundKind.TypePattern: 1967case BoundKind.SlicePattern: 1976case BoundKind.ConstantPattern: 1982case BoundKind.RecursivePattern: 2016case BoundKind.ITuplePattern: 2025case BoundKind.ListPattern: 2036case BoundKind.RelationalPattern: 2042case BoundKind.NegatedPattern: 2048case BoundKind.BinaryPattern: 2157if (stmt.Kind != BoundKind.LocalFunctionStatement) 2405if (pending.Branch.Kind == BoundKind.ReturnStatement) 2479if (initializer.Kind == BoundKind.AddressOfOperator) 2552case BoundKind.Local: 2555case BoundKind.Parameter: 2558case BoundKind.FieldAccess: 2566case BoundKind.EventAccess: 2574case BoundKind.ThisReference: 2575case BoundKind.BaseReference: 2579case 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).EnumeratorInfoOpt is { MoveNextAwaitableInfo: not 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 (72)
294private static readonly ImmutableArray<BoundKind> s_skippedExpressions = ImmutableArray.Create(BoundKind.ArrayInitialization, 295BoundKind.ObjectInitializerExpression, 296BoundKind.CollectionInitializerExpression, 297BoundKind.DynamicCollectionElementInitializer); 392|| expr.Kind == BoundKind.ExpressionWithNullability 462private bool IsAnalyzingAttribute => methodMainNode.Kind == BoundKind.Attribute; 573Debug.Assert(expression != null || placeholder.Kind == BoundKind.InterpolatedStringArgumentPlaceholder); 594case BoundKind.DeconstructValuePlaceholder: 595case BoundKind.InterpolatedStringHandlerPlaceholder: 596case BoundKind.InterpolatedStringArgumentPlaceholder: 597case BoundKind.ObjectOrCollectionValuePlaceholder: 598case BoundKind.AwaitableValuePlaceholder: 601case BoundKind.ImplicitIndexerValuePlaceholder: 2068case BoundKind.FieldAccess: 2084case BoundKind.EventAccess: 2097case BoundKind.PropertyAccess: 2115receiver.Kind != BoundKind.TypeExpression && 2143case BoundKind.ThisReference: 2144case BoundKind.BaseReference: 2150case BoundKind.Conversion: 2193case BoundKind.DefaultLiteral: 2194case BoundKind.DefaultExpression: 2195case BoundKind.ObjectCreationExpression: 2196case BoundKind.DynamicObjectCreationExpression: 2197case BoundKind.AnonymousObjectCreationExpression: 2198case BoundKind.NewT: 2199case BoundKind.TupleLiteral: 2200case BoundKind.ConvertedTupleLiteral: 2202case BoundKind.ConditionalAccess: 2204case BoundKind.ConditionalReceiver: 2612case BoundKind.Conversion: 2619case BoundKind.DefaultLiteral: 2620case BoundKind.DefaultExpression: 3137if (!expr.IsSuppressed && RemoveConversion(expr, includeExplicitConversions: false).expression.Kind != BoundKind.ThrowExpression) 4196Debug.Assert(node.Kind is BoundKind.ObjectCreationExpression or BoundKind.DynamicObjectCreationExpression or BoundKind.NewT or BoundKind.NoPiaObjectCreationExpression); 4289case BoundKind.AssignmentOperator: 4304case BoundKind.CollectionElementInitializer: 4334case BoundKind.ObjectInitializerMember: 5043if (child.Kind == BoundKind.ArrayInitialization) 5666case BoundKind.Conversion: 5670case BoundKind.AsOperator: 5673case BoundKind.ConditionalAccess: 5860while (possiblyConversion.Kind == BoundKind.Conversion) 7840return (argument.Kind == BoundKind.Lambda); 8491/// other than <see cref="BoundKind.ExpressionWithNullability"/> which is an expression 8498case BoundKind.DefaultLiteral: 8499case BoundKind.DefaultExpression: 8500case BoundKind.Literal: 8502case BoundKind.ExpressionWithNullability: 8504case BoundKind.MethodGroup: 8505case BoundKind.UnboundLambda: 8506case BoundKind.UnconvertedObjectCreationExpression: 8507case BoundKind.ConvertedTupleLiteral: 8508case BoundKind.UnconvertedCollectionExpression: 8548if (argument.Kind == BoundKind.Lambda) 8557if (argument.Kind == BoundKind.CollectionExpression) 8682if (expr.Kind != BoundKind.Conversion) 8767case BoundKind.InterpolatedString: 9606if (operandType.Type?.IsTupleType == true || conversionOperand.Kind == BoundKind.TupleLiteral) 10617if (left.Kind == BoundKind.EventAccess && ((BoundEventAccess)left).EventSymbol.IsWindowsRuntimeEvent) 11035case BoundKind.TupleLiteral: 11036case BoundKind.ConvertedTupleLiteral: 11053case BoundKind.TupleLiteral: 11054case BoundKind.ConvertedTupleLiteral: 11056case BoundKind.Conversion: 11396if (initializer.Kind == BoundKind.AddressOfOperator) 11402if (node.Expression.Kind == BoundKind.AddressOfOperator) 11680if (node.Expression.Kind != BoundKind.Conversion)
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)
259protected BoundInitializer(BoundKind kind, SyntaxNode syntax, bool hasErrors) 264protected BoundInitializer(BoundKind kind, SyntaxNode syntax) 273protected BoundEqualsValue(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 291: base(BoundKind.FieldEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 321: base(BoundKind.PropertyEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 351: base(BoundKind.ParameterEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 381: base(BoundKind.GlobalStatementInitializer, syntax, hasErrors || statement.HasErrors()) 408protected BoundExpression(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 414protected BoundExpression(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 425protected BoundValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 430protected BoundValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 439protected BoundEarlyValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 444protected BoundEarlyValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 454: base(BoundKind.ValuePlaceholder, syntax, type, hasErrors) 459: base(BoundKind.ValuePlaceholder, syntax, type) 482: base(BoundKind.CapturedReceiverPlaceholder, syntax, type, hasErrors || receiver.HasErrors()) 512: base(BoundKind.DeconstructValuePlaceholder, syntax, type, hasErrors) 522: base(BoundKind.DeconstructValuePlaceholder, syntax, type) 553: base(BoundKind.TupleOperandPlaceholder, syntax, type, hasErrors) 561: base(BoundKind.TupleOperandPlaceholder, syntax, type) 588: base(BoundKind.AwaitableValuePlaceholder, syntax, type, hasErrors) 593: base(BoundKind.AwaitableValuePlaceholder, syntax, type) 617: base(BoundKind.DisposableValuePlaceholder, syntax, type, hasErrors) 625: base(BoundKind.DisposableValuePlaceholder, syntax, type) 652: base(BoundKind.ObjectOrCollectionValuePlaceholder, syntax, type, hasErrors) 661: base(BoundKind.ObjectOrCollectionValuePlaceholder, syntax, type) 690: base(BoundKind.ImplicitIndexerValuePlaceholder, syntax, type, hasErrors) 698: base(BoundKind.ImplicitIndexerValuePlaceholder, syntax, type) 725: base(BoundKind.ImplicitIndexerReceiverPlaceholder, syntax, type, hasErrors) 734: base(BoundKind.ImplicitIndexerReceiverPlaceholder, syntax, type) 763: base(BoundKind.ListPatternReceiverPlaceholder, syntax, type, hasErrors) 771: base(BoundKind.ListPatternReceiverPlaceholder, syntax, type) 798: base(BoundKind.ListPatternIndexPlaceholder, syntax, type, hasErrors) 806: base(BoundKind.ListPatternIndexPlaceholder, syntax, type) 833: base(BoundKind.SlicePatternReceiverPlaceholder, syntax, type, hasErrors) 841: base(BoundKind.SlicePatternReceiverPlaceholder, syntax, type) 868: base(BoundKind.SlicePatternRangePlaceholder, syntax, type, hasErrors) 876: base(BoundKind.SlicePatternRangePlaceholder, syntax, type) 903: base(BoundKind.Dup, syntax, type, hasErrors) 909: base(BoundKind.Dup, syntax, type) 934: base(BoundKind.PassByCopy, syntax, type, hasErrors || expression.HasErrors()) 962: base(BoundKind.BadExpression, syntax, type, hasErrors || childBoundNodes.HasErrors()) 995: base(BoundKind.BadStatement, syntax, hasErrors || childBoundNodes.HasErrors()) 1023: base(BoundKind.ExtractedFinallyBlock, syntax, hasErrors || finallyBlock.HasErrors()) 1051: base(BoundKind.TypeExpression, syntax, type, hasErrors || boundContainingTypeOpt.HasErrors() || boundDimensionsOpt.HasErrors()) 1086: base(BoundKind.TypeOrValueExpression, syntax, type, hasErrors) 1095: base(BoundKind.TypeOrValueExpression, syntax, type) 1124: base(BoundKind.NamespaceExpression, syntax, null, hasErrors) 1134: base(BoundKind.NamespaceExpression, syntax, null) 1165: base(BoundKind.UnaryOperator, syntax, type, hasErrors || operand.HasErrors()) 1207: base(BoundKind.IncrementOperator, syntax, type, hasErrors || operand.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors() || resultPlaceholder.HasErrors() || resultConversion.HasErrors()) 1255: base(BoundKind.AddressOfOperator, syntax, type, hasErrors || operand.HasErrors()) 1287: base(BoundKind.UnconvertedAddressOfOperator, syntax, null, hasErrors || operand.HasErrors()) 1316: base(BoundKind.FunctionPointerLoad, syntax, type, hasErrors) 1327: base(BoundKind.FunctionPointerLoad, syntax, type) 1359: base(BoundKind.PointerIndirectionOperator, syntax, type, hasErrors || operand.HasErrors()) 1391: base(BoundKind.PointerElementAccess, syntax, type, hasErrors || expression.HasErrors() || index.HasErrors()) 1428: base(BoundKind.FunctionPointerInvocation, syntax, type, hasErrors || invokedExpression.HasErrors() || arguments.HasErrors()) 1465: base(BoundKind.RefTypeOperator, syntax, type, hasErrors || operand.HasErrors()) 1497: base(BoundKind.MakeRefOperator, syntax, type, hasErrors || operand.HasErrors()) 1527: base(BoundKind.RefValueOperator, syntax, type, hasErrors || operand.HasErrors()) 1559: base(BoundKind.FromEndIndexExpression, syntax, type, hasErrors || operand.HasErrors()) 1591: base(BoundKind.RangeExpression, syntax, type, hasErrors || leftOperandOpt.HasErrors() || rightOperandOpt.HasErrors()) 1623protected BoundBinaryOperatorBase(BoundKind kind, SyntaxNode syntax, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false) 1643: base(BoundKind.BinaryOperator, syntax, left, right, type, hasErrors || left.HasErrors() || right.HasErrors()) 1677: base(BoundKind.TupleBinaryOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1715: base(BoundKind.UserDefinedConditionalLogicalOperator, syntax, left, right, type, hasErrors || trueFalseOperandPlaceholder.HasErrors() || trueFalseOperandConversion.HasErrors() || left.HasErrors() || right.HasErrors()) 1768: base(BoundKind.CompoundAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors() || finalPlaceholder.HasErrors() || finalConversion.HasErrors()) 1815: base(BoundKind.AssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1849: base(BoundKind.DeconstructionAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1884: base(BoundKind.NullCoalescingOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors()) 1925: base(BoundKind.NullCoalescingAssignmentOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors()) 1956: base(BoundKind.UnconvertedConditionalOperator, syntax, null, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 1995: base(BoundKind.ConditionalOperator, syntax, type, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 2039: base(BoundKind.ArrayAccess, syntax, type, hasErrors || expression.HasErrors() || indices.HasErrors()) 2072: base(BoundKind.RefArrayAccess, syntax, null, hasErrors || arrayAccess.HasErrors()) 2101: base(BoundKind.ArrayLength, syntax, type, hasErrors || expression.HasErrors()) 2131: base(BoundKind.AwaitableInfo, syntax, hasErrors || awaitableInstancePlaceholder.HasErrors() || getAwaiter.HasErrors() || runtimeAsyncAwaitCall.HasErrors() || runtimeAsyncAwaitCallPlaceholder.HasErrors()) 2172: base(BoundKind.AwaitExpression, syntax, type, hasErrors || expression.HasErrors() || awaitableInfo.HasErrors()) 2206protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors) 2215protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type) 2231: base(BoundKind.TypeOfOperator, syntax, getTypeFromHandle, type, hasErrors || sourceType.HasErrors()) 2260: base(BoundKind.BlockInstrumentation, syntax, hasErrors || prologue.HasErrors() || epilogue.HasErrors()) 2292: base(BoundKind.MethodDefIndex, syntax, type, hasErrors) 2306: base(BoundKind.MethodDefIndex, syntax, type) 2336: base(BoundKind.LocalId, syntax, type, hasErrors) 2347: base(BoundKind.LocalId, syntax, type) 2379: base(BoundKind.ParameterId, syntax, type, hasErrors) 2390: base(BoundKind.ParameterId, syntax, type) 2422: base(BoundKind.StateMachineInstanceId, syntax, type, hasErrors) 2430: base(BoundKind.StateMachineInstanceId, syntax, type) 2457: base(BoundKind.MaximumMethodDefIndex, syntax, type, hasErrors) 2465: base(BoundKind.MaximumMethodDefIndex, syntax, type) 2492: base(BoundKind.InstrumentationPayloadRoot, syntax, type, hasErrors) 2501: base(BoundKind.InstrumentationPayloadRoot, syntax, type) 2530: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type, hasErrors) 2538: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type) 2565: base(BoundKind.ModuleCancellationTokenExpression, syntax, type, hasErrors) 2573: base(BoundKind.ModuleCancellationTokenExpression, syntax, type) 2600: base(BoundKind.ModuleVersionId, syntax, type, hasErrors) 2608: base(BoundKind.ModuleVersionId, syntax, type) 2635: base(BoundKind.ModuleVersionIdString, syntax, type, hasErrors) 2643: base(BoundKind.ModuleVersionIdString, syntax, type) 2670: base(BoundKind.SourceDocumentIndex, syntax, type, hasErrors) 2680: base(BoundKind.SourceDocumentIndex, syntax, type) 2710: base(BoundKind.MethodInfo, syntax, type, hasErrors) 2721: base(BoundKind.MethodInfo, syntax, type) 2753: base(BoundKind.FieldInfo, syntax, type, hasErrors) 2764: base(BoundKind.FieldInfo, syntax, type) 2796: base(BoundKind.DefaultLiteral, syntax, null, hasErrors) 2801: base(BoundKind.DefaultLiteral, syntax, null) 2819: base(BoundKind.DefaultExpression, syntax, type, hasErrors || targetType.HasErrors()) 2850: base(BoundKind.IsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors()) 2885: base(BoundKind.AsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors()) 2922: base(BoundKind.SizeOfOperator, syntax, type, hasErrors || sourceType.HasErrors()) 2954: base(BoundKind.Conversion, syntax, type, hasErrors || operand.HasErrors()) 2996: base(BoundKind.ReadOnlySpanFromArray, syntax, type, hasErrors || operand.HasErrors()) 3029: base(BoundKind.ArgList, syntax, type, hasErrors) 3037: base(BoundKind.ArgList, syntax, type) 3064: base(BoundKind.ArgListOperator, syntax, type, hasErrors || arguments.HasErrors()) 3095: base(BoundKind.FixedLocalCollectionInitializer, syntax, type, hasErrors || elementPointerPlaceholder.HasErrors() || elementPointerConversion.HasErrors() || expression.HasErrors()) 3133protected BoundStatement(BoundKind kind, SyntaxNode syntax, bool hasErrors) 3138protected BoundStatement(BoundKind kind, SyntaxNode syntax) 3148: base(BoundKind.SequencePoint, syntax, hasErrors || statementOpt.HasErrors()) 3173: base(BoundKind.SequencePointWithSpan, syntax, hasErrors || statementOpt.HasErrors()) 3200: base(BoundKind.SavePreviousSequencePoint, syntax, hasErrors) 3209: base(BoundKind.SavePreviousSequencePoint, syntax) 3237: base(BoundKind.RestorePreviousSequencePoint, syntax, hasErrors) 3246: base(BoundKind.RestorePreviousSequencePoint, syntax) 3274: base(BoundKind.StepThroughSequencePoint, syntax, hasErrors) 3280: base(BoundKind.StepThroughSequencePoint, syntax) 3305: base(BoundKind.Block, syntax, statements, hasErrors || instrumentation.HasErrors() || statements.HasErrors()) 3341: base(BoundKind.Scope, syntax, statements, hasErrors || statements.HasErrors()) 3370: base(BoundKind.StateMachineScope, syntax, hasErrors || statement.HasErrors()) 3401: base(BoundKind.LocalDeclaration, syntax, hasErrors || declaredTypeOpt.HasErrors() || initializerOpt.HasErrors() || argumentsOpt.HasErrors()) 3436protected BoundMultipleLocalDeclarationsBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false) 3451: base(BoundKind.MultipleLocalDeclarations, syntax, localDeclarations, hasErrors || localDeclarations.HasErrors()) 3477: base(BoundKind.UsingLocalDeclarations, syntax, localDeclarations, hasErrors || awaitOpt.HasErrors() || localDeclarations.HasErrors()) 3507: base(BoundKind.LocalFunctionStatement, syntax, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 3539: base(BoundKind.NoOpStatement, syntax, hasErrors) 3545: base(BoundKind.NoOpStatement, syntax) 3570: base(BoundKind.ReturnStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3599: base(BoundKind.YieldReturnStatement, syntax, hasErrors || expression.HasErrors()) 3627: base(BoundKind.YieldBreakStatement, syntax, hasErrors) 3632: base(BoundKind.YieldBreakStatement, syntax) 3644: base(BoundKind.ThrowStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3669: base(BoundKind.ExpressionStatement, syntax, hasErrors || expression.HasErrors()) 3697: base(BoundKind.BreakStatement, syntax, hasErrors) 3706: base(BoundKind.BreakStatement, syntax) 3734: base(BoundKind.ContinueStatement, syntax, hasErrors) 3743: base(BoundKind.ContinueStatement, syntax) 3771: base(BoundKind.SwitchStatement, syntax, hasErrors || expression.HasErrors() || switchSections.HasErrors() || reachabilityDecisionDag.HasErrors() || defaultLabel.HasErrors()) 3816: base(BoundKind.SwitchDispatch, syntax, hasErrors || expression.HasErrors()) 3852: base(BoundKind.IfStatement, syntax, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternativeOpt.HasErrors()) 3884protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors) 3895protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel) 3912protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 3935: base(BoundKind.DoStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 3965: base(BoundKind.WhileStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 3995: base(BoundKind.ForStatement, syntax, breakLabel, continueLabel, hasErrors || initializer.HasErrors() || condition.HasErrors() || increment.HasErrors() || body.HasErrors()) 4037: base(BoundKind.ForEachStatement, syntax, breakLabel, continueLabel, hasErrors || elementPlaceholder.HasErrors() || elementConversion.HasErrors() || iterationVariableType.HasErrors() || iterationErrorExpressionOpt.HasErrors() || expression.HasErrors() || deconstructionOpt.HasErrors() || body.HasErrors()) 4086: base(BoundKind.ForEachDeconstructStep, syntax, hasErrors || deconstructionAssignment.HasErrors() || targetPlaceholder.HasErrors()) 4117: base(BoundKind.UsingStatement, syntax, hasErrors || declarationsOpt.HasErrors() || expressionOpt.HasErrors() || body.HasErrors() || awaitOpt.HasErrors()) 4156: base(BoundKind.FixedStatement, syntax, hasErrors || declarations.HasErrors() || body.HasErrors()) 4190: base(BoundKind.LockStatement, syntax, hasErrors || argument.HasErrors() || body.HasErrors()) 4221: base(BoundKind.TryStatement, syntax, hasErrors || tryBlock.HasErrors() || catchBlocks.HasErrors() || finallyBlockOpt.HasErrors()) 4258: base(BoundKind.CatchBlock, syntax, hasErrors || exceptionSourceOpt.HasErrors() || exceptionFilterPrologueOpt.HasErrors() || exceptionFilterOpt.HasErrors() || body.HasErrors()) 4299: base(BoundKind.Literal, syntax, type, hasErrors) 4305: base(BoundKind.Literal, syntax, type) 4330: base(BoundKind.Utf8String, syntax, type, hasErrors) 4340: base(BoundKind.Utf8String, syntax, type) 4370: base(BoundKind.ThisReference, syntax, type, hasErrors) 4378: base(BoundKind.ThisReference, syntax, type) 4405: base(BoundKind.PreviousSubmissionReference, syntax, type, hasErrors) 4413: base(BoundKind.PreviousSubmissionReference, syntax, type) 4440: base(BoundKind.HostObjectMemberReference, syntax, type, hasErrors) 4448: base(BoundKind.HostObjectMemberReference, syntax, type) 4475: base(BoundKind.BaseReference, syntax, type, hasErrors) 4480: base(BoundKind.BaseReference, syntax, type) 4504: base(BoundKind.Local, syntax, type, hasErrors) 4517: base(BoundKind.Local, syntax, type) 4553: base(BoundKind.PseudoVariable, syntax, type, hasErrors) 4565: base(BoundKind.PseudoVariable, syntax, type) 4598: base(BoundKind.RangeVariable, syntax, type, hasErrors || value.HasErrors()) 4631: base(BoundKind.Parameter, syntax, type, hasErrors) 4641: base(BoundKind.Parameter, syntax, type) 4671: base(BoundKind.LabelStatement, syntax, hasErrors) 4680: base(BoundKind.LabelStatement, syntax) 4708: base(BoundKind.GotoStatement, syntax, hasErrors || caseExpressionOpt.HasErrors() || labelExpressionOpt.HasErrors()) 4740: base(BoundKind.LabeledStatement, syntax, hasErrors || body.HasErrors()) 4771: base(BoundKind.Label, syntax, type, hasErrors) 4780: base(BoundKind.Label, syntax, type) 4807protected BoundStatementList(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 4817: base(BoundKind.StatementList, syntax, hasErrors || statements.HasErrors()) 4845: base(BoundKind.ConditionalGoto, syntax, hasErrors || condition.HasErrors()) 4877protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false) 4902: base(BoundKind.SwitchExpressionArm, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors() || value.HasErrors()) 4941: base(BoundKind.UnconvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 4969: base(BoundKind.ConvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 5003: base(BoundKind.DecisionDag, syntax, hasErrors || rootNode.HasErrors()) 5030protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax, bool hasErrors) 5035protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax) 5045: base(BoundKind.EvaluationDecisionDagNode, syntax, hasErrors || evaluation.HasErrors() || next.HasErrors()) 5076: base(BoundKind.TestDecisionDagNode, syntax, hasErrors || test.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5110: base(BoundKind.WhenDecisionDagNode, syntax, hasErrors || whenExpression.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5145: base(BoundKind.LeafDecisionDagNode, syntax, hasErrors) 5154: base(BoundKind.LeafDecisionDagNode, syntax) 5181protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5196: base(BoundKind.DagTemp, syntax, hasErrors || source.HasErrors()) 5228: base(BoundKind.DagTypeTest, syntax, input, hasErrors || input.HasErrors()) 5257: base(BoundKind.DagNonNullTest, syntax, input, hasErrors || input.HasErrors()) 5285: base(BoundKind.DagExplicitNullTest, syntax, input, hasErrors || input.HasErrors()) 5311: base(BoundKind.DagValueTest, syntax, input, hasErrors || input.HasErrors()) 5340: base(BoundKind.DagRelationalTest, syntax, input, hasErrors || input.HasErrors()) 5370protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5383: base(BoundKind.DagDeconstructEvaluation, syntax, input, hasErrors || input.HasErrors()) 5412: base(BoundKind.DagTypeEvaluation, syntax, input, hasErrors || input.HasErrors()) 5441: base(BoundKind.DagFieldEvaluation, syntax, input, hasErrors || input.HasErrors()) 5470: base(BoundKind.DagPropertyEvaluation, syntax, input, hasErrors || input.HasErrors()) 5501: base(BoundKind.DagIndexEvaluation, syntax, input, hasErrors || input.HasErrors()) 5532: base(BoundKind.DagIndexerEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5579: base(BoundKind.DagSliceEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5628: base(BoundKind.DagAssignmentEvaluation, syntax, input, hasErrors || target.HasErrors() || input.HasErrors()) 5657: base(BoundKind.SwitchSection, syntax, statements, hasErrors || switchLabels.HasErrors() || statements.HasErrors()) 5689: base(BoundKind.SwitchLabel, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors()) 5721protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false) 5736: base(BoundKind.SequencePointExpression, syntax, type, hasErrors || expression.HasErrors()) 5764: base(BoundKind.Sequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5800: base(BoundKind.SpillSequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5836: base(BoundKind.DynamicMemberAccess, syntax, type, hasErrors || receiver.HasErrors()) 5874protected BoundDynamicInvocableBase(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol? type, bool hasErrors = false) 5892: base(BoundKind.DynamicInvocation, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 5928: base(BoundKind.ConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || accessExpression.HasErrors()) 5961: base(BoundKind.LoweredConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || whenNotNull.HasErrors() || whenNullOpt.HasErrors()) 6002: base(BoundKind.ConditionalReceiver, syntax, type, hasErrors) 6011: base(BoundKind.ConditionalReceiver, syntax, type) 6040: base(BoundKind.ComplexConditionalReceiver, syntax, type, hasErrors || valueTypeReceiver.HasErrors() || referenceTypeReceiver.HasErrors()) 6073: base(BoundKind.MethodGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6114: base(BoundKind.PropertyGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6142: base(BoundKind.Call, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 6201: base(BoundKind.EventAssignmentOperator, syntax, type, hasErrors || receiverOpt.HasErrors() || argument.HasErrors()) 6240: base(BoundKind.Attribute, syntax, type, hasErrors || constructorArguments.HasErrors() || namedArguments.HasErrors()) 6285: base(BoundKind.UnconvertedObjectCreationExpression, syntax, null, hasErrors || arguments.HasErrors()) 6322protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type, bool hasErrors) 6330protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type) 6344: base(BoundKind.ObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6394protected BoundCollectionExpressionBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundNode> elements, TypeSymbol? type, bool hasErrors = false) 6409: base(BoundKind.UnconvertedCollectionExpression, syntax, elements, null, hasErrors || elements.HasErrors()) 6436: base(BoundKind.CollectionExpression, syntax, elements, type, hasErrors || placeholder.HasErrors() || collectionCreation.HasErrors() || collectionBuilderInvocationPlaceholder.HasErrors() || collectionBuilderInvocationConversion.HasErrors() || unconvertedCollectionExpression.HasErrors() || elements.HasErrors()) 6481: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type, hasErrors) 6486: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type) 6509: base(BoundKind.CollectionExpressionSpreadElement, syntax, hasErrors || expression.HasErrors() || expressionPlaceholder.HasErrors() || conversion.HasErrors() || lengthOrCount.HasErrors() || elementPlaceholder.HasErrors() || iteratorBody.HasErrors()) 6548protected BoundTupleExpression(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false) 6567: base(BoundKind.TupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || arguments.HasErrors()) 6594: base(BoundKind.ConvertedTupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || sourceTuple.HasErrors() || arguments.HasErrors()) 6624: base(BoundKind.DynamicObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6667: base(BoundKind.NoPiaObjectCreationExpression, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 6698protected BoundObjectInitializerExpressionBase(BoundKind kind, SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false) 6718: base(BoundKind.ObjectInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6746: base(BoundKind.ObjectInitializerMember, syntax, type, hasErrors || arguments.HasErrors()) 6795: base(BoundKind.DynamicObjectInitializerMember, syntax, type, hasErrors) 6807: base(BoundKind.DynamicObjectInitializerMember, syntax, type) 6840: base(BoundKind.CollectionInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6868: base(BoundKind.CollectionElementInitializer, syntax, type, hasErrors || arguments.HasErrors() || implicitReceiverOpt.HasErrors()) 6913: base(BoundKind.DynamicCollectionElementInitializer, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 6945: base(BoundKind.ImplicitReceiver, syntax, type, hasErrors) 6953: base(BoundKind.ImplicitReceiver, syntax, type) 6980: base(BoundKind.AnonymousObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || declarations.HasErrors()) 7016: base(BoundKind.AnonymousPropertyDeclaration, syntax, type, hasErrors) 7026: base(BoundKind.AnonymousPropertyDeclaration, syntax, type) 7056: base(BoundKind.NewT, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 7086: base(BoundKind.DelegateCreationExpression, syntax, type, hasErrors || argument.HasErrors()) 7122: base(BoundKind.ArrayCreation, syntax, type, hasErrors || bounds.HasErrors() || initializerOpt.HasErrors()) 7154: base(BoundKind.ArrayInitialization, syntax, null, hasErrors || initializers.HasErrors()) 7184protected BoundStackAllocArrayCreationBase(BoundKind kind, SyntaxNode syntax, TypeSymbol elementType, BoundExpression count, BoundArrayInitialization? initializerOpt, TypeSymbol? type, bool hasErrors = false) 7204: base(BoundKind.StackAllocArrayCreation, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7231: base(BoundKind.ConvertedStackAllocExpression, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7260: base(BoundKind.FieldAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7300: base(BoundKind.HoistedFieldAccess, syntax, type, hasErrors) 7310: base(BoundKind.HoistedFieldAccess, syntax, type) 7340: base(BoundKind.PropertyAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7378: base(BoundKind.EventAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7414: base(BoundKind.IndexerAccess, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 7465: base(BoundKind.ImplicitIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || argument.HasErrors() || lengthOrCountAccess.HasErrors() || receiverPlaceholder.HasErrors() || indexerOrSliceAccess.HasErrors() || argumentPlaceholders.HasErrors()) 7514: base(BoundKind.InlineArrayAccess, syntax, type, hasErrors || expression.HasErrors() || argument.HasErrors()) 7555: base(BoundKind.DynamicIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || arguments.HasErrors()) 7595: base(BoundKind.Lambda, syntax, type, hasErrors || unboundLambda.HasErrors() || body.HasErrors()) 7635: base(BoundKind.UnboundLambda, syntax, null, hasErrors) 7646: base(BoundKind.UnboundLambda, syntax, null) 7679: base(BoundKind.QueryClause, syntax, type, hasErrors || value.HasErrors() || operation.HasErrors() || cast.HasErrors() || unoptimizedForm.HasErrors()) 7720: base(BoundKind.TypeOrInstanceInitializers, syntax, statements, hasErrors || statements.HasErrors()) 7746: base(BoundKind.NameOfOperator, syntax, type, hasErrors || argument.HasErrors()) 7778protected BoundInterpolatedStringBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false) 7795: base(BoundKind.UnconvertedInterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7821: base(BoundKind.InterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7849: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type, hasErrors) 7854: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type) 7877: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type, hasErrors) 7886: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type) 7915: base(BoundKind.StringInsert, syntax, null, hasErrors || value.HasErrors() || alignment.HasErrors() || format.HasErrors()) 7950: base(BoundKind.IsPatternExpression, syntax, type, hasErrors || expression.HasErrors() || pattern.HasErrors() || reachabilityDecisionDag.HasErrors()) 7991protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors) 8002protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType) 8020: base(BoundKind.ConstantPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8057: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType, hasErrors) 8070: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType) 8096protected BoundObjectPattern(BoundKind kind, SyntaxNode syntax, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8114: base(BoundKind.DeclarationPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || variableAccess.HasErrors()) 8150: base(BoundKind.RecursivePattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || deconstruction.HasErrors() || properties.HasErrors() || variableAccess.HasErrors()) 8191: base(BoundKind.ListPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || subpatterns.HasErrors() || lengthAccess.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || variableAccess.HasErrors()) 8235: base(BoundKind.SlicePattern, syntax, inputType, narrowedType, hasErrors || pattern.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors()) 8274: base(BoundKind.ITuplePattern, syntax, inputType, narrowedType, hasErrors || subpatterns.HasErrors()) 8313protected BoundSubpattern(BoundKind kind, SyntaxNode syntax, BoundPattern pattern, bool hasErrors = false) 8328: base(BoundKind.PositionalSubpattern, syntax, pattern, hasErrors || pattern.HasErrors()) 8356: base(BoundKind.PropertySubpattern, syntax, pattern, hasErrors || member.HasErrors() || pattern.HasErrors()) 8386: base(BoundKind.PropertySubpatternMember, syntax, hasErrors || receiver.HasErrors()) 8418: base(BoundKind.TypePattern, syntax, inputType, narrowedType, hasErrors || declaredType.HasErrors()) 8454: base(BoundKind.BinaryPattern, syntax, inputType, narrowedType, hasErrors || left.HasErrors() || right.HasErrors()) 8493: base(BoundKind.NegatedPattern, syntax, inputType, narrowedType, hasErrors || negated.HasErrors()) 8527: base(BoundKind.RelationalPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8566: base(BoundKind.DiscardExpression, syntax, type, hasErrors) 8573: base(BoundKind.DiscardExpression, syntax, type) 8601: base(BoundKind.ThrowExpression, syntax, type, hasErrors || expression.HasErrors()) 8628protected VariablePendingInference(BoundKind kind, SyntaxNode syntax, Symbol variableSymbol, BoundExpression? receiverOpt, bool hasErrors = false) 8646: base(BoundKind.OutVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8672: base(BoundKind.DeconstructionVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8698: base(BoundKind.OutDeconstructVarPendingInference, syntax, null, hasErrors) 8705: base(BoundKind.OutDeconstructVarPendingInference, syntax, null) 8732protected BoundMethodBodyBase(BoundKind kind, SyntaxNode syntax, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8746: base(BoundKind.NonConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 8769: base(BoundKind.ConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || initializer.HasErrors() || blockBody.HasErrors() || expressionBody.HasErrors()) 8799: base(BoundKind.ExpressionWithNullability, syntax, type, hasErrors || expression.HasErrors()) 8830: base(BoundKind.WithExpression, syntax, type, hasErrors || receiver.HasErrors() || initializerExpression.HasErrors()) 8870case BoundKind.FieldEqualsValue: 8872case BoundKind.PropertyEqualsValue: 8874case BoundKind.ParameterEqualsValue: 8876case BoundKind.GlobalStatementInitializer: 8878case BoundKind.ValuePlaceholder: 8880case BoundKind.CapturedReceiverPlaceholder: 8882case BoundKind.DeconstructValuePlaceholder: 8884case BoundKind.TupleOperandPlaceholder: 8886case BoundKind.AwaitableValuePlaceholder: 8888case BoundKind.DisposableValuePlaceholder: 8890case BoundKind.ObjectOrCollectionValuePlaceholder: 8892case BoundKind.ImplicitIndexerValuePlaceholder: 8894case BoundKind.ImplicitIndexerReceiverPlaceholder: 8896case BoundKind.ListPatternReceiverPlaceholder: 8898case BoundKind.ListPatternIndexPlaceholder: 8900case BoundKind.SlicePatternReceiverPlaceholder: 8902case BoundKind.SlicePatternRangePlaceholder: 8904case BoundKind.Dup: 8906case BoundKind.PassByCopy: 8908case BoundKind.BadExpression: 8910case BoundKind.BadStatement: 8912case BoundKind.ExtractedFinallyBlock: 8914case BoundKind.TypeExpression: 8916case BoundKind.TypeOrValueExpression: 8918case BoundKind.NamespaceExpression: 8920case BoundKind.UnaryOperator: 8922case BoundKind.IncrementOperator: 8924case BoundKind.AddressOfOperator: 8926case BoundKind.UnconvertedAddressOfOperator: 8928case BoundKind.FunctionPointerLoad: 8930case BoundKind.PointerIndirectionOperator: 8932case BoundKind.PointerElementAccess: 8934case BoundKind.FunctionPointerInvocation: 8936case BoundKind.RefTypeOperator: 8938case BoundKind.MakeRefOperator: 8940case BoundKind.RefValueOperator: 8942case BoundKind.FromEndIndexExpression: 8944case BoundKind.RangeExpression: 8946case BoundKind.BinaryOperator: 8948case BoundKind.TupleBinaryOperator: 8950case BoundKind.UserDefinedConditionalLogicalOperator: 8952case BoundKind.CompoundAssignmentOperator: 8954case BoundKind.AssignmentOperator: 8956case BoundKind.DeconstructionAssignmentOperator: 8958case BoundKind.NullCoalescingOperator: 8960case BoundKind.NullCoalescingAssignmentOperator: 8962case BoundKind.UnconvertedConditionalOperator: 8964case BoundKind.ConditionalOperator: 8966case BoundKind.ArrayAccess: 8968case BoundKind.RefArrayAccess: 8970case BoundKind.ArrayLength: 8972case BoundKind.AwaitableInfo: 8974case BoundKind.AwaitExpression: 8976case BoundKind.TypeOfOperator: 8978case BoundKind.BlockInstrumentation: 8980case BoundKind.MethodDefIndex: 8982case BoundKind.LocalId: 8984case BoundKind.ParameterId: 8986case BoundKind.StateMachineInstanceId: 8988case BoundKind.MaximumMethodDefIndex: 8990case BoundKind.InstrumentationPayloadRoot: 8992case BoundKind.ThrowIfModuleCancellationRequested: 8994case BoundKind.ModuleCancellationTokenExpression: 8996case BoundKind.ModuleVersionId: 8998case BoundKind.ModuleVersionIdString: 9000case BoundKind.SourceDocumentIndex: 9002case BoundKind.MethodInfo: 9004case BoundKind.FieldInfo: 9006case BoundKind.DefaultLiteral: 9008case BoundKind.DefaultExpression: 9010case BoundKind.IsOperator: 9012case BoundKind.AsOperator: 9014case BoundKind.SizeOfOperator: 9016case BoundKind.Conversion: 9018case BoundKind.ReadOnlySpanFromArray: 9020case BoundKind.ArgList: 9022case BoundKind.ArgListOperator: 9024case BoundKind.FixedLocalCollectionInitializer: 9026case BoundKind.SequencePoint: 9028case BoundKind.SequencePointWithSpan: 9030case BoundKind.SavePreviousSequencePoint: 9032case BoundKind.RestorePreviousSequencePoint: 9034case BoundKind.StepThroughSequencePoint: 9036case BoundKind.Block: 9038case BoundKind.Scope: 9040case BoundKind.StateMachineScope: 9042case BoundKind.LocalDeclaration: 9044case BoundKind.MultipleLocalDeclarations: 9046case BoundKind.UsingLocalDeclarations: 9048case BoundKind.LocalFunctionStatement: 9050case BoundKind.NoOpStatement: 9052case BoundKind.ReturnStatement: 9054case BoundKind.YieldReturnStatement: 9056case BoundKind.YieldBreakStatement: 9058case BoundKind.ThrowStatement: 9060case BoundKind.ExpressionStatement: 9062case BoundKind.BreakStatement: 9064case BoundKind.ContinueStatement: 9066case BoundKind.SwitchStatement: 9068case BoundKind.SwitchDispatch: 9070case BoundKind.IfStatement: 9072case BoundKind.DoStatement: 9074case BoundKind.WhileStatement: 9076case BoundKind.ForStatement: 9078case BoundKind.ForEachStatement: 9080case BoundKind.ForEachDeconstructStep: 9082case BoundKind.UsingStatement: 9084case BoundKind.FixedStatement: 9086case BoundKind.LockStatement: 9088case BoundKind.TryStatement: 9090case BoundKind.CatchBlock: 9092case BoundKind.Literal: 9094case BoundKind.Utf8String: 9096case BoundKind.ThisReference: 9098case BoundKind.PreviousSubmissionReference: 9100case BoundKind.HostObjectMemberReference: 9102case BoundKind.BaseReference: 9104case BoundKind.Local: 9106case BoundKind.PseudoVariable: 9108case BoundKind.RangeVariable: 9110case BoundKind.Parameter: 9112case BoundKind.LabelStatement: 9114case BoundKind.GotoStatement: 9116case BoundKind.LabeledStatement: 9118case BoundKind.Label: 9120case BoundKind.StatementList: 9122case BoundKind.ConditionalGoto: 9124case BoundKind.SwitchExpressionArm: 9126case BoundKind.UnconvertedSwitchExpression: 9128case BoundKind.ConvertedSwitchExpression: 9130case BoundKind.DecisionDag: 9132case BoundKind.EvaluationDecisionDagNode: 9134case BoundKind.TestDecisionDagNode: 9136case BoundKind.WhenDecisionDagNode: 9138case BoundKind.LeafDecisionDagNode: 9140case BoundKind.DagTemp: 9142case BoundKind.DagTypeTest: 9144case BoundKind.DagNonNullTest: 9146case BoundKind.DagExplicitNullTest: 9148case BoundKind.DagValueTest: 9150case BoundKind.DagRelationalTest: 9152case BoundKind.DagDeconstructEvaluation: 9154case BoundKind.DagTypeEvaluation: 9156case BoundKind.DagFieldEvaluation: 9158case BoundKind.DagPropertyEvaluation: 9160case BoundKind.DagIndexEvaluation: 9162case BoundKind.DagIndexerEvaluation: 9164case BoundKind.DagSliceEvaluation: 9166case BoundKind.DagAssignmentEvaluation: 9168case BoundKind.SwitchSection: 9170case BoundKind.SwitchLabel: 9172case BoundKind.SequencePointExpression: 9174case BoundKind.Sequence: 9176case BoundKind.SpillSequence: 9178case BoundKind.DynamicMemberAccess: 9180case BoundKind.DynamicInvocation: 9182case BoundKind.ConditionalAccess: 9184case BoundKind.LoweredConditionalAccess: 9186case BoundKind.ConditionalReceiver: 9188case BoundKind.ComplexConditionalReceiver: 9190case BoundKind.MethodGroup: 9192case BoundKind.PropertyGroup: 9194case BoundKind.Call: 9196case BoundKind.EventAssignmentOperator: 9198case BoundKind.Attribute: 9200case BoundKind.UnconvertedObjectCreationExpression: 9202case BoundKind.ObjectCreationExpression: 9204case BoundKind.UnconvertedCollectionExpression: 9206case BoundKind.CollectionExpression: 9208case BoundKind.CollectionExpressionSpreadExpressionPlaceholder: 9210case BoundKind.CollectionExpressionSpreadElement: 9212case BoundKind.TupleLiteral: 9214case BoundKind.ConvertedTupleLiteral: 9216case BoundKind.DynamicObjectCreationExpression: 9218case BoundKind.NoPiaObjectCreationExpression: 9220case BoundKind.ObjectInitializerExpression: 9222case BoundKind.ObjectInitializerMember: 9224case BoundKind.DynamicObjectInitializerMember: 9226case BoundKind.CollectionInitializerExpression: 9228case BoundKind.CollectionElementInitializer: 9230case BoundKind.DynamicCollectionElementInitializer: 9232case BoundKind.ImplicitReceiver: 9234case BoundKind.AnonymousObjectCreationExpression: 9236case BoundKind.AnonymousPropertyDeclaration: 9238case BoundKind.NewT: 9240case BoundKind.DelegateCreationExpression: 9242case BoundKind.ArrayCreation: 9244case BoundKind.ArrayInitialization: 9246case BoundKind.StackAllocArrayCreation: 9248case BoundKind.ConvertedStackAllocExpression: 9250case BoundKind.FieldAccess: 9252case BoundKind.HoistedFieldAccess: 9254case BoundKind.PropertyAccess: 9256case BoundKind.EventAccess: 9258case BoundKind.IndexerAccess: 9260case BoundKind.ImplicitIndexerAccess: 9262case BoundKind.InlineArrayAccess: 9264case BoundKind.DynamicIndexerAccess: 9266case BoundKind.Lambda: 9268case BoundKind.UnboundLambda: 9270case BoundKind.QueryClause: 9272case BoundKind.TypeOrInstanceInitializers: 9274case BoundKind.NameOfOperator: 9276case BoundKind.UnconvertedInterpolatedString: 9278case BoundKind.InterpolatedString: 9280case BoundKind.InterpolatedStringHandlerPlaceholder: 9282case BoundKind.InterpolatedStringArgumentPlaceholder: 9284case BoundKind.StringInsert: 9286case BoundKind.IsPatternExpression: 9288case BoundKind.ConstantPattern: 9290case BoundKind.DiscardPattern: 9292case BoundKind.DeclarationPattern: 9294case BoundKind.RecursivePattern: 9296case BoundKind.ListPattern: 9298case BoundKind.SlicePattern: 9300case BoundKind.ITuplePattern: 9302case BoundKind.PositionalSubpattern: 9304case BoundKind.PropertySubpattern: 9306case BoundKind.PropertySubpatternMember: 9308case BoundKind.TypePattern: 9310case BoundKind.BinaryPattern: 9312case BoundKind.NegatedPattern: 9314case BoundKind.RelationalPattern: 9316case BoundKind.DiscardExpression: 9318case BoundKind.ThrowExpression: 9320case BoundKind.OutVariablePendingInference: 9322case BoundKind.DeconstructionVariablePendingInference: 9324case BoundKind.OutDeconstructVarPendingInference: 9326case BoundKind.NonConstructorMethodBody: 9328case BoundKind.ConstructorMethodBody: 9330case BoundKind.ExpressionWithNullability: 9332case BoundKind.WithExpression:
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (3)
315if (node.Expression.Kind == BoundKind.AwaitExpression) 319else if (node.Expression.Kind == BoundKind.AssignmentOperator) 322if (expression.Right.Kind == BoundKind.AwaitExpression)
Lowering\ClosureConversion\ClosureConversion.Analysis.cs (6)
111case BoundKind.SequencePoint: 115case BoundKind.SequencePointWithSpan: 119case BoundKind.Block: 120case BoundKind.StatementList: 121case BoundKind.FieldEqualsValue: 124case BoundKind.GlobalStatementInitializer:
Lowering\ClosureConversion\ClosureConversion.cs (3)
1109if (visited.Kind != BoundKind.Call) 1336if (node.Argument.Kind == BoundKind.Lambda) 1383receiver.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) 813if (operand.Kind == BoundKind.FieldAccess) 913if (node.Argument.Kind != BoundKind.MethodGroup) 997if (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 (43)
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.AwaitableValuePlaceholder: 1057case BoundKind.EventAccess: 1071case BoundKind.FieldAccess: 1082case BoundKind.Sequence: 1085case BoundKind.AssignmentOperator: 1088case BoundKind.ConditionalOperator: 1091case BoundKind.Call: 1094case BoundKind.PropertyAccess: 1097case BoundKind.IndexerAccess: 1100case BoundKind.ImplicitIndexerAccess: 1103case BoundKind.ImplicitIndexerReceiverPlaceholder: 1107case BoundKind.InlineArrayAccess: 1110case BoundKind.ImplicitIndexerValuePlaceholder: 1115case BoundKind.ListPatternReceiverPlaceholder: 1116case BoundKind.SlicePatternReceiverPlaceholder: 1117case BoundKind.SlicePatternRangePlaceholder: 1118case BoundKind.ListPatternIndexPlaceholder: 1121case 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)
523if ((loweredInput.Kind == BoundKind.Local || loweredInput.Kind == BoundKind.Parameter) 648if (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: 105case BoundKind.DynamicIndexerAccess: 116case BoundKind.DynamicMemberAccess: 125case BoundKind.EventAccess: 185case BoundKind.DynamicIndexerAccess: 186case BoundKind.DynamicMemberAccess: 189case BoundKind.PropertyAccess: 209case BoundKind.IndexerAccess: 230case BoundKind.Local: 231case BoundKind.Parameter: 232case BoundKind.FieldAccess: 242case BoundKind.DiscardExpression: 247case BoundKind.Sequence: 253if (sequence.Value.Kind == BoundKind.IndexerAccess)
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (13)
291if (loweredRight.Kind == BoundKind.Local || loweredRight.Kind == BoundKind.Parameter) 303if (loweredRight.Kind == BoundKind.Local || loweredRight.Kind == BoundKind.Parameter) 490if (loweredLeft.Kind == BoundKind.ArrayLength && loweredRight.IsDefaultValue()) 505if (loweredRight.Kind == BoundKind.ArrayLength && loweredLeft.IsDefaultValue()) 520if (loweredLeft.Kind == BoundKind.ArrayLength && loweredRight.IsDefaultValue()) 524else if (loweredRight.Kind == BoundKind.ArrayLength && loweredLeft.IsDefaultValue()) 659if (constantLeft == null && loweredLeft.Kind != BoundKind.Local && loweredLeft.Kind != BoundKind.Parameter) 720if (expression.Kind == BoundKind.Conversion) 1626if (nonNullRight != null && nonNullRight.ConstantValueOpt != null && left.Kind == BoundKind.Sequence) 1629if (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); 71case BoundKind.DynamicMemberAccess: 572case BoundKind.Parameter: 574goto case BoundKind.Local; 576case BoundKind.Local: 580case BoundKind.PassByCopy: 582case BoundKind.Conversion: 1621if (argument.Kind == BoundKind.Local) 1710if (argument.Kind == BoundKind.Local)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (40)
99if (node.Left.Kind == BoundKind.DynamicMemberAccess && 289Debug.Assert(receiverOpt.Kind != BoundKind.TypeExpression); 611Debug.Assert(receiver.Kind != BoundKind.TypeExpression); 723case BoundKind.PropertyAccess: 738case BoundKind.IndexerAccess: 750case BoundKind.ImplicitIndexerAccess: 763case BoundKind.FieldAccess: 780case BoundKind.ArrayAccess: 808case BoundKind.InlineArrayAccess: 812case BoundKind.DynamicMemberAccess: 815case BoundKind.DynamicIndexerAccess: 818case BoundKind.Local: 819case BoundKind.Parameter: 820case BoundKind.ThisReference: // a special kind of parameter 821case BoundKind.PseudoVariable: 829case BoundKind.Call: 833case BoundKind.FunctionPointerInvocation: 837case BoundKind.ConditionalOperator: 841case BoundKind.AssignmentOperator: 845case BoundKind.PointerElementAccess: 846case BoundKind.PointerIndirectionOperator: 847case BoundKind.RefValueOperator: 850case BoundKind.EventAccess: 973case BoundKind.ThisReference: 976case BoundKind.BaseReference: 979case BoundKind.Literal: 983case BoundKind.Parameter: 988case BoundKind.Local: 991case BoundKind.TypeExpression: 1015case BoundKind.Parameter: 1017goto case BoundKind.Local; 1018case BoundKind.Local: 1019case BoundKind.Lambda: 1020case BoundKind.ThisReference: 1021case BoundKind.BaseReference: 1022case BoundKind.Literal: 1025case BoundKind.Conversion: 1030case BoundKind.PassByCopy: 1033case BoundKind.ObjectCreationExpression: 1045case BoundKind.Call:
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (4)
243case BoundKind.Sequence: 247case BoundKind.Conversion: 1307if (operand.Kind == BoundKind.Sequence) 1310if (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 (7)
50case BoundKind.AwaitExpression: 53case BoundKind.AssignmentOperator: 57case BoundKind.CompoundAssignmentOperator: 60case BoundKind.Call: 71case BoundKind.DynamicInvocation: 75case BoundKind.ConditionalAccess: 78case BoundKind.IncrementOperator:
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)
536if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 578if (makeOffsetInput.ConstantValueOpt is null && lengthAccess.Kind is not BoundKind.ArrayLength) 839if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 990if ((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)
103Debug.Assert(!_inExpressionLambda && lhsRead.Kind != BoundKind.PropertyAccess); 107if (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)
46if (node.Operand.Kind == BoundKind.BinaryOperator) 322if (loweredOperand.Kind == BoundKind.Sequence) 325if (seq.Value.Kind == BoundKind.ConditionalOperator) 636case BoundKind.Local: 639case BoundKind.Parameter: 643case BoundKind.FieldAccess: 1023case BoundKind.PropertyAccess: 1027case BoundKind.DynamicMemberAccess: 1031case BoundKind.IndexerAccess: 1035case 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)
226if (loweredReceiver.Kind == BoundKind.TypeExpression) 673int discardCount = loweredArguments.Count(a => a.Kind == BoundKind.DiscardExpression);
Lowering\MethodToClassRewriter.cs (6)
259if (originalLeft.Kind != BoundKind.Local) 273Debug.Assert(originalRight.Kind != BoundKind.ConvertedStackAllocExpression); 295if (rewrittenLeft.Kind != BoundKind.Local && originalRight.Kind == BoundKind.ConvertedStackAllocExpression) 377return originalReceiver is { Kind: BoundKind.BaseReference } && 378rewrittenReceiver 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: 885case BoundKind.Local: 886case BoundKind.Parameter: 890case BoundKind.FieldAccess: 899case BoundKind.ArrayAccess:
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
316if (node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.ThisReference)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (3)
417if (statement.Kind == BoundKind.Block) 421if (rewrittenStatements.Length == 1 && rewrittenStatements[0].Kind == BoundKind.StateMachineScope) 620if (node.Left.Kind != BoundKind.Local)
Lowering\StateMachineRewriter\RefInitializationHoister.cs (8)
149case BoundKind.ArrayAccess: 186case BoundKind.FieldAccess: 216if (receiver.Kind != BoundKind.ThisReference && !isFieldOfStruct) 225case BoundKind.ThisReference: 226case BoundKind.BaseReference: 227case BoundKind.DefaultExpression: 230case BoundKind.Call: 251case BoundKind.ConditionalOperator:
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)
1089case BoundKind.DefaultLiteral: 1090case BoundKind.DefaultExpression: 1092case BoundKind.ObjectCreationExpression: 1094case BoundKind.Conversion:
Symbols\Source\SourceComplexParameterSymbol.cs (1)
407if (convertedExpression.ConstantValueOpt == null && convertedExpression.Kind == BoundKind.Conversion &&
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (19)
Semantics\ConstantTests.cs (4)
592var actual = ParseAndGetConstantFoldingSteps(source, node => node.Kind == BoundKind.BinaryOperator); 641var actual = ParseAndGetConstantFoldingSteps(source, node => node.Kind == BoundKind.UnaryOperator); 1448return ParseAndGetConstantFoldingSteps(source, node => node.Kind != BoundKind.Literal && node.Kind != BoundKind.Local);
Semantics\FieldInitializerBindingTests.cs (1)
274Assert.Equal(BoundKind.FieldEqualsValue, boundInit.Kind);
Semantics\SemanticAnalyzerTests.cs (14)
1332Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1335Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1360Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1363Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1388Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1391Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1425Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1428Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1459Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1462Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1494Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1497Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind); 1529Assert.Equal(BoundKind.LocalDeclaration, block.Statements[0].Kind); 1532Assert.Equal(BoundKind.ObjectCreationExpression, decl.InitializerOpt.Kind);