2403 references to BoundKind
Microsoft.CodeAnalysis.CSharp (2384)
Binder\Binder.cs (1)
886RoslynDebug.Assert(statement.Kind != BoundKind.StatementList);
Binder\Binder.ValueChecks.cs (229)
514case BoundKind.PropertyGroup: 524case BoundKind.Local: 528case BoundKind.OutVariablePendingInference: 529case BoundKind.OutDeconstructVarPendingInference: 533case BoundKind.DiscardExpression: 537case BoundKind.PropertyAccess: 559case BoundKind.IndexerAccess: 563case BoundKind.ImplicitIndexerAccess: 581case BoundKind.UnconvertedObjectCreationExpression: 582case BoundKind.UnconvertedCollectionExpression: 583case BoundKind.TupleLiteral: 590case BoundKind.PointerIndirectionOperator: 598case BoundKind.PointerElementAccess: 613if (expr.Kind == BoundKind.MethodGroup && valueKind != BindValueKind.RValueOrMethodGroup) 639if ((object)otherSymbol != null && receiver?.Kind == BoundKind.TypeOrValueExpression) 678case BoundKind.TypeOrValueExpression: 679case BoundKind.QueryClause when ((BoundQueryClause)expression).Value.Kind == BoundKind.TypeOrValueExpression: 711case BoundKind.PropertyAccess: 712case BoundKind.IndexerAccess: 713case BoundKind.ImplicitIndexerAccess when ((BoundImplicitIndexerAccess)expr).IndexerOrSliceAccess.Kind == BoundKind.IndexerAccess: 716case BoundKind.EventAccess: 736case BoundKind.NamespaceExpression: 741case BoundKind.TypeExpression: 746case BoundKind.Lambda: 747case BoundKind.UnboundLambda: 752case BoundKind.UnconvertedAddressOfOperator: 757case BoundKind.MethodGroup when valueKind == BindValueKind.AddressOf: 762case BoundKind.MethodGroup: 768case BoundKind.RangeVariable: 784case BoundKind.Conversion: 795case BoundKind.ArrayAccess: 799case BoundKind.PointerIndirectionOperator: 801case BoundKind.RefValueOperator: 803case BoundKind.DynamicMemberAccess: 804case BoundKind.DynamicIndexerAccess: 805case BoundKind.DynamicObjectInitializerMember: 817case BoundKind.PointerElementAccess: 834case BoundKind.Parameter: 838case BoundKind.Local: 842case BoundKind.ThisReference: 870case BoundKind.ImplicitReceiver: 871case BoundKind.ObjectOrCollectionValuePlaceholder: 875case BoundKind.Call: 879case BoundKind.FunctionPointerInvocation: 887case BoundKind.ImplicitIndexerAccess: 901case BoundKind.InlineArrayAccess: 923case BoundKind.ImplicitIndexerReceiverPlaceholder: 926case BoundKind.DeconstructValuePlaceholder: 929case BoundKind.ConditionalOperator: 949case BoundKind.FieldAccess: 955case BoundKind.AssignmentOperator: 966case BoundKind.ValuePlaceholder: 1018case BoundKind.NamespaceExpression: 1021case BoundKind.TypeExpression: 1641return Flags.Includes(BinderFlags.ObjectInitializerMember) && receiver.Kind == BoundKind.ObjectOrCollectionValuePlaceholder || 1805ReportDiagnosticsIfObsolete(diagnostics, setMethod, node, receiver?.Kind == BoundKind.BaseReference); 1855ReportDiagnosticsIfObsolete(diagnostics, getMethod, node, receiver?.Kind == BoundKind.BaseReference); 1938if (receiverOpt?.Kind == BoundKind.BaseReference && member.IsAbstract) 2413if (argument.Kind == BoundKind.ArgListOperator) 3453case BoundKind.ArrayAccess: 3454case BoundKind.PointerIndirectionOperator: 3455case BoundKind.PointerElementAccess: 3459case BoundKind.RefValueOperator: 3465case BoundKind.DiscardExpression: 3469case BoundKind.DynamicMemberAccess: 3470case BoundKind.DynamicIndexerAccess: 3476case BoundKind.Parameter: 3479case BoundKind.Local: 3482case BoundKind.CapturedReceiverPlaceholder: 3486case BoundKind.ThisReference: 3491case BoundKind.ConditionalOperator: 3504case BoundKind.FieldAccess: 3507case BoundKind.EventAccess: 3526case BoundKind.Call: 3548case BoundKind.FunctionPointerInvocation: 3570case BoundKind.IndexerAccess: 3587case BoundKind.ImplicitIndexerAccess: 3635case BoundKind.InlineArrayAccess: 3663case BoundKind.PropertyAccess: 3678case BoundKind.AssignmentOperator: 3689case BoundKind.Conversion: 3696case BoundKind.UnaryOperator: 3703case BoundKind.BinaryOperator: 3710case BoundKind.UserDefinedConditionalLogicalOperator: 3716case BoundKind.CompoundAssignmentOperator: 3723case BoundKind.IncrementOperator: 3775case BoundKind.ArrayAccess: 3776case BoundKind.PointerIndirectionOperator: 3777case BoundKind.PointerElementAccess: 3781case BoundKind.RefValueOperator: 3792case BoundKind.DiscardExpression: 3796case BoundKind.DynamicMemberAccess: 3797case BoundKind.DynamicIndexerAccess: 3803case BoundKind.Parameter: 3807case BoundKind.Local: 3811case BoundKind.CapturedReceiverPlaceholder: 3819case BoundKind.ThisReference: 3824case BoundKind.ConditionalOperator: 3836case BoundKind.FieldAccess: 3840case BoundKind.EventAccess: 3850case BoundKind.Call: 3876case BoundKind.IndexerAccess: 3902case BoundKind.ImplicitIndexerAccess: 3963case BoundKind.InlineArrayAccess: 3995case BoundKind.FunctionPointerInvocation: 4019case BoundKind.PropertyAccess: 4044case BoundKind.AssignmentOperator: 4061case BoundKind.Conversion: 4073case BoundKind.UnaryOperator: 4080case BoundKind.BinaryOperator: 4087case BoundKind.UserDefinedConditionalLogicalOperator: 4093case BoundKind.CompoundAssignmentOperator: 4100case BoundKind.IncrementOperator: 4107case BoundKind.ThrowExpression: 4170case BoundKind.ThisReference: 4174case BoundKind.DefaultLiteral: 4175case BoundKind.DefaultExpression: 4176case BoundKind.Utf8String: 4180case BoundKind.Parameter: 4183case BoundKind.FromEndIndexExpression: 4188case BoundKind.TupleLiteral: 4189case BoundKind.ConvertedTupleLiteral: 4193case BoundKind.MakeRefOperator: 4194case BoundKind.RefValueOperator: 4200case BoundKind.DiscardExpression: 4203case BoundKind.DeconstructValuePlaceholder: 4204case BoundKind.InterpolatedStringArgumentPlaceholder: 4205case BoundKind.AwaitableValuePlaceholder: 4208case BoundKind.Local: 4211case BoundKind.CapturedReceiverPlaceholder: 4216case BoundKind.StackAllocArrayCreation: 4217case BoundKind.ConvertedStackAllocExpression: 4220case BoundKind.ConditionalOperator: 4235case BoundKind.NullCoalescingOperator: 4241case BoundKind.FieldAccess: 4254case BoundKind.Call: 4270case BoundKind.FunctionPointerInvocation: 4285case BoundKind.IndexerAccess: 4302case BoundKind.ImplicitIndexerAccess: 4343case BoundKind.InlineArrayAccess: 4363case BoundKind.PropertyAccess: 4378case BoundKind.ObjectCreationExpression: 4403case BoundKind.NewT: 4418case BoundKind.WithExpression: 4424case BoundKind.UnaryOperator: 4442case BoundKind.Conversion: 4495case BoundKind.AssignmentOperator: 4502case BoundKind.NullCoalescingAssignmentOperator: 4505case BoundKind.IncrementOperator: 4533case BoundKind.CompoundAssignmentOperator: 4562case BoundKind.BinaryOperator: 4582case BoundKind.RangeExpression: 4588case BoundKind.UserDefinedConditionalLogicalOperator: 4602case BoundKind.QueryClause: 4605case BoundKind.RangeVariable: 4608case BoundKind.ObjectInitializerExpression: 4612case BoundKind.CollectionInitializerExpression: 4616case BoundKind.CollectionElementInitializer: 4620case BoundKind.ObjectInitializerMember: 4626case BoundKind.ImplicitReceiver: 4627case BoundKind.ObjectOrCollectionValuePlaceholder: 4632case BoundKind.InterpolatedStringHandlerPlaceholder: 4637case BoundKind.DisposableValuePlaceholder: 4642case BoundKind.PointerElementAccess: 4643case BoundKind.PointerIndirectionOperator: 4647case BoundKind.AsOperator: 4648case BoundKind.AwaitExpression: 4649case BoundKind.ConditionalAccess: 4650case BoundKind.ConditionalReceiver: 4651case BoundKind.ArrayAccess: 4655case BoundKind.ConvertedSwitchExpression: 4656case BoundKind.UnconvertedSwitchExpression: 4751if (expr.Kind == BoundKind.AssignmentOperator) 4901case BoundKind.ThisReference: 4906case BoundKind.DefaultLiteral: 4907case BoundKind.DefaultExpression: 4908case BoundKind.Utf8String: 4912case BoundKind.Parameter: 4915case BoundKind.TupleLiteral: 4916case BoundKind.ConvertedTupleLiteral: 4920case BoundKind.MakeRefOperator: 4921case BoundKind.RefValueOperator: 4925case BoundKind.DiscardExpression: 4929case BoundKind.DeconstructValuePlaceholder: 4930case BoundKind.AwaitableValuePlaceholder: 4931case BoundKind.InterpolatedStringArgumentPlaceholder: 4939case BoundKind.Local: 4948case BoundKind.CapturedReceiverPlaceholder: 4953case BoundKind.StackAllocArrayCreation: 4954case BoundKind.ConvertedStackAllocExpression: 4962case BoundKind.UnconvertedConditionalOperator: 4970case BoundKind.ConditionalOperator: 4986case BoundKind.NullCoalescingOperator: 4991case BoundKind.FieldAccess: 5004case BoundKind.Call: 5025case BoundKind.FunctionPointerInvocation: 5044case BoundKind.IndexerAccess: 5065case BoundKind.ImplicitIndexerAccess: 5116case BoundKind.InlineArrayAccess: 5140case BoundKind.PropertyAccess: 5159case BoundKind.ObjectCreationExpression: 5195case BoundKind.NewT: 5216case BoundKind.WithExpression: 5227case BoundKind.UnaryOperator: 5249case BoundKind.FromEndIndexExpression: 5253case BoundKind.Conversion: 5317case BoundKind.AssignmentOperator: 5321case BoundKind.NullCoalescingAssignmentOperator: 5325case BoundKind.IncrementOperator: 5357case BoundKind.CompoundAssignmentOperator: 5388case BoundKind.BinaryOperator: 5417case BoundKind.RangeExpression: 5427case BoundKind.UserDefinedConditionalLogicalOperator: 5445case BoundKind.QueryClause: 5449case BoundKind.RangeVariable: 5453case BoundKind.ObjectInitializerExpression: 5459case BoundKind.CollectionInitializerExpression: 5465case BoundKind.CollectionElementInitializer: 5469case BoundKind.PointerElementAccess: 5473case BoundKind.PointerIndirectionOperator: 5477case BoundKind.AsOperator: 5478case BoundKind.AwaitExpression: 5479case BoundKind.ConditionalAccess: 5480case BoundKind.ConditionalReceiver: 5481case BoundKind.ArrayAccess: 5485case BoundKind.UnconvertedSwitchExpression: 5486case BoundKind.ConvertedSwitchExpression:
Binder\Binder_Attributes.cs (5)
814case BoundKind.FieldAccess: 819case BoundKind.PropertyAccess: 864case BoundKind.Conversion: 866case BoundKind.TypeOfOperator: 868case BoundKind.ArrayCreation:
Binder\Binder_Await.cs (3)
78if (expression.Kind != BoundKind.Call || 340if (getAwaiterCall.Kind != BoundKind.Call) 447if (getAwaiterGetResultCall.Kind != BoundKind.Call)
Binder\Binder_Conversions.cs (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) 2184Debug.Assert(source.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda); 2191if (source.Kind == BoundKind.UnboundLambda && 2200source.Kind == BoundKind.MethodGroup && 2552if (node.Kind != BoundKind.MethodGroup) 2695if (receiverOpt.Kind == BoundKind.QueryClause) 2797while (receiverOpt.Kind == BoundKind.QueryClause) 2802return receiverOpt.Kind == BoundKind.TypeExpression; 2814case BoundKind.ThisReference: 2815case BoundKind.HostObjectMemberReference: 2816case 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)
205BoundKind exprKind = expr.Kind; 207if (expr.HasAnyErrors && ((object)resultType != null || exprKind == BoundKind.UnboundLambda || exprKind == BoundKind.DefaultLiteral)) 212if (exprKind == BoundKind.BadExpression) 259if (valueOrType.Kind == BoundKind.TypeExpression) 416Debug.Assert(expr.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup); 546if (expr.Kind == BoundKind.ArgListOperator) 588if (IsEarlyAttributeBinder && result.Kind == BoundKind.MethodGroup && (!IsInsideNameof || EnclosingNameofArgument != node)) 2774if (operand.Kind == BoundKind.UnboundLambda) 2823case BoundKind.MethodGroup: 2833case BoundKind.TupleLiteral: 2857case BoundKind.StackAllocArrayCreation: 2863case BoundKind.UnconvertedConditionalOperator when operand.Type is null: 2864case BoundKind.UnconvertedSwitchExpression when operand.Type is null: 2869case BoundKind.UnconvertedCollectionExpression: 2874case BoundKind.UnconvertedAddressOfOperator: 3120case BoundKind.PropertyAccess: 3121case BoundKind.IndexerAccess: 3511else if (argument.Kind == BoundKind.OutVariablePendingInference) 3515else if (argument.Kind == BoundKind.OutDeconstructVarPendingInference) 3519else if (argument.Kind == BoundKind.DiscardExpression && !argument.HasExpressionType()) 3555(BoundKind.OutVariablePendingInference or BoundKind.OutDeconstructVarPendingInference or BoundKind.DiscardExpression or BoundKind.ArgListOperator)); 5441else if (argument.Kind == BoundKind.MethodGroup) 5878if (boundMember.Kind == BoundKind.PropertyGroup) 5920BoundKind boundMemberKind = boundMember.Kind; 5932case BoundKind.FieldAccess: 5949case BoundKind.EventAccess: 5952case BoundKind.PropertyAccess: 5956case BoundKind.IndexerAccess: 5990case BoundKind.ImplicitIndexerAccess: 6001case BoundKind.DynamicObjectInitializerMember: 6004case BoundKind.DynamicIndexerAccess: 6014case BoundKind.ArrayAccess: 6015case BoundKind.PointerElementAccess: 6509if (addMethodInvocation.Kind == BoundKind.DynamicInvocation) 6520else if (addMethodInvocation.Kind == BoundKind.Call) 6549Debug.Assert(addMethodInvocation.Kind == BoundKind.BadExpression); 7028case BoundKind.ObjectCreationExpression: 7034case BoundKind.BadExpression: 7511if (boundValue.Kind == BoundKind.Conversion) 7703if (boundLeft.Kind == BoundKind.UnboundLambda) 7750case BoundKind.NamespaceExpression: 7760case BoundKind.TypeExpression: 7770case BoundKind.TypeOrValueExpression: 7780if (boundLeft.Kind == BoundKind.Literal && ((BoundLiteral)boundLeft).ConstantValueOpt == ConstantValue.Null) 7969case BoundKind.MethodGroup: 7992case BoundKind.PropertyGroup: 8094bool leftIsBaseReference = boundLeft.Kind == BoundKind.BaseReference; 8201if (boundLeft.HasAnyErrors && boundLeft.Kind != BoundKind.TypeOrValueExpression) 8222else if (boundLeft.Kind == BoundKind.TypeExpression || 8223boundLeft.Kind == BoundKind.BaseReference || 8460ReportDiagnosticsIfObsolete(diagnostics, symbol, node, hasBaseReceiver: left.Kind == BoundKind.BaseReference); 9022ReportDiagnosticsIfObsolete(diagnostics, propertySymbol, node, hasBaseReceiver: receiver?.Kind == BoundKind.BaseReference); 9127case BoundKind.PreviousSubmissionReference: 9130case BoundKind.TypeExpression: 9132case BoundKind.QueryClause: 9323if (receiver.Kind == BoundKind.PropertyGroup) 9738if (index.Kind == BoundKind.OutVariablePendingInference) 9742else if (index.Kind == BoundKind.DiscardExpression && !index.HasExpressionType()) 9930LookupOptions lookupOptions = expr.Kind == BoundKind.BaseReference ? LookupOptions.UseBaseReferenceAccessibility : LookupOptions.Default; 10044BoundKind receiverKind = receiver.Kind; 10045if (receiverKind == BoundKind.BaseReference) 10050else if (receiverKind == BoundKind.TypeOrValueExpression) 10186ReportDiagnosticsIfObsolete(diagnostics, property, syntax, hasBaseReceiver: receiver != null && receiver.Kind == BoundKind.BaseReference); 10196if (!gotError && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 11346if (access.Kind == BoundKind.MethodGroup) 11510if (receiver.Kind == BoundKind.UnboundLambda)
Binder\Binder_Initializers.cs (2)
268if (statement.Kind == BoundKind.LabeledStatement) 271while (labeledStatementBody.Kind == BoundKind.LabeledStatement)
Binder\Binder_Invocation.cs (40)
107if (!allowFieldsAndProperties && (boundExpression.Kind == BoundKind.FieldAccess || boundExpression.Kind == BoundKind.PropertyAccess)) 112if (boundExpression.Kind == BoundKind.FieldAccess) 124Debug.Assert(allowFieldsAndProperties || boundExpression.Kind is (BoundKind.MethodGroup or BoundKind.BadExpression)); 129Debug.Assert(!args.Any(static e => e.Kind == BoundKind.OutVariablePendingInference || 130e.Kind == BoundKind.OutDeconstructVarPendingInference || 131e.Kind == BoundKind.DiscardExpression && !e.HasExpressionType())); 145if (queryClause != null && result.Kind == BoundKind.DynamicInvocation) 161if (boundExpression.Kind == BoundKind.FieldAccess) 246string name = boundExpression.Kind == BoundKind.MethodGroup ? GetName(node.Expression) : null; 274if (argument.Kind == BoundKind.OutVariablePendingInference) 351else if (boundExpression.Kind == BoundKind.MethodGroup) 404if (expression.Kind == BoundKind.MethodGroup) 414case BoundKind.BaseReference: 419case BoundKind.ThisReference: 442case BoundKind.TypeOrValueExpression: 587if (arg.Kind == BoundKind.Lambda || arg.Kind == BoundKind.UnboundLambda) 593else if (arg.Kind == BoundKind.MethodGroup) 599else if (arg.Kind == BoundKind.ArgListOperator) 728Debug.Assert(extensionMemberAccess.Kind != BoundKind.MethodGroup); 1059case BoundKind.Call: 1073else if (call.ReceiverOpt.Kind == BoundKind.BaseReference && this.ContainingType.IsRestrictedType()) 1081case BoundKind.DynamicInvocation: 1094case BoundKind.FunctionPointerInvocation: 1308if (!gotError && method.RequiresInstanceReceiver && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 1324bool hasBaseReceiver = receiver != null && receiver.Kind == BoundKind.BaseReference; 1894case BoundKind.TypeOrValueExpression: 1920case BoundKind.QueryClause: 1958if ((object)expr != null && expr.Kind != BoundKind.TypeExpression) 2098case BoundKind.UnboundLambda: 2133case BoundKind.OutVariablePendingInference: 2134case BoundKind.DiscardExpression: 2142if (argument.Kind == BoundKind.OutVariablePendingInference) 2153else if (argument.Kind == BoundKind.DiscardExpression) 2167case BoundKind.OutDeconstructVarPendingInference: 2172case BoundKind.Parameter: 2173case BoundKind.Local: 2261var 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); 873if (result.Kind == BoundKind.TypeExpression 878else if (result.Kind == BoundKind.BadExpression) 1289case (BoundKind.DefaultLiteral, _) when !isEquality: 1290case (_, BoundKind.DefaultLiteral) when !isEquality: 1294case (BoundKind.DefaultLiteral, BoundKind.DefaultLiteral): 1297case (BoundKind.DefaultLiteral, _) when right.Type is TypeParameterSymbol: 1301case (_, BoundKind.DefaultLiteral) when left.Type is TypeParameterSymbol: 1305case (BoundKind.UnconvertedObjectCreationExpression, _): 1308case (_, BoundKind.UnconvertedObjectCreationExpression): 2794if (left.Kind == BoundKind.Conversion && right.Kind == BoundKind.Conversion) 3873case BoundKind.NamespaceExpression: 3874case BoundKind.TypeExpression: 3995BoundKind exprKind = expr.Kind; 3998case BoundKind.FieldAccess: 3999case BoundKind.EventAccess: 4003if (exprKind == BoundKind.FieldAccess) 4045case BoundKind.InlineArrayAccess: 4057case BoundKind.RangeVariable: 4065case BoundKind.Parameter: 4088case BoundKind.ThisReference: 4089case BoundKind.BaseReference: 4094case BoundKind.Local: 4104case BoundKind.PointerIndirectionOperator: //Covers ->, since the receiver will be one of these. 4105case BoundKind.ConvertedStackAllocExpression: 4109case BoundKind.PointerElementAccess: 4124case BoundKind.PropertyAccess: // Never fixed 4125case BoundKind.IndexerAccess: // Never fixed 4586case BoundKind.UnboundLambda: 4587case BoundKind.Lambda: 4588case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 4716operand.Kind == BoundKind.MethodGroup || 5134case BoundKind.UnboundLambda: 5135case BoundKind.Lambda: 5136case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 5145case BoundKind.TupleLiteral: 5146case BoundKind.ConvertedTupleLiteral: 5445if (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)
924while (ultimateReceiver.Kind == BoundKind.QueryClause) 931Debug.Assert(ultimateReceiver.Kind != BoundKind.MethodGroup || ultimateReceiver.HasAnyErrors); 949else if (ultimateReceiver.Kind == BoundKind.NamespaceExpression) 953else if (ultimateReceiver.Kind == BoundKind.Lambda || ultimateReceiver.Kind == BoundKind.UnboundLambda) 961else if (ultimateReceiver.Kind == BoundKind.TypeExpression) 969else if (ultimateReceiver.Kind == BoundKind.TypeOrValueExpression)
Binder\Binder_QueryErrors.cs (1)
220if (arg.Kind == BoundKind.UnboundLambda)
Binder\Binder_Statements.cs (39)
152(result.Kind == BoundKind.Block && 894BoundExpression expression = value.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup ? 1247case BoundKind.AddressOfOperator: 1251case BoundKind.FieldAccess: 1428bool discardAssignment = op1.Kind == BoundKind.DiscardExpression; 1507if (op1.Kind != BoundKind.DynamicIndexerAccess && 1508op1.Kind != BoundKind.DynamicMemberAccess && 1509op1.Kind != BoundKind.DynamicObjectInitializerMember) 1525if ((op1.Kind == BoundKind.EventAccess) && 1582else if (op1.Kind is BoundKind.Local or BoundKind.Parameter) 1595Debug.Assert(op1.Kind != BoundKind.Parameter); // If the assert fails, add a corresponding test. 1649case BoundKind.PropertyAccess: 1656case BoundKind.IndexerAccess: 1663case BoundKind.ImplicitIndexerAccess: 1787(propertyIsStatic || receiver?.Kind == BoundKind.ThisReference); 1822else if (receiver.Kind == BoundKind.BaseReference) 1948if (expression.HasAnyErrors && expression.Kind != BoundKind.UnboundLambda) 2338case BoundKind.BadExpression: 2342case BoundKind.UnboundLambda: 2347case BoundKind.TupleLiteral: 2371case BoundKind.MethodGroup: 2376case BoundKind.UnconvertedAddressOfOperator: 2381case BoundKind.Literal: 2398case BoundKind.StackAllocArrayCreation: 2404case BoundKind.UnconvertedSwitchExpression: 2417case BoundKind.UnconvertedCollectionExpression: 2422case BoundKind.AddressOfOperator when targetType.IsFunctionPointer(): 2427case BoundKind.UnconvertedConditionalOperator: 2456Debug.Assert(operand.HasAnyErrors && operand.Kind != BoundKind.UnboundLambda, "Missing a case in implicit conversion error reporting"); 2699if (expr.Kind == BoundKind.AssignmentOperator) 2702if (assignment.Right.Kind == BoundKind.Literal && assignment.Right.ConstantValueOpt.Discriminator == ConstantValueTypeDiscriminator.Boolean) 3174if (!argument.HasAnyErrors || argument.Kind == BoundKind.UnboundLambda) 3450if (expression.Kind == BoundKind.DelegateCreationExpression || expression.Kind == BoundKind.NameOfOperator) 3478if ((refKind != RefKind.None) != (returnRefKind != RefKind.None) && expression.Kind != BoundKind.ThrowExpression) 4132if (boundAccess.Kind != BoundKind.MethodGroup) 4160if (patternMethodCall.Kind != BoundKind.Call)
Binder\Binder_TupleOperators.cs (2)
217Debug.Assert((object)left.Type != null || left.Kind == BoundKind.TupleLiteral); 218Debug.Assert((object)right.Type != null || right.Kind == BoundKind.TupleLiteral);
Binder\DecisionDagBuilder.cs (3)
2431if (RemainingTests[0] is One { Test: { Kind: BoundKind.DagNonNullTest } planA }) 2438case One { Test: { Kind: BoundKind.DagTypeTest } planB1 }: 2445case One { Test: { Kind: BoundKind.DagValueTest } planB2 }:
Binder\DecisionDagBuilder_ListPatterns.cs (1)
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)
541if (node.Left.Kind != BoundKind.DiscardExpression)
Binder\Semantics\Conversions\ConversionsBase.cs (16)
1061case BoundKind.Literal: 1069case BoundKind.DefaultLiteral: 1072case BoundKind.ExpressionWithNullability: 1082case BoundKind.TupleLiteral: 1090case BoundKind.UnboundLambda: 1097case BoundKind.MethodGroup: 1105case BoundKind.UnconvertedInterpolatedString: 1106case BoundKind.BinaryOperator when ((BoundBinaryOperator)sourceExpression).IsUnconvertedInterpolatedStringAddition: 1113case BoundKind.StackAllocArrayCreation: 1121case BoundKind.UnconvertedAddressOfOperator when destination is FunctionPointerTypeSymbol funcPtrType: 1129case BoundKind.ThrowExpression: 1132case BoundKind.UnconvertedObjectCreationExpression: 1135case BoundKind.UnconvertedCollectionExpression: 1410if (sourceExpression.Kind == BoundKind.TupleLiteral) 1646if (source.Kind != BoundKind.UnboundLambda) 1949if (sourceExpressionOpt?.Kind == BoundKind.TupleLiteral)
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (1)
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) 2932var nodeKind = node.Kind; 2933if (nodeKind == BoundKind.OutVariablePendingInference || 2934nodeKind == BoundKind.OutDeconstructVarPendingInference || 2935(nodeKind == BoundKind.DiscardExpression && !node.HasExpressionType())) 3255if (node.Kind == BoundKind.TupleLiteral) 3271if (node.Kind == BoundKind.UnboundLambda && 3311if (lambda.Body.Statements[0].Kind == BoundKind.ReturnStatement) 3587if (node?.Kind == BoundKind.MethodGroup) 4537if (argument.Kind == BoundKind.ArgListOperator) 4712if (argument.Kind == BoundKind.OutVariablePendingInference || 4713argument.Kind == BoundKind.OutDeconstructVarPendingInference || 4714(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: 206Debug.Assert(method is ErrorMethodSymbol || arguments[i].Kind == BoundKind.ArgListOperator);
BoundTree\Expression.cs (2)
170(this.Kind == BoundKind.StatementList || this.Kind == BoundKind.Scope) ? StaticCast<BoundNode?>.From(this.Statements) : ImmutableArray<BoundNode?>.Empty;
CodeGen\CodeGenerator_HasHome.cs (17)
53case BoundKind.ArrayAccess: 63case BoundKind.PointerIndirectionOperator: 64case BoundKind.RefValueOperator: 67case BoundKind.ThisReference: 82case BoundKind.ThrowExpression: 86case BoundKind.Parameter: 90case BoundKind.Local: 97case BoundKind.Call: 102case BoundKind.Dup: 108case BoundKind.FieldAccess: 111case BoundKind.Sequence: 114case BoundKind.AssignmentOperator: 124case BoundKind.ComplexConditionalReceiver: 137goto case BoundKind.ConditionalReceiver; 139case BoundKind.ConditionalReceiver: 144case BoundKind.ConditionalOperator: 257fieldAccess.ReceiverOpt.Kind == BoundKind.ThisReference;
CodeGen\EmitAddress.cs (25)
28case BoundKind.RefValueOperator: 32case BoundKind.Local: 35case BoundKind.Dup: 39case BoundKind.ConditionalReceiver: 45case BoundKind.ComplexConditionalReceiver: 49case BoundKind.Parameter: 52case BoundKind.FieldAccess: 55case BoundKind.ArrayAccess: 64case BoundKind.ThisReference: 85case BoundKind.PreviousSubmissionReference: 89case BoundKind.BaseReference: 93case BoundKind.PassByCopy: 96case BoundKind.Sequence: 99case BoundKind.PointerIndirectionOperator: 106case BoundKind.PseudoVariable: 110case BoundKind.Call: 121case BoundKind.FunctionPointerInvocation: 133case BoundKind.DefaultExpression: 143case BoundKind.ConditionalOperator: 152case BoundKind.AssignmentOperator: 164case BoundKind.ThrowExpression: 355case BoundKind.Local: 364case BoundKind.Sequence: 367case BoundKind.FieldAccess: 522if (receiver.Kind != BoundKind.ConditionalReceiver)
CodeGen\EmitArrayInitializer.cs (4)
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)) || 859Debug.Assert(sequence.Value.Kind != BoundKind.TypeExpression || !used); 860if (sequence.Value.Kind != BoundKind.TypeExpression) 1002Debug.Assert(arguments[i].Kind == BoundKind.ArgListOperator); 1231else if (receiver.Kind == BoundKind.Conversion) 1242else if (receiver.Kind == BoundKind.FieldAccess) 1273if (receiver.Kind == BoundKind.Conversion && ((BoundConversion)receiver).ConversionKind == ConversionKind.Unboxing) 1286case BoundKind.Parameter: 1290case BoundKind.Local: 1294case BoundKind.Sequence: 1297case BoundKind.FieldAccess: 1516Debug.Assert(receiver.Kind != BoundKind.BaseReference, "base should always use call"); 1527case BoundKind.ArrayCreation: 1530case BoundKind.ObjectCreationExpression: 1535case BoundKind.Conversion: 1555case BoundKind.ThisReference: 1562case BoundKind.FieldAccess: 1566case BoundKind.Local: 1570case BoundKind.DelegateCreationExpression: 1573case BoundKind.Sequence: 1577case BoundKind.AssignmentOperator: 1581case BoundKind.TypeOfOperator: 1584case BoundKind.ConditionalReceiver: 1600case BoundKind.ThisReference: 1603case BoundKind.Sequence: 1646Debug.Assert(receiver.Kind == BoundKind.ThisReference); 2148case BoundKind.TypeExpression: 2149case BoundKind.Parameter: 2150case BoundKind.Local: 2151case BoundKind.ThisReference: 2153case BoundKind.FieldAccess: 2164case BoundKind.PassByCopy: 2167case BoundKind.BinaryOperator: 2180case BoundKind.Conversion: 2229case BoundKind.Local: 2232case BoundKind.Parameter: 2235case BoundKind.Call: 2238case BoundKind.FunctionPointerInvocation: 2241case BoundKind.Dup: 2244case BoundKind.Sequence: 2641if (objCreation.Arguments.Length > 0 && objCreation.Arguments[0].Kind == BoundKind.ConvertedStackAllocExpression) 2675if (left.Kind == BoundKind.ArrayAccess && left.Type.TypeKind == TypeKind.TypeParameter && !left.Type.IsValueType) 2680if (left.Kind == BoundKind.FieldAccess) 2784case BoundKind.Parameter: 2787case BoundKind.Local: 2803case BoundKind.RefValueOperator: 2807case BoundKind.FieldAccess: 2825case BoundKind.Parameter: 2837case BoundKind.Local: 2889case BoundKind.ArrayAccess: 2898case BoundKind.ThisReference: 2909case BoundKind.Dup: 2920case BoundKind.ConditionalOperator: 2932case BoundKind.PointerIndirectionOperator: 2942case BoundKind.Sequence: 2955case BoundKind.Call: 2966case BoundKind.FunctionPointerInvocation: 2977case BoundKind.PropertyAccess: 2978case BoundKind.IndexerAccess: 2980case BoundKind.PreviousSubmissionReference: 2984case BoundKind.PseudoVariable: 2989case BoundKind.ModuleVersionId: 2990case BoundKind.InstrumentationPayloadRoot: 2993case BoundKind.AssignmentOperator: 3032Debug.Assert(lhs.Kind != BoundKind.Parameter || exprTempsAfter <= exprTempsBefore); 3034if (lhs.Kind == BoundKind.Local && ((BoundLocal)lhs).LocalSymbol.SynthesizedKind.IsLongLived()) 3092case BoundKind.FieldAccess: 3096case BoundKind.Local: 3123case BoundKind.ArrayAccess: 3129case BoundKind.ThisReference: 3133case BoundKind.Parameter: 3137case BoundKind.Dup: 3142case BoundKind.ConditionalOperator: 3147case BoundKind.RefValueOperator: 3148case BoundKind.PointerIndirectionOperator: 3149case BoundKind.PseudoVariable: 3153case BoundKind.Sequence: 3160case BoundKind.Call: 3165case BoundKind.FunctionPointerInvocation: 3170case BoundKind.ModuleVersionId: 3174case BoundKind.InstrumentationPayloadRoot: 3178case BoundKind.AssignmentOperator: 3187case BoundKind.PreviousSubmissionReference: 3945case BoundKind.Conversion: 3959case BoundKind.AssignmentOperator: 3963case BoundKind.Sequence: 3967case BoundKind.Local: 3976case BoundKind.Dup:
CodeGen\EmitOperators.cs (3)
94if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 118if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 507if (condition.Kind == BoundKind.BinaryOperator)
CodeGen\EmitStatement.cs (31)
31case BoundKind.Block: 35case BoundKind.Scope: 39case BoundKind.SequencePoint: 43case BoundKind.SequencePointWithSpan: 47case BoundKind.SavePreviousSequencePoint: 51case BoundKind.RestorePreviousSequencePoint: 55case BoundKind.StepThroughSequencePoint: 59case BoundKind.ExpressionStatement: 63case BoundKind.StatementList: 67case BoundKind.ReturnStatement: 71case BoundKind.GotoStatement: 75case BoundKind.LabelStatement: 79case BoundKind.ConditionalGoto: 83case BoundKind.ThrowStatement: 87case BoundKind.TryStatement: 91case BoundKind.SwitchDispatch: 95case BoundKind.StateMachineScope: 99case BoundKind.NoOpStatement: 418case BoundKind.BinaryOperator: 526case BoundKind.LoweredConditionalAccess: 536(receiver.Kind == BoundKind.Local && IsStackLocal(((BoundLocal)receiver).LocalSymbol)) || 575case BoundKind.UnaryOperator: 585case BoundKind.IsOperator: 602case BoundKind.Sequence: 1135while (exceptionSource.Kind == BoundKind.Sequence) 1145case BoundKind.Local: 1155case BoundKind.FieldAccess: 1264if (expression.Kind == BoundKind.Sequence) 1272if (expression.Kind == BoundKind.SequencePointExpression) 1281case BoundKind.Local: 1290case BoundKind.Parameter:
CodeGen\Optimizer.cs (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)
1935else if (highestBoundExpr.Kind == BoundKind.TypeOrValueExpression) 1941else if (highestBoundExpr.Kind == BoundKind.UnaryOperator) 2096var highestBoundExprKind = highestBoundExpr?.Kind ?? BoundKind.NoOpStatement; 2101if (highestBoundExprKind == BoundKind.Lambda) // the enclosing conversion is explicit 2117if (tupleLiteralConversion.Operand.Kind == BoundKind.ConvertedTupleLiteral) 2131else if (highestBoundExprKind == BoundKind.FixedLocalCollectionInitializer) 2202if (highestBoundExprKind != BoundKind.Conversion) 2206else if (((BoundConversion)highestBoundExpr).Operand.Kind != BoundKind.Conversion) 2224else if (boundNodeForSyntacticParent?.Kind == BoundKind.DelegateCreationExpression) 2231case BoundKind.MethodGroup: 2236case BoundKind.Lambda: 2242case BoundKind.UnboundLambda: 2311if (boundExpr != null && boundExpr.Kind != BoundKind.TypeExpression) 3368case BoundKind.MethodGroup: 3372case BoundKind.PropertyGroup: 3377case BoundKind.BadExpression: 3400case BoundKind.DelegateCreationExpression: 3403case BoundKind.TypeExpression: 3411boundNodeForSyntacticParent.Kind == BoundKind.BadExpression && 3433case BoundKind.TypeOrValueExpression: 3442case BoundKind.Call: 3467case BoundKind.FunctionPointerInvocation: 3475case BoundKind.UnconvertedAddressOfOperator: 3489case BoundKind.IndexerAccess: 3503case BoundKind.ImplicitIndexerAccess: 3507case BoundKind.EventAssignmentOperator: 3524case BoundKind.EventAccess when boundNodeForSyntacticParent is BoundEventAssignmentOperator { ResultKind: LookupResultKind.Viable } parentOperator && 3535case BoundKind.Conversion: 3558case BoundKind.BinaryOperator: 3562case BoundKind.UnaryOperator: 3566case BoundKind.UserDefinedConditionalLogicalOperator: 3572case BoundKind.CompoundAssignmentOperator: 3576case BoundKind.IncrementOperator: 3580case BoundKind.AwaitExpression: 3585case BoundKind.ConditionalOperator: 3591case BoundKind.Attribute: 3626case BoundKind.QueryClause: 3637case BoundKind.DynamicInvocation: 3645case BoundKind.DynamicCollectionElementInitializer: 3653case BoundKind.DynamicIndexerAccess: 3661case BoundKind.DynamicMemberAccess: 3666case BoundKind.DynamicObjectCreationExpression: 3673case BoundKind.ObjectCreationExpression: 3690case BoundKind.ThisReference: 3691case BoundKind.BaseReference: 3702case BoundKind.FromEndIndexExpression: 3712case BoundKind.RangeExpression: 3994case BoundKind.Attribute: 4008case BoundKind.BadExpression: 4273case BoundKind.Call: 4294case BoundKind.DelegateCreationExpression: 4304case BoundKind.Conversion: 4336case BoundKind.DynamicInvocation: 4342case BoundKind.BadExpression: 4353case BoundKind.NameOfOperator: 4422case BoundKind.IndexerAccess: 4443case BoundKind.BadExpression:
Compilation\MemberSemanticModel.cs (12)
1201Debug.Assert(highestBoundNode.Kind != BoundKind.UnboundLambda); 1745case BoundKind.UnboundLambda: 1747goto case BoundKind.Lambda; 1748case BoundKind.Lambda: 1752case BoundKind.QueryClause: 1774case BoundKind.QueryClause: 1778case BoundKind.Call: 1790while (receiver?.Kind == BoundKind.MethodGroup) 1807case BoundKind.Conversion: 1810case BoundKind.UnboundLambda: 1814case BoundKind.Lambda: 1857if (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)
615(init.Kind == BoundKind.FieldEqualsValue) && !((BoundFieldEqualsValue)init).Field.IsMetadataConstant)); 1325if (processedInitializers.LoweredInitializers.Kind == BoundKind.StatementList) 1960case BoundKind.ConstructorMethodBody: 1990case BoundKind.NonConstructorMethodBody: 1996case 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: 1870if (pend.Branch.Kind != BoundKind.YieldReturnStatement) 2130if (expr.Kind != BoundKind.PropertyAccess) 2163var refKind = node.Left.Kind == BoundKind.BadExpression 2244receiverOpt.Kind != BoundKind.TypeExpression && 2425var childKind = child.Kind; 2427if (childKind == BoundKind.BinaryOperator) 2440else if (childKind == BoundKind.UserDefinedConditionalLogicalOperator) 2467case BoundKind.BinaryOperator: 2471case BoundKind.UserDefinedConditionalLogicalOperator: 2487case BoundKind.BinaryOperator: 2492case BoundKind.UserDefinedConditionalLogicalOperator: 2504Debug.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 (86)
242if (node.Kind == BoundKind.Attribute) 436BoundKind kind = pendingBranch.Kind; 439case BoundKind.AwaitExpression: 441case BoundKind.UsingStatement: 444case BoundKind.ForEachStatement: 447case BoundKind.UsingLocalDeclarations: 786Debug.Assert(fieldOrEventAccess.Kind == BoundKind.FieldAccess || fieldOrEventAccess.Kind == BoundKind.EventAccess); 792case BoundKind.FieldAccess: 808case BoundKind.EventAccess: 825case BoundKind.ThisReference: 829case BoundKind.Local: 833case BoundKind.Parameter: 837case BoundKind.InlineArrayAccess: 922if (value is { ConstantValueOpt: not null, Kind: not BoundKind.InterpolatedString }) return false; 926case BoundKind.Conversion: 940case BoundKind.DefaultLiteral: 941case BoundKind.DefaultExpression: 943case BoundKind.ObjectCreationExpression: 946case BoundKind.TupleLiteral: 947case BoundKind.ConvertedTupleLiteral: 948case BoundKind.Utf8String: 964case BoundKind.FieldAccess: 979if (n.Kind == BoundKind.Local) 991case BoundKind.EventAccess: 1012case BoundKind.ThisReference: 1016case BoundKind.Local: 1020case BoundKind.Parameter: 1024case BoundKind.RangeVariable: 1028case BoundKind.InlineArrayAccess: 1073case BoundKind.FieldAccess: 1089case BoundKind.EventAccess: 1101case BoundKind.PropertyAccess: 1125receiver.Kind != BoundKind.TypeExpression && 1142receiverOpt.Kind != BoundKind.TypeExpression && 1385case BoundKind.ThisReference: 1398case BoundKind.Local: 1404case BoundKind.FieldAccess: 1416case BoundKind.EventAccess: 1428case BoundKind.InlineArrayAccess: 1434case BoundKind.PropertyAccess: 1456case BoundKind.Parameter: 1463case BoundKind.RangeVariable: 1488case BoundKind.FieldAccess: 1497case BoundKind.Local: 1501case BoundKind.RangeVariable: 1503case BoundKind.Parameter: 1505case BoundKind.ThisReference: 1507case BoundKind.BaseReference: 1540case BoundKind.ListPattern: 1541case BoundKind.RecursivePattern: 1542case BoundKind.DeclarationPattern: 1558case BoundKind.LocalDeclaration: 1569case BoundKind.Local: 1587case BoundKind.InlineArrayAccess: 1617case BoundKind.Parameter: 1634case BoundKind.ObjectInitializerMember: 1646case BoundKind.ThisReference: 1647case BoundKind.FieldAccess: 1648case BoundKind.EventAccess: 1649case BoundKind.PropertyAccess: 1658case BoundKind.RangeVariable: 1662case BoundKind.BadExpression: 1673case BoundKind.TupleLiteral: 1674case BoundKind.ConvertedTupleLiteral: 2006case BoundKind.DeclarationPattern: 2013case BoundKind.DiscardPattern: 2014case BoundKind.TypePattern: 2016case BoundKind.SlicePattern: 2025case BoundKind.ConstantPattern: 2031case BoundKind.RecursivePattern: 2065case BoundKind.ITuplePattern: 2074case BoundKind.ListPattern: 2085case BoundKind.RelationalPattern: 2091case BoundKind.NegatedPattern: 2097case BoundKind.BinaryPattern: 2206if (stmt.Kind != BoundKind.LocalFunctionStatement) 2454if (pending.Branch.Kind == BoundKind.ReturnStatement) 2528if (initializer.Kind == BoundKind.AddressOfOperator) 2601case BoundKind.Local: 2604case BoundKind.Parameter: 2607case BoundKind.FieldAccess: 2615case BoundKind.EventAccess: 2623case BoundKind.ThisReference: 2624case BoundKind.BaseReference: 2628case BoundKind.InlineArrayAccess:
FlowAnalysis\ExitPointsWalker.cs (9)
127case BoundKind.GotoStatement: 130case BoundKind.BreakStatement: 133case BoundKind.ContinueStatement: 136case BoundKind.YieldBreakStatement: 137case BoundKind.ReturnStatement: 140case BoundKind.YieldReturnStatement: 141case BoundKind.AwaitExpression: 142case BoundKind.UsingStatement: 143case BoundKind.ForEachStatement when ((BoundForEachStatement)pending.Branch).AwaitOpt != null:
FlowAnalysis\LocalDataFlowPass.cs (9)
215case BoundKind.ThisReference: 216case BoundKind.BaseReference: 218case BoundKind.Local: 220case BoundKind.Parameter: 222case BoundKind.RangeVariable: 224case BoundKind.FieldAccess: 225case BoundKind.EventAccess: 226case BoundKind.PropertyAccess: 233case BoundKind.AssignmentOperator:
FlowAnalysis\NullableWalker.cs (72)
275private static readonly ImmutableArray<BoundKind> s_skippedExpressions = ImmutableArray.Create(BoundKind.ArrayInitialization, 276BoundKind.ObjectInitializerExpression, 277BoundKind.CollectionInitializerExpression, 278BoundKind.DynamicCollectionElementInitializer); 373|| expr.Kind == BoundKind.ExpressionWithNullability 443private bool IsAnalyzingAttribute => methodMainNode.Kind == BoundKind.Attribute; 554Debug.Assert(expression != null || placeholder.Kind == BoundKind.InterpolatedStringArgumentPlaceholder); 575case BoundKind.DeconstructValuePlaceholder: 576case BoundKind.InterpolatedStringHandlerPlaceholder: 577case BoundKind.InterpolatedStringArgumentPlaceholder: 578case BoundKind.ObjectOrCollectionValuePlaceholder: 579case BoundKind.AwaitableValuePlaceholder: 582case BoundKind.ImplicitIndexerValuePlaceholder: 2050case BoundKind.FieldAccess: 2066case BoundKind.EventAccess: 2079case BoundKind.PropertyAccess: 2097receiver.Kind != BoundKind.TypeExpression && 2125case BoundKind.ThisReference: 2126case BoundKind.BaseReference: 2132case BoundKind.Conversion: 2175case BoundKind.DefaultLiteral: 2176case BoundKind.DefaultExpression: 2177case BoundKind.ObjectCreationExpression: 2178case BoundKind.DynamicObjectCreationExpression: 2179case BoundKind.AnonymousObjectCreationExpression: 2180case BoundKind.NewT: 2181case BoundKind.TupleLiteral: 2182case BoundKind.ConvertedTupleLiteral: 2184case BoundKind.ConditionalAccess: 2186case BoundKind.ConditionalReceiver: 2594case BoundKind.Conversion: 2601case BoundKind.DefaultLiteral: 2602case BoundKind.DefaultExpression: 3119if (!expr.IsSuppressed && RemoveConversion(expr, includeExplicitConversions: false).expression.Kind != BoundKind.ThrowExpression) 4181Debug.Assert(node.Kind is BoundKind.ObjectCreationExpression or BoundKind.DynamicObjectCreationExpression or BoundKind.NewT or BoundKind.NoPiaObjectCreationExpression); 4274case BoundKind.AssignmentOperator: 4289case BoundKind.CollectionElementInitializer: 4319case BoundKind.ObjectInitializerMember: 4991if (child.Kind == BoundKind.ArrayInitialization) 5614case BoundKind.Conversion: 5618case BoundKind.AsOperator: 5621case BoundKind.ConditionalAccess: 5808while (possiblyConversion.Kind == BoundKind.Conversion) 7747return (argument.Kind == BoundKind.Lambda); 8352/// other than <see cref="BoundKind.ExpressionWithNullability"/> which is an expression 8359case BoundKind.DefaultLiteral: 8360case BoundKind.DefaultExpression: 8361case BoundKind.Literal: 8363case BoundKind.ExpressionWithNullability: 8365case BoundKind.MethodGroup: 8366case BoundKind.UnboundLambda: 8367case BoundKind.UnconvertedObjectCreationExpression: 8368case BoundKind.ConvertedTupleLiteral: 8369case BoundKind.UnconvertedCollectionExpression: 8409if (argument.Kind == BoundKind.Lambda) 8418if (argument.Kind == BoundKind.CollectionExpression) 8543if (expr.Kind != BoundKind.Conversion) 8628case BoundKind.InterpolatedString: 9467if (operandType.Type?.IsTupleType == true || conversionOperand.Kind == BoundKind.TupleLiteral) 10478if (left.Kind == BoundKind.EventAccess && ((BoundEventAccess)left).EventSymbol.IsWindowsRuntimeEvent) 10898case BoundKind.TupleLiteral: 10899case BoundKind.ConvertedTupleLiteral: 10916case BoundKind.TupleLiteral: 10917case BoundKind.ConvertedTupleLiteral: 10919case BoundKind.Conversion: 11261if (initializer.Kind == BoundKind.AddressOfOperator) 11267if (node.Expression.Kind == BoundKind.AddressOfOperator) 11545if (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()) 2164: base(BoundKind.AwaitExpression, syntax, type, hasErrors || expression.HasErrors() || awaitableInfo.HasErrors()) 2198protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors) 2207protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type) 2223: base(BoundKind.TypeOfOperator, syntax, getTypeFromHandle, type, hasErrors || sourceType.HasErrors()) 2252: base(BoundKind.BlockInstrumentation, syntax, hasErrors || prologue.HasErrors() || epilogue.HasErrors()) 2284: base(BoundKind.MethodDefIndex, syntax, type, hasErrors) 2298: base(BoundKind.MethodDefIndex, syntax, type) 2328: base(BoundKind.LocalId, syntax, type, hasErrors) 2339: base(BoundKind.LocalId, syntax, type) 2371: base(BoundKind.ParameterId, syntax, type, hasErrors) 2382: base(BoundKind.ParameterId, syntax, type) 2414: base(BoundKind.StateMachineInstanceId, syntax, type, hasErrors) 2422: base(BoundKind.StateMachineInstanceId, syntax, type) 2449: base(BoundKind.MaximumMethodDefIndex, syntax, type, hasErrors) 2457: base(BoundKind.MaximumMethodDefIndex, syntax, type) 2484: base(BoundKind.InstrumentationPayloadRoot, syntax, type, hasErrors) 2493: base(BoundKind.InstrumentationPayloadRoot, syntax, type) 2522: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type, hasErrors) 2530: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type) 2557: base(BoundKind.ModuleCancellationTokenExpression, syntax, type, hasErrors) 2565: base(BoundKind.ModuleCancellationTokenExpression, syntax, type) 2592: base(BoundKind.ModuleVersionId, syntax, type, hasErrors) 2600: base(BoundKind.ModuleVersionId, syntax, type) 2627: base(BoundKind.ModuleVersionIdString, syntax, type, hasErrors) 2635: base(BoundKind.ModuleVersionIdString, syntax, type) 2662: base(BoundKind.SourceDocumentIndex, syntax, type, hasErrors) 2672: base(BoundKind.SourceDocumentIndex, syntax, type) 2702: base(BoundKind.MethodInfo, syntax, type, hasErrors) 2713: base(BoundKind.MethodInfo, syntax, type) 2745: base(BoundKind.FieldInfo, syntax, type, hasErrors) 2756: base(BoundKind.FieldInfo, syntax, type) 2788: base(BoundKind.DefaultLiteral, syntax, null, hasErrors) 2793: base(BoundKind.DefaultLiteral, syntax, null) 2811: base(BoundKind.DefaultExpression, syntax, type, hasErrors || targetType.HasErrors()) 2842: base(BoundKind.IsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors()) 2877: base(BoundKind.AsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors()) 2914: base(BoundKind.SizeOfOperator, syntax, type, hasErrors || sourceType.HasErrors()) 2946: base(BoundKind.Conversion, syntax, type, hasErrors || operand.HasErrors()) 2988: base(BoundKind.ReadOnlySpanFromArray, syntax, type, hasErrors || operand.HasErrors()) 3021: base(BoundKind.ArgList, syntax, type, hasErrors) 3029: base(BoundKind.ArgList, syntax, type) 3056: base(BoundKind.ArgListOperator, syntax, type, hasErrors || arguments.HasErrors()) 3087: base(BoundKind.FixedLocalCollectionInitializer, syntax, type, hasErrors || elementPointerPlaceholder.HasErrors() || elementPointerConversion.HasErrors() || expression.HasErrors()) 3125protected BoundStatement(BoundKind kind, SyntaxNode syntax, bool hasErrors) 3130protected BoundStatement(BoundKind kind, SyntaxNode syntax) 3140: base(BoundKind.SequencePoint, syntax, hasErrors || statementOpt.HasErrors()) 3165: base(BoundKind.SequencePointWithSpan, syntax, hasErrors || statementOpt.HasErrors()) 3192: base(BoundKind.SavePreviousSequencePoint, syntax, hasErrors) 3201: base(BoundKind.SavePreviousSequencePoint, syntax) 3229: base(BoundKind.RestorePreviousSequencePoint, syntax, hasErrors) 3238: base(BoundKind.RestorePreviousSequencePoint, syntax) 3266: base(BoundKind.StepThroughSequencePoint, syntax, hasErrors) 3272: base(BoundKind.StepThroughSequencePoint, syntax) 3297: base(BoundKind.Block, syntax, statements, hasErrors || instrumentation.HasErrors() || statements.HasErrors()) 3333: base(BoundKind.Scope, syntax, statements, hasErrors || statements.HasErrors()) 3362: base(BoundKind.StateMachineScope, syntax, hasErrors || statement.HasErrors()) 3393: base(BoundKind.LocalDeclaration, syntax, hasErrors || declaredTypeOpt.HasErrors() || initializerOpt.HasErrors() || argumentsOpt.HasErrors()) 3428protected BoundMultipleLocalDeclarationsBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false) 3443: base(BoundKind.MultipleLocalDeclarations, syntax, localDeclarations, hasErrors || localDeclarations.HasErrors()) 3469: base(BoundKind.UsingLocalDeclarations, syntax, localDeclarations, hasErrors || awaitOpt.HasErrors() || localDeclarations.HasErrors()) 3499: base(BoundKind.LocalFunctionStatement, syntax, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 3531: base(BoundKind.NoOpStatement, syntax, hasErrors) 3537: base(BoundKind.NoOpStatement, syntax) 3562: base(BoundKind.ReturnStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3591: base(BoundKind.YieldReturnStatement, syntax, hasErrors || expression.HasErrors()) 3619: base(BoundKind.YieldBreakStatement, syntax, hasErrors) 3624: base(BoundKind.YieldBreakStatement, syntax) 3636: base(BoundKind.ThrowStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3661: base(BoundKind.ExpressionStatement, syntax, hasErrors || expression.HasErrors()) 3689: base(BoundKind.BreakStatement, syntax, hasErrors) 3698: base(BoundKind.BreakStatement, syntax) 3726: base(BoundKind.ContinueStatement, syntax, hasErrors) 3735: base(BoundKind.ContinueStatement, syntax) 3763: base(BoundKind.SwitchStatement, syntax, hasErrors || expression.HasErrors() || switchSections.HasErrors() || reachabilityDecisionDag.HasErrors() || defaultLabel.HasErrors()) 3808: base(BoundKind.SwitchDispatch, syntax, hasErrors || expression.HasErrors()) 3844: base(BoundKind.IfStatement, syntax, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternativeOpt.HasErrors()) 3876protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors) 3887protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel) 3904protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 3927: base(BoundKind.DoStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 3957: base(BoundKind.WhileStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 3987: base(BoundKind.ForStatement, syntax, breakLabel, continueLabel, hasErrors || initializer.HasErrors() || condition.HasErrors() || increment.HasErrors() || body.HasErrors()) 4029: base(BoundKind.ForEachStatement, syntax, breakLabel, continueLabel, hasErrors || elementPlaceholder.HasErrors() || elementConversion.HasErrors() || iterationVariableType.HasErrors() || iterationErrorExpressionOpt.HasErrors() || expression.HasErrors() || deconstructionOpt.HasErrors() || awaitOpt.HasErrors() || body.HasErrors()) 4080: base(BoundKind.ForEachDeconstructStep, syntax, hasErrors || deconstructionAssignment.HasErrors() || targetPlaceholder.HasErrors()) 4111: base(BoundKind.UsingStatement, syntax, hasErrors || declarationsOpt.HasErrors() || expressionOpt.HasErrors() || body.HasErrors() || awaitOpt.HasErrors()) 4150: base(BoundKind.FixedStatement, syntax, hasErrors || declarations.HasErrors() || body.HasErrors()) 4184: base(BoundKind.LockStatement, syntax, hasErrors || argument.HasErrors() || body.HasErrors()) 4215: base(BoundKind.TryStatement, syntax, hasErrors || tryBlock.HasErrors() || catchBlocks.HasErrors() || finallyBlockOpt.HasErrors()) 4252: base(BoundKind.CatchBlock, syntax, hasErrors || exceptionSourceOpt.HasErrors() || exceptionFilterPrologueOpt.HasErrors() || exceptionFilterOpt.HasErrors() || body.HasErrors()) 4293: base(BoundKind.Literal, syntax, type, hasErrors) 4299: base(BoundKind.Literal, syntax, type) 4324: base(BoundKind.Utf8String, syntax, type, hasErrors) 4334: base(BoundKind.Utf8String, syntax, type) 4364: base(BoundKind.ThisReference, syntax, type, hasErrors) 4372: base(BoundKind.ThisReference, syntax, type) 4399: base(BoundKind.PreviousSubmissionReference, syntax, type, hasErrors) 4407: base(BoundKind.PreviousSubmissionReference, syntax, type) 4434: base(BoundKind.HostObjectMemberReference, syntax, type, hasErrors) 4442: base(BoundKind.HostObjectMemberReference, syntax, type) 4469: base(BoundKind.BaseReference, syntax, type, hasErrors) 4474: base(BoundKind.BaseReference, syntax, type) 4498: base(BoundKind.Local, syntax, type, hasErrors) 4511: base(BoundKind.Local, syntax, type) 4547: base(BoundKind.PseudoVariable, syntax, type, hasErrors) 4559: base(BoundKind.PseudoVariable, syntax, type) 4592: base(BoundKind.RangeVariable, syntax, type, hasErrors || value.HasErrors()) 4625: base(BoundKind.Parameter, syntax, type, hasErrors) 4635: base(BoundKind.Parameter, syntax, type) 4665: base(BoundKind.LabelStatement, syntax, hasErrors) 4674: base(BoundKind.LabelStatement, syntax) 4702: base(BoundKind.GotoStatement, syntax, hasErrors || caseExpressionOpt.HasErrors() || labelExpressionOpt.HasErrors()) 4734: base(BoundKind.LabeledStatement, syntax, hasErrors || body.HasErrors()) 4765: base(BoundKind.Label, syntax, type, hasErrors) 4774: base(BoundKind.Label, syntax, type) 4801protected BoundStatementList(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 4811: base(BoundKind.StatementList, syntax, hasErrors || statements.HasErrors()) 4839: base(BoundKind.ConditionalGoto, syntax, hasErrors || condition.HasErrors()) 4871protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false) 4896: base(BoundKind.SwitchExpressionArm, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors() || value.HasErrors()) 4935: base(BoundKind.UnconvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 4963: base(BoundKind.ConvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 4997: base(BoundKind.DecisionDag, syntax, hasErrors || rootNode.HasErrors()) 5024protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax, bool hasErrors) 5029protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax) 5039: base(BoundKind.EvaluationDecisionDagNode, syntax, hasErrors || evaluation.HasErrors() || next.HasErrors()) 5070: base(BoundKind.TestDecisionDagNode, syntax, hasErrors || test.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5104: base(BoundKind.WhenDecisionDagNode, syntax, hasErrors || whenExpression.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5139: base(BoundKind.LeafDecisionDagNode, syntax, hasErrors) 5148: base(BoundKind.LeafDecisionDagNode, syntax) 5175protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5190: base(BoundKind.DagTemp, syntax, hasErrors || source.HasErrors()) 5222: base(BoundKind.DagTypeTest, syntax, input, hasErrors || input.HasErrors()) 5251: base(BoundKind.DagNonNullTest, syntax, input, hasErrors || input.HasErrors()) 5279: base(BoundKind.DagExplicitNullTest, syntax, input, hasErrors || input.HasErrors()) 5305: base(BoundKind.DagValueTest, syntax, input, hasErrors || input.HasErrors()) 5334: base(BoundKind.DagRelationalTest, syntax, input, hasErrors || input.HasErrors()) 5364protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5377: base(BoundKind.DagDeconstructEvaluation, syntax, input, hasErrors || input.HasErrors()) 5406: base(BoundKind.DagTypeEvaluation, syntax, input, hasErrors || input.HasErrors()) 5435: base(BoundKind.DagFieldEvaluation, syntax, input, hasErrors || input.HasErrors()) 5464: base(BoundKind.DagPropertyEvaluation, syntax, input, hasErrors || input.HasErrors()) 5495: base(BoundKind.DagIndexEvaluation, syntax, input, hasErrors || input.HasErrors()) 5526: base(BoundKind.DagIndexerEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5573: base(BoundKind.DagSliceEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5622: base(BoundKind.DagAssignmentEvaluation, syntax, input, hasErrors || target.HasErrors() || input.HasErrors()) 5651: base(BoundKind.SwitchSection, syntax, statements, hasErrors || switchLabels.HasErrors() || statements.HasErrors()) 5683: base(BoundKind.SwitchLabel, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors()) 5715protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false) 5730: base(BoundKind.SequencePointExpression, syntax, type, hasErrors || expression.HasErrors()) 5758: base(BoundKind.Sequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5794: base(BoundKind.SpillSequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5830: base(BoundKind.DynamicMemberAccess, syntax, type, hasErrors || receiver.HasErrors()) 5868protected BoundDynamicInvocableBase(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol? type, bool hasErrors = false) 5886: base(BoundKind.DynamicInvocation, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 5922: base(BoundKind.ConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || accessExpression.HasErrors()) 5955: base(BoundKind.LoweredConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || whenNotNull.HasErrors() || whenNullOpt.HasErrors()) 5996: base(BoundKind.ConditionalReceiver, syntax, type, hasErrors) 6005: base(BoundKind.ConditionalReceiver, syntax, type) 6034: base(BoundKind.ComplexConditionalReceiver, syntax, type, hasErrors || valueTypeReceiver.HasErrors() || referenceTypeReceiver.HasErrors()) 6067: base(BoundKind.MethodGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6108: base(BoundKind.PropertyGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6136: base(BoundKind.Call, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 6191: base(BoundKind.EventAssignmentOperator, syntax, type, hasErrors || receiverOpt.HasErrors() || argument.HasErrors()) 6230: base(BoundKind.Attribute, syntax, type, hasErrors || constructorArguments.HasErrors() || namedArguments.HasErrors()) 6275: base(BoundKind.UnconvertedObjectCreationExpression, syntax, null, hasErrors || arguments.HasErrors()) 6312protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type, bool hasErrors) 6320protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type) 6334: base(BoundKind.ObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6384protected BoundCollectionExpressionBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundNode> elements, TypeSymbol? type, bool hasErrors = false) 6399: base(BoundKind.UnconvertedCollectionExpression, syntax, elements, null, hasErrors || elements.HasErrors()) 6426: base(BoundKind.CollectionExpression, syntax, elements, type, hasErrors || placeholder.HasErrors() || collectionCreation.HasErrors() || collectionBuilderInvocationPlaceholder.HasErrors() || collectionBuilderInvocationConversion.HasErrors() || unconvertedCollectionExpression.HasErrors() || elements.HasErrors()) 6471: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type, hasErrors) 6476: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type) 6499: base(BoundKind.CollectionExpressionSpreadElement, syntax, hasErrors || expression.HasErrors() || expressionPlaceholder.HasErrors() || conversion.HasErrors() || lengthOrCount.HasErrors() || elementPlaceholder.HasErrors() || iteratorBody.HasErrors()) 6538protected BoundTupleExpression(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false) 6557: base(BoundKind.TupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || arguments.HasErrors()) 6584: base(BoundKind.ConvertedTupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || sourceTuple.HasErrors() || arguments.HasErrors()) 6614: base(BoundKind.DynamicObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6657: base(BoundKind.NoPiaObjectCreationExpression, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 6688protected BoundObjectInitializerExpressionBase(BoundKind kind, SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false) 6708: base(BoundKind.ObjectInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6736: base(BoundKind.ObjectInitializerMember, syntax, type, hasErrors || arguments.HasErrors()) 6785: base(BoundKind.DynamicObjectInitializerMember, syntax, type, hasErrors) 6797: base(BoundKind.DynamicObjectInitializerMember, syntax, type) 6830: base(BoundKind.CollectionInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6858: base(BoundKind.CollectionElementInitializer, syntax, type, hasErrors || arguments.HasErrors() || implicitReceiverOpt.HasErrors()) 6903: base(BoundKind.DynamicCollectionElementInitializer, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 6935: base(BoundKind.ImplicitReceiver, syntax, type, hasErrors) 6943: base(BoundKind.ImplicitReceiver, syntax, type) 6970: base(BoundKind.AnonymousObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || declarations.HasErrors()) 7006: base(BoundKind.AnonymousPropertyDeclaration, syntax, type, hasErrors) 7016: base(BoundKind.AnonymousPropertyDeclaration, syntax, type) 7046: base(BoundKind.NewT, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 7076: base(BoundKind.DelegateCreationExpression, syntax, type, hasErrors || argument.HasErrors()) 7112: base(BoundKind.ArrayCreation, syntax, type, hasErrors || bounds.HasErrors() || initializerOpt.HasErrors()) 7144: base(BoundKind.ArrayInitialization, syntax, null, hasErrors || initializers.HasErrors()) 7174protected BoundStackAllocArrayCreationBase(BoundKind kind, SyntaxNode syntax, TypeSymbol elementType, BoundExpression count, BoundArrayInitialization? initializerOpt, TypeSymbol? type, bool hasErrors = false) 7194: base(BoundKind.StackAllocArrayCreation, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7221: base(BoundKind.ConvertedStackAllocExpression, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7250: base(BoundKind.FieldAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7290: base(BoundKind.HoistedFieldAccess, syntax, type, hasErrors) 7300: base(BoundKind.HoistedFieldAccess, syntax, type) 7330: base(BoundKind.PropertyAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7368: base(BoundKind.EventAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7404: base(BoundKind.IndexerAccess, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 7455: base(BoundKind.ImplicitIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || argument.HasErrors() || lengthOrCountAccess.HasErrors() || receiverPlaceholder.HasErrors() || indexerOrSliceAccess.HasErrors() || argumentPlaceholders.HasErrors()) 7504: base(BoundKind.InlineArrayAccess, syntax, type, hasErrors || expression.HasErrors() || argument.HasErrors()) 7545: base(BoundKind.DynamicIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || arguments.HasErrors()) 7585: base(BoundKind.Lambda, syntax, type, hasErrors || unboundLambda.HasErrors() || body.HasErrors()) 7625: base(BoundKind.UnboundLambda, syntax, null, hasErrors) 7636: base(BoundKind.UnboundLambda, syntax, null) 7669: base(BoundKind.QueryClause, syntax, type, hasErrors || value.HasErrors() || operation.HasErrors() || cast.HasErrors() || unoptimizedForm.HasErrors()) 7710: base(BoundKind.TypeOrInstanceInitializers, syntax, statements, hasErrors || statements.HasErrors()) 7736: base(BoundKind.NameOfOperator, syntax, type, hasErrors || argument.HasErrors()) 7768protected BoundInterpolatedStringBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false) 7785: base(BoundKind.UnconvertedInterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7811: base(BoundKind.InterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7839: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type, hasErrors) 7844: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type) 7867: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type, hasErrors) 7876: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type) 7905: base(BoundKind.StringInsert, syntax, null, hasErrors || value.HasErrors() || alignment.HasErrors() || format.HasErrors()) 7940: base(BoundKind.IsPatternExpression, syntax, type, hasErrors || expression.HasErrors() || pattern.HasErrors() || reachabilityDecisionDag.HasErrors()) 7981protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors) 7992protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType) 8010: base(BoundKind.ConstantPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8047: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType, hasErrors) 8060: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType) 8086protected BoundObjectPattern(BoundKind kind, SyntaxNode syntax, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8104: base(BoundKind.DeclarationPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || variableAccess.HasErrors()) 8140: base(BoundKind.RecursivePattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || deconstruction.HasErrors() || properties.HasErrors() || variableAccess.HasErrors()) 8181: base(BoundKind.ListPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || subpatterns.HasErrors() || lengthAccess.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || variableAccess.HasErrors()) 8225: base(BoundKind.SlicePattern, syntax, inputType, narrowedType, hasErrors || pattern.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors()) 8264: base(BoundKind.ITuplePattern, syntax, inputType, narrowedType, hasErrors || subpatterns.HasErrors()) 8303protected BoundSubpattern(BoundKind kind, SyntaxNode syntax, BoundPattern pattern, bool hasErrors = false) 8318: base(BoundKind.PositionalSubpattern, syntax, pattern, hasErrors || pattern.HasErrors()) 8346: base(BoundKind.PropertySubpattern, syntax, pattern, hasErrors || member.HasErrors() || pattern.HasErrors()) 8376: base(BoundKind.PropertySubpatternMember, syntax, hasErrors || receiver.HasErrors()) 8408: base(BoundKind.TypePattern, syntax, inputType, narrowedType, hasErrors || declaredType.HasErrors()) 8444: base(BoundKind.BinaryPattern, syntax, inputType, narrowedType, hasErrors || left.HasErrors() || right.HasErrors()) 8483: base(BoundKind.NegatedPattern, syntax, inputType, narrowedType, hasErrors || negated.HasErrors()) 8517: base(BoundKind.RelationalPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8556: base(BoundKind.DiscardExpression, syntax, type, hasErrors) 8563: base(BoundKind.DiscardExpression, syntax, type) 8591: base(BoundKind.ThrowExpression, syntax, type, hasErrors || expression.HasErrors()) 8618protected VariablePendingInference(BoundKind kind, SyntaxNode syntax, Symbol variableSymbol, BoundExpression? receiverOpt, bool hasErrors = false) 8636: base(BoundKind.OutVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8662: base(BoundKind.DeconstructionVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8688: base(BoundKind.OutDeconstructVarPendingInference, syntax, null, hasErrors) 8695: base(BoundKind.OutDeconstructVarPendingInference, syntax, null) 8722protected BoundMethodBodyBase(BoundKind kind, SyntaxNode syntax, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8736: base(BoundKind.NonConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 8759: base(BoundKind.ConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || initializer.HasErrors() || blockBody.HasErrors() || expressionBody.HasErrors()) 8789: base(BoundKind.ExpressionWithNullability, syntax, type, hasErrors || expression.HasErrors()) 8820: base(BoundKind.WithExpression, syntax, type, hasErrors || receiver.HasErrors() || initializerExpression.HasErrors()) 8860case BoundKind.FieldEqualsValue: 8862case BoundKind.PropertyEqualsValue: 8864case BoundKind.ParameterEqualsValue: 8866case BoundKind.GlobalStatementInitializer: 8868case BoundKind.ValuePlaceholder: 8870case BoundKind.CapturedReceiverPlaceholder: 8872case BoundKind.DeconstructValuePlaceholder: 8874case BoundKind.TupleOperandPlaceholder: 8876case BoundKind.AwaitableValuePlaceholder: 8878case BoundKind.DisposableValuePlaceholder: 8880case BoundKind.ObjectOrCollectionValuePlaceholder: 8882case BoundKind.ImplicitIndexerValuePlaceholder: 8884case BoundKind.ImplicitIndexerReceiverPlaceholder: 8886case BoundKind.ListPatternReceiverPlaceholder: 8888case BoundKind.ListPatternIndexPlaceholder: 8890case BoundKind.SlicePatternReceiverPlaceholder: 8892case BoundKind.SlicePatternRangePlaceholder: 8894case BoundKind.Dup: 8896case BoundKind.PassByCopy: 8898case BoundKind.BadExpression: 8900case BoundKind.BadStatement: 8902case BoundKind.ExtractedFinallyBlock: 8904case BoundKind.TypeExpression: 8906case BoundKind.TypeOrValueExpression: 8908case BoundKind.NamespaceExpression: 8910case BoundKind.UnaryOperator: 8912case BoundKind.IncrementOperator: 8914case BoundKind.AddressOfOperator: 8916case BoundKind.UnconvertedAddressOfOperator: 8918case BoundKind.FunctionPointerLoad: 8920case BoundKind.PointerIndirectionOperator: 8922case BoundKind.PointerElementAccess: 8924case BoundKind.FunctionPointerInvocation: 8926case BoundKind.RefTypeOperator: 8928case BoundKind.MakeRefOperator: 8930case BoundKind.RefValueOperator: 8932case BoundKind.FromEndIndexExpression: 8934case BoundKind.RangeExpression: 8936case BoundKind.BinaryOperator: 8938case BoundKind.TupleBinaryOperator: 8940case BoundKind.UserDefinedConditionalLogicalOperator: 8942case BoundKind.CompoundAssignmentOperator: 8944case BoundKind.AssignmentOperator: 8946case BoundKind.DeconstructionAssignmentOperator: 8948case BoundKind.NullCoalescingOperator: 8950case BoundKind.NullCoalescingAssignmentOperator: 8952case BoundKind.UnconvertedConditionalOperator: 8954case BoundKind.ConditionalOperator: 8956case BoundKind.ArrayAccess: 8958case BoundKind.RefArrayAccess: 8960case BoundKind.ArrayLength: 8962case BoundKind.AwaitableInfo: 8964case BoundKind.AwaitExpression: 8966case BoundKind.TypeOfOperator: 8968case BoundKind.BlockInstrumentation: 8970case BoundKind.MethodDefIndex: 8972case BoundKind.LocalId: 8974case BoundKind.ParameterId: 8976case BoundKind.StateMachineInstanceId: 8978case BoundKind.MaximumMethodDefIndex: 8980case BoundKind.InstrumentationPayloadRoot: 8982case BoundKind.ThrowIfModuleCancellationRequested: 8984case BoundKind.ModuleCancellationTokenExpression: 8986case BoundKind.ModuleVersionId: 8988case BoundKind.ModuleVersionIdString: 8990case BoundKind.SourceDocumentIndex: 8992case BoundKind.MethodInfo: 8994case BoundKind.FieldInfo: 8996case BoundKind.DefaultLiteral: 8998case BoundKind.DefaultExpression: 9000case BoundKind.IsOperator: 9002case BoundKind.AsOperator: 9004case BoundKind.SizeOfOperator: 9006case BoundKind.Conversion: 9008case BoundKind.ReadOnlySpanFromArray: 9010case BoundKind.ArgList: 9012case BoundKind.ArgListOperator: 9014case BoundKind.FixedLocalCollectionInitializer: 9016case BoundKind.SequencePoint: 9018case BoundKind.SequencePointWithSpan: 9020case BoundKind.SavePreviousSequencePoint: 9022case BoundKind.RestorePreviousSequencePoint: 9024case BoundKind.StepThroughSequencePoint: 9026case BoundKind.Block: 9028case BoundKind.Scope: 9030case BoundKind.StateMachineScope: 9032case BoundKind.LocalDeclaration: 9034case BoundKind.MultipleLocalDeclarations: 9036case BoundKind.UsingLocalDeclarations: 9038case BoundKind.LocalFunctionStatement: 9040case BoundKind.NoOpStatement: 9042case BoundKind.ReturnStatement: 9044case BoundKind.YieldReturnStatement: 9046case BoundKind.YieldBreakStatement: 9048case BoundKind.ThrowStatement: 9050case BoundKind.ExpressionStatement: 9052case BoundKind.BreakStatement: 9054case BoundKind.ContinueStatement: 9056case BoundKind.SwitchStatement: 9058case BoundKind.SwitchDispatch: 9060case BoundKind.IfStatement: 9062case BoundKind.DoStatement: 9064case BoundKind.WhileStatement: 9066case BoundKind.ForStatement: 9068case BoundKind.ForEachStatement: 9070case BoundKind.ForEachDeconstructStep: 9072case BoundKind.UsingStatement: 9074case BoundKind.FixedStatement: 9076case BoundKind.LockStatement: 9078case BoundKind.TryStatement: 9080case BoundKind.CatchBlock: 9082case BoundKind.Literal: 9084case BoundKind.Utf8String: 9086case BoundKind.ThisReference: 9088case BoundKind.PreviousSubmissionReference: 9090case BoundKind.HostObjectMemberReference: 9092case BoundKind.BaseReference: 9094case BoundKind.Local: 9096case BoundKind.PseudoVariable: 9098case BoundKind.RangeVariable: 9100case BoundKind.Parameter: 9102case BoundKind.LabelStatement: 9104case BoundKind.GotoStatement: 9106case BoundKind.LabeledStatement: 9108case BoundKind.Label: 9110case BoundKind.StatementList: 9112case BoundKind.ConditionalGoto: 9114case BoundKind.SwitchExpressionArm: 9116case BoundKind.UnconvertedSwitchExpression: 9118case BoundKind.ConvertedSwitchExpression: 9120case BoundKind.DecisionDag: 9122case BoundKind.EvaluationDecisionDagNode: 9124case BoundKind.TestDecisionDagNode: 9126case BoundKind.WhenDecisionDagNode: 9128case BoundKind.LeafDecisionDagNode: 9130case BoundKind.DagTemp: 9132case BoundKind.DagTypeTest: 9134case BoundKind.DagNonNullTest: 9136case BoundKind.DagExplicitNullTest: 9138case BoundKind.DagValueTest: 9140case BoundKind.DagRelationalTest: 9142case BoundKind.DagDeconstructEvaluation: 9144case BoundKind.DagTypeEvaluation: 9146case BoundKind.DagFieldEvaluation: 9148case BoundKind.DagPropertyEvaluation: 9150case BoundKind.DagIndexEvaluation: 9152case BoundKind.DagIndexerEvaluation: 9154case BoundKind.DagSliceEvaluation: 9156case BoundKind.DagAssignmentEvaluation: 9158case BoundKind.SwitchSection: 9160case BoundKind.SwitchLabel: 9162case BoundKind.SequencePointExpression: 9164case BoundKind.Sequence: 9166case BoundKind.SpillSequence: 9168case BoundKind.DynamicMemberAccess: 9170case BoundKind.DynamicInvocation: 9172case BoundKind.ConditionalAccess: 9174case BoundKind.LoweredConditionalAccess: 9176case BoundKind.ConditionalReceiver: 9178case BoundKind.ComplexConditionalReceiver: 9180case BoundKind.MethodGroup: 9182case BoundKind.PropertyGroup: 9184case BoundKind.Call: 9186case BoundKind.EventAssignmentOperator: 9188case BoundKind.Attribute: 9190case BoundKind.UnconvertedObjectCreationExpression: 9192case BoundKind.ObjectCreationExpression: 9194case BoundKind.UnconvertedCollectionExpression: 9196case BoundKind.CollectionExpression: 9198case BoundKind.CollectionExpressionSpreadExpressionPlaceholder: 9200case BoundKind.CollectionExpressionSpreadElement: 9202case BoundKind.TupleLiteral: 9204case BoundKind.ConvertedTupleLiteral: 9206case BoundKind.DynamicObjectCreationExpression: 9208case BoundKind.NoPiaObjectCreationExpression: 9210case BoundKind.ObjectInitializerExpression: 9212case BoundKind.ObjectInitializerMember: 9214case BoundKind.DynamicObjectInitializerMember: 9216case BoundKind.CollectionInitializerExpression: 9218case BoundKind.CollectionElementInitializer: 9220case BoundKind.DynamicCollectionElementInitializer: 9222case BoundKind.ImplicitReceiver: 9224case BoundKind.AnonymousObjectCreationExpression: 9226case BoundKind.AnonymousPropertyDeclaration: 9228case BoundKind.NewT: 9230case BoundKind.DelegateCreationExpression: 9232case BoundKind.ArrayCreation: 9234case BoundKind.ArrayInitialization: 9236case BoundKind.StackAllocArrayCreation: 9238case BoundKind.ConvertedStackAllocExpression: 9240case BoundKind.FieldAccess: 9242case BoundKind.HoistedFieldAccess: 9244case BoundKind.PropertyAccess: 9246case BoundKind.EventAccess: 9248case BoundKind.IndexerAccess: 9250case BoundKind.ImplicitIndexerAccess: 9252case BoundKind.InlineArrayAccess: 9254case BoundKind.DynamicIndexerAccess: 9256case BoundKind.Lambda: 9258case BoundKind.UnboundLambda: 9260case BoundKind.QueryClause: 9262case BoundKind.TypeOrInstanceInitializers: 9264case BoundKind.NameOfOperator: 9266case BoundKind.UnconvertedInterpolatedString: 9268case BoundKind.InterpolatedString: 9270case BoundKind.InterpolatedStringHandlerPlaceholder: 9272case BoundKind.InterpolatedStringArgumentPlaceholder: 9274case BoundKind.StringInsert: 9276case BoundKind.IsPatternExpression: 9278case BoundKind.ConstantPattern: 9280case BoundKind.DiscardPattern: 9282case BoundKind.DeclarationPattern: 9284case BoundKind.RecursivePattern: 9286case BoundKind.ListPattern: 9288case BoundKind.SlicePattern: 9290case BoundKind.ITuplePattern: 9292case BoundKind.PositionalSubpattern: 9294case BoundKind.PropertySubpattern: 9296case BoundKind.PropertySubpatternMember: 9298case BoundKind.TypePattern: 9300case BoundKind.BinaryPattern: 9302case BoundKind.NegatedPattern: 9304case BoundKind.RelationalPattern: 9306case BoundKind.DiscardExpression: 9308case BoundKind.ThrowExpression: 9310case BoundKind.OutVariablePendingInference: 9312case BoundKind.DeconstructionVariablePendingInference: 9314case BoundKind.OutDeconstructVarPendingInference: 9316case BoundKind.NonConstructorMethodBody: 9318case BoundKind.ConstructorMethodBody: 9320case BoundKind.ExpressionWithNullability: 9322case 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 (42)
286node.Kind is not (BoundKind.ImplicitReceiver or BoundKind.ObjectOrCollectionValuePlaceholder or BoundKind.ValuePlaceholder)) 309return node.Kind == BoundKind.DeconstructionAssignmentOperator && !((BoundDeconstructionAssignmentOperator)node).IsUsed; 709if (initializer.Kind == BoundKind.Block) 881case BoundKind.Block: 886if (initializer.Kind == BoundKind.ExpressionStatement) 888goto case BoundKind.ExpressionStatement; 893case BoundKind.ExpressionStatement: 894return ((BoundExpressionStatement)initializer).Expression.Kind == BoundKind.AssignmentOperator; 911if (statement.Kind != BoundKind.ExpressionStatement) 922Debug.Assert(assignment.Left.Kind == BoundKind.FieldAccess); 1020case BoundKind.Parameter: 1021case BoundKind.Local: 1022case BoundKind.ArrayAccess: 1023case BoundKind.ThisReference: 1024case BoundKind.PointerIndirectionOperator: 1025case BoundKind.PointerElementAccess: 1026case BoundKind.RefValueOperator: 1027case BoundKind.PseudoVariable: 1028case BoundKind.DiscardExpression: 1031case BoundKind.DeconstructValuePlaceholder: 1036case BoundKind.InterpolatedStringArgumentPlaceholder: 1043case BoundKind.InterpolatedStringHandlerPlaceholder: 1048case BoundKind.CollectionExpressionSpreadExpressionPlaceholder: 1052case BoundKind.EventAccess: 1066case BoundKind.FieldAccess: 1077case BoundKind.Sequence: 1080case BoundKind.AssignmentOperator: 1083case BoundKind.ConditionalOperator: 1086case BoundKind.Call: 1089case BoundKind.PropertyAccess: 1092case BoundKind.IndexerAccess: 1095case BoundKind.ImplicitIndexerAccess: 1098case BoundKind.ImplicitIndexerReceiverPlaceholder: 1102case BoundKind.InlineArrayAccess: 1105case BoundKind.ImplicitIndexerValuePlaceholder: 1110case BoundKind.ListPatternReceiverPlaceholder: 1111case BoundKind.SlicePatternReceiverPlaceholder: 1112case BoundKind.SlicePatternRangePlaceholder: 1113case BoundKind.ListPatternIndexPlaceholder: 1116case BoundKind.Conversion:
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
388ImmutableArray<BoundDecisionDagNode> nodesToLower = sortedNodes.WhereAsArray(n => n.Kind != BoundKind.WhenDecisionDagNode && n.Kind != BoundKind.LeafDecisionDagNode); 972if (!sortedNodes.Any(static n => n.Kind == BoundKind.WhenDecisionDagNode)) return; 1184Debug.Assert(left.Kind == BoundKind.Local && left == binding.VariableAccess);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (4)
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: 96case BoundKind.DynamicIndexerAccess: 107case BoundKind.DynamicMemberAccess: 116case BoundKind.EventAccess: 175case BoundKind.DynamicIndexerAccess: 176case BoundKind.DynamicMemberAccess: 179case BoundKind.PropertyAccess: 198case BoundKind.IndexerAccess: 218case BoundKind.Local: 219case BoundKind.Parameter: 220case BoundKind.FieldAccess: 230case BoundKind.DiscardExpression: 235case BoundKind.Sequence: 241if (sequence.Value.Kind == BoundKind.IndexerAccess)
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (13)
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: 1548if (argument.Kind == BoundKind.Local) 1637if (argument.Kind == BoundKind.Local)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (40)
99if (node.Left.Kind == BoundKind.DynamicMemberAccess && 277Debug.Assert(receiverOpt.Kind != BoundKind.TypeExpression); 575Debug.Assert(receiver.Kind != BoundKind.TypeExpression); 687case BoundKind.PropertyAccess: 702case BoundKind.IndexerAccess: 714case BoundKind.ImplicitIndexerAccess: 727case BoundKind.FieldAccess: 744case BoundKind.ArrayAccess: 772case BoundKind.InlineArrayAccess: 776case BoundKind.DynamicMemberAccess: 779case BoundKind.DynamicIndexerAccess: 782case BoundKind.Local: 783case BoundKind.Parameter: 784case BoundKind.ThisReference: // a special kind of parameter 785case BoundKind.PseudoVariable: 793case BoundKind.Call: 797case BoundKind.FunctionPointerInvocation: 801case BoundKind.ConditionalOperator: 805case BoundKind.AssignmentOperator: 809case BoundKind.PointerElementAccess: 810case BoundKind.PointerIndirectionOperator: 811case BoundKind.RefValueOperator: 814case BoundKind.EventAccess: 937case BoundKind.ThisReference: 940case BoundKind.BaseReference: 943case BoundKind.Literal: 947case BoundKind.Parameter: 952case BoundKind.Local: 955case BoundKind.TypeExpression: 979case BoundKind.Parameter: 981goto case BoundKind.Local; 982case BoundKind.Local: 983case BoundKind.Lambda: 984case BoundKind.ThisReference: 985case BoundKind.BaseReference: 986case BoundKind.Literal: 989case BoundKind.Conversion: 994case BoundKind.PassByCopy: 997case BoundKind.ObjectCreationExpression: 1009case 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)
497if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 539if (makeOffsetInput.ConstantValueOpt is null && lengthAccess.Kind is not BoundKind.ArrayLength) 799if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 950if ((rewriteFlags & captureLength) != 0 && lengthAccess.Kind is not BoundKind.Local)
Lowering\LocalRewriter\LocalRewriter_IsOperator.cs (2)
33if (rewrittenOperand.Kind == BoundKind.MethodGroup) 37if (receiver != null && receiver.Kind != BoundKind.ThisReference)
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (2)
244while (node.Kind != BoundKind.LeafDecisionDagNode && node.Kind != BoundKind.WhenDecisionDagNode)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingAssignmentOperator.cs (2)
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)
258if (originalLeft.Kind != BoundKind.Local) 272Debug.Assert(originalRight.Kind != BoundKind.ConvertedStackAllocExpression); 294if (rewrittenLeft.Kind != BoundKind.Local && originalRight.Kind == BoundKind.ConvertedStackAllocExpression) 418return originalReceiver is { Kind: BoundKind.BaseReference } && 419rewrittenReceiver is { Kind: not BoundKind.BaseReference };
Lowering\SpillSequenceSpiller.cs (22)
19private const BoundKind SpillSequenceBuilderKind = (BoundKind)byte.MaxValue; 316case BoundKind.ArrayInitialization: 323case BoundKind.ArgListOperator: 336case BoundKind.Sequence: 349case BoundKind.AssignmentOperator: 352assignment is not { Left.Kind: BoundKind.Local, Right.Kind: BoundKind.ArrayAccess }) // Optimize for some known to be safe scenarios. 378case BoundKind.ThisReference: 379case BoundKind.BaseReference: 387case BoundKind.Parameter: 395case BoundKind.Local: 404case BoundKind.FieldAccess: 422case BoundKind.Literal: 423case BoundKind.TypeExpression: 426case BoundKind.ConditionalReceiver: 431case BoundKind.Call: 479case BoundKind.ObjectCreationExpression: 874case BoundKind.Local: 875case BoundKind.Parameter: 879case BoundKind.FieldAccess: 888case BoundKind.ArrayAccess:
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
297if (node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.ThisReference)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (11)
413if (statement.Kind == BoundKind.Block) 417if (rewrittenStatements.Length == 1 && rewrittenStatements[0].Kind == BoundKind.StateMachineScope) 592case BoundKind.ArrayAccess: 606case BoundKind.FieldAccess: 625if (receiver.Kind != BoundKind.ThisReference && !isFieldOfStruct) 633case BoundKind.ThisReference: 634case BoundKind.BaseReference: 635case BoundKind.DefaultExpression: 638case BoundKind.Call: 656case BoundKind.ConditionalOperator: 836if (node.Left.Kind != BoundKind.Local)
Lowering\SyntheticBoundNodeFactory.cs (3)
585if (body.Kind != BoundKind.Block) 1746var discardsPresent = arguments.Any(static a => a.Kind == BoundKind.DiscardExpression); 1751(arg, t) => arg.Kind == BoundKind.DiscardExpression ? t.factory.MakeTempForDiscard((BoundDiscardExpression)arg, t.builder) : arg,
Operations\CSharpOperationFactory.cs (172)
37case BoundKind.DeconstructValuePlaceholder: 39case BoundKind.DeconstructionAssignmentOperator: 41case BoundKind.Call: 43case BoundKind.Local: 45case BoundKind.FieldAccess: 47case BoundKind.PropertyAccess: 49case BoundKind.IndexerAccess: 51case BoundKind.EventAccess: 53case BoundKind.EventAssignmentOperator: 55case BoundKind.Parameter: 57case BoundKind.Literal: 59case BoundKind.Utf8String: 61case BoundKind.DynamicInvocation: 63case BoundKind.DynamicIndexerAccess: 65case BoundKind.ObjectCreationExpression: 67case BoundKind.WithExpression: 69case BoundKind.DynamicObjectCreationExpression: 71case BoundKind.ObjectInitializerExpression: 73case BoundKind.CollectionInitializerExpression: 75case BoundKind.ObjectInitializerMember: 77case BoundKind.CollectionElementInitializer: 79case BoundKind.DynamicObjectInitializerMember: 81case BoundKind.DynamicMemberAccess: 83case BoundKind.DynamicCollectionElementInitializer: 85case BoundKind.UnboundLambda: 87case BoundKind.Lambda: 89case BoundKind.Conversion: 91case BoundKind.AsOperator: 93case BoundKind.IsOperator: 95case BoundKind.SizeOfOperator: 97case BoundKind.TypeOfOperator: 99case BoundKind.ArrayCreation: 101case BoundKind.ArrayInitialization: 103case BoundKind.CollectionExpression: 105case BoundKind.DefaultLiteral: 107case BoundKind.DefaultExpression: 109case BoundKind.BaseReference: 111case BoundKind.ThisReference: 113case BoundKind.AssignmentOperator: 115case BoundKind.CompoundAssignmentOperator: 117case BoundKind.IncrementOperator: 119case BoundKind.BadExpression: 121case BoundKind.NewT: 123case BoundKind.NoPiaObjectCreationExpression: 125case BoundKind.UnaryOperator: 127case BoundKind.BinaryOperator: 128case BoundKind.UserDefinedConditionalLogicalOperator: 130case BoundKind.TupleBinaryOperator: 132case BoundKind.ConditionalOperator: 134case BoundKind.NullCoalescingOperator: 136case BoundKind.AwaitExpression: 138case BoundKind.ArrayAccess: 140case BoundKind.ImplicitIndexerAccess: 142case BoundKind.InlineArrayAccess: 144case BoundKind.NameOfOperator: 146case BoundKind.ThrowExpression: 148case BoundKind.AddressOfOperator: 150case BoundKind.ImplicitReceiver: 152case BoundKind.ConditionalAccess: 154case BoundKind.ConditionalReceiver: 156case BoundKind.FieldEqualsValue: 158case BoundKind.PropertyEqualsValue: 160case BoundKind.ParameterEqualsValue: 162case BoundKind.Block: 164case BoundKind.ContinueStatement: 166case BoundKind.BreakStatement: 168case BoundKind.YieldBreakStatement: 170case BoundKind.GotoStatement: 172case BoundKind.NoOpStatement: 174case BoundKind.IfStatement: 176case BoundKind.WhileStatement: 178case BoundKind.DoStatement: 180case BoundKind.ForStatement: 182case BoundKind.ForEachStatement: 184case BoundKind.TryStatement: 186case BoundKind.CatchBlock: 188case BoundKind.FixedStatement: 190case BoundKind.UsingStatement: 192case BoundKind.ThrowStatement: 194case BoundKind.ReturnStatement: 196case BoundKind.YieldReturnStatement: 198case BoundKind.LockStatement: 200case BoundKind.BadStatement: 202case BoundKind.LocalDeclaration: 204case BoundKind.MultipleLocalDeclarations: 205case BoundKind.UsingLocalDeclarations: 207case BoundKind.LabelStatement: 209case BoundKind.LabeledStatement: 211case BoundKind.ExpressionStatement: 213case BoundKind.TupleLiteral: 214case BoundKind.ConvertedTupleLiteral: 216case BoundKind.InterpolatedString: 218case BoundKind.StringInsert: 220case BoundKind.LocalFunctionStatement: 222case BoundKind.AnonymousObjectCreationExpression: 224case BoundKind.ConstantPattern: 226case BoundKind.DeclarationPattern: 228case BoundKind.RecursivePattern: 230case BoundKind.ITuplePattern: 232case BoundKind.DiscardPattern: 234case BoundKind.BinaryPattern: 236case BoundKind.NegatedPattern: 238case BoundKind.RelationalPattern: 240case BoundKind.TypePattern: 242case BoundKind.SlicePattern: 244case BoundKind.ListPattern: 246case BoundKind.SwitchStatement: 248case BoundKind.SwitchLabel: 250case BoundKind.IsPatternExpression: 252case BoundKind.QueryClause: 254case BoundKind.DelegateCreationExpression: 256case BoundKind.RangeVariable: 258case BoundKind.ConstructorMethodBody: 260case BoundKind.NonConstructorMethodBody: 262case BoundKind.DiscardExpression: 264case BoundKind.NullCoalescingAssignmentOperator: 266case BoundKind.FromEndIndexExpression: 268case BoundKind.RangeExpression: 270case BoundKind.SwitchSection: 272case BoundKind.ConvertedSwitchExpression: 274case BoundKind.SwitchExpressionArm: 276case BoundKind.ObjectOrCollectionValuePlaceholder: 278case BoundKind.FunctionPointerInvocation: 280case BoundKind.UnconvertedAddressOfOperator: 282case BoundKind.InterpolatedStringArgumentPlaceholder: 284case BoundKind.InterpolatedStringHandlerPlaceholder: 286case BoundKind.Attribute: 289case BoundKind.ArgList: 290case BoundKind.ArgListOperator: 291case BoundKind.ConvertedStackAllocExpression: 292case BoundKind.FixedLocalCollectionInitializer: 293case BoundKind.GlobalStatementInitializer: 294case BoundKind.HostObjectMemberReference: 295case BoundKind.MakeRefOperator: 296case BoundKind.MethodGroup: 297case BoundKind.NamespaceExpression: 298case BoundKind.PointerElementAccess: 299case BoundKind.PointerIndirectionOperator: 300case BoundKind.PreviousSubmissionReference: 301case BoundKind.RefTypeOperator: 302case BoundKind.RefValueOperator: 303case BoundKind.Sequence: 304case BoundKind.StackAllocArrayCreation: 305case BoundKind.TypeExpression: 306case BoundKind.TypeOrValueExpression: 314case BoundKind.FixedLocalCollectionInitializer: 326case BoundKind.UnconvertedInterpolatedString: 327case BoundKind.UnconvertedConditionalOperator: 328case BoundKind.UnconvertedSwitchExpression: 329case BoundKind.AnonymousPropertyDeclaration: 400case BoundKind.LocalDeclaration: 404case BoundKind.MultipleLocalDeclarations: 405case BoundKind.UsingLocalDeclarations: 524case BoundKind.LocalDeclaration: 530case BoundKind.MultipleLocalDeclarations: 531case BoundKind.UsingLocalDeclarations: 958if (receiver?.Kind == BoundKind.TypeExpression) 1070Debug.Assert(boundOperand.Kind == BoundKind.BadExpression || 1072ExpressionOpt?.Kind == BoundKind.BadExpression); 1082if (boundOperand.Kind == BoundKind.ConvertedTupleLiteral && TypeSymbol.Equals(boundOperand.Type, boundConversion.Type, TypeCompareKind.ConsiderEverything2)) 1096if (boundConversion.ExplicitCastInCode && conversion.IsIdentity && boundOperand.Kind == BoundKind.Conversion) 1102nestedOperand.Kind == BoundKind.ConvertedTupleLiteral && 1118if ((boundOperand.Kind == BoundKind.Lambda || 1119boundOperand.Kind == BoundKind.UnboundLambda || 1120boundOperand.Kind == BoundKind.MethodGroup) && 1327boundAssignmentOperator.Right?.Kind == BoundKind.ObjectInitializerExpression || 1328boundAssignmentOperator.Right?.Kind == BoundKind.CollectionInitializerExpression; 1643if (boundIndexerAccess.LengthOrCountAccess.Kind == BoundKind.ArrayLength) 2280if (part.Kind == BoundKind.StringInsert) 2539if (variable == null && boundDeclarationPattern.VariableAccess?.Kind == BoundKind.DiscardExpression) 2753Debug.Assert(boundSwitchLabel.Pattern.Kind == BoundKind.DiscardPattern); 2757boundSwitchLabel.Pattern.Kind == BoundKind.ConstantPattern &&
Operations\CSharpOperationFactory_Methods.cs (14)
25if (statement.Kind == BoundKind.StatementList) 100if (instance == null || instance.Kind == BoundKind.TypeExpression) 106if (symbol != null && symbol.IsStatic && instance.WasCompilerGenerated && instance.Kind == BoundKind.ThisReference) 163if (boundDelegateCreationExpression.Argument.Kind == BoundKind.MethodGroup && 198case BoundKind.ObjectInitializerMember: 209case BoundKind.IndexerAccess: 217case BoundKind.ObjectCreationExpression: 225case BoundKind.Attribute: 232case BoundKind.Call: 241case BoundKind.CollectionElementInitializer: 250case BoundKind.FunctionPointerInvocation: 393|| (receiverOpt.Kind != BoundKind.ThisReference 394&& receiverOpt.Kind != BoundKind.BaseReference 395&& receiverOpt.Kind != BoundKind.ObjectOrCollectionValuePlaceholder)))
Symbols\ConstantValueUtils.cs (1)
97while (unconvertedBoundValue.Kind == BoundKind.Conversion)
Symbols\FunctionTypeSymbol.cs (2)
68Debug.Assert(expression.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda);
Symbols\Source\ParameterHelpers.cs (4)
1081case BoundKind.DefaultLiteral: 1082case BoundKind.DefaultExpression: 1084case BoundKind.ObjectCreationExpression: 1086case BoundKind.Conversion:
Symbols\Source\SourceComplexParameterSymbol.cs (1)
401if (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);