2388 references to BoundKind
Microsoft.CodeAnalysis.CSharp (2388)
Binder\Binder_Attributes.cs (5)
822case BoundKind.FieldAccess: 827case BoundKind.PropertyAccess: 872case BoundKind.Conversion: 874case BoundKind.TypeOfOperator: 876case BoundKind.ArrayCreation:
Binder\Binder_Await.cs (3)
81if (expression.Kind != BoundKind.Call || 608if (getAwaiterCall.Kind != BoundKind.Call) 724if (getAwaiterGetResultCall.Kind != BoundKind.Call)
Binder\Binder_Conversions.cs (18)
179if (conversion.IsAnonymousFunction && source.Kind == BoundKind.UnboundLambda) 253if (source.Kind == BoundKind.UnconvertedSwitchExpression) 275if (source.Kind == BoundKind.UnconvertedCollectionExpression) 298if (source.Kind == BoundKind.UnconvertedConditionalOperator) 1905if (boundExpression.Kind == BoundKind.FieldAccess || boundExpression.Kind == BoundKind.PropertyAccess) 1912if (boundExpression.Kind != BoundKind.MethodGroup) 2843Debug.Assert(source.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda); 2850if (source.Kind == BoundKind.UnboundLambda && 2859source.Kind == BoundKind.MethodGroup && 3243if (node.Kind != BoundKind.MethodGroup) 3386if (receiverOpt.Kind == BoundKind.QueryClause) 3488while (receiverOpt.Kind == BoundKind.QueryClause) 3493return receiverOpt.Kind == BoundKind.TypeExpression; 3505case BoundKind.ThisReference: 3506case BoundKind.HostObjectMemberReference: 3507case BoundKind.PreviousSubmissionReference:
Binder\Binder_Deconstruct.cs (9)
213if (boundRHS.Kind == BoundKind.TupleLiteral) 373case BoundKind.DeconstructionVariablePendingInference: 378case BoundKind.DiscardExpression: 408case BoundKind.DeconstructionVariablePendingInference: 412case BoundKind.DiscardExpression: 490if (element.Kind == BoundKind.TupleLiteral) 599if (expression.Kind == BoundKind.DiscardExpression) 663if (memberAccess.Kind != BoundKind.MethodGroup) 795if (expression == null && checkedVariable.Kind != BoundKind.DiscardExpression)
Binder\Binder_Expressions.cs (73)
224BoundKind exprKind = expr.Kind; 226if (expr.HasAnyErrors && ((object)resultType != null || exprKind == BoundKind.UnboundLambda || exprKind == BoundKind.DefaultLiteral)) 231if (exprKind == BoundKind.BadExpression) 278if (valueOrType.Kind == BoundKind.TypeExpression) 448Debug.Assert(expr.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup); 578if (expr.Kind == BoundKind.ArgListOperator) 620if (IsEarlyAttributeBinder && result.Kind == BoundKind.MethodGroup && (!IsInsideNameof || EnclosingNameofArgument != node)) 2851if (operand.Kind == BoundKind.UnboundLambda) 2900case BoundKind.MethodGroup: 2910case BoundKind.TupleLiteral: 2934case BoundKind.StackAllocArrayCreation: 2940case BoundKind.UnconvertedConditionalOperator when operand.Type is null: 2941case BoundKind.UnconvertedSwitchExpression when operand.Type is null: 2946case BoundKind.UnconvertedCollectionExpression: 2951case BoundKind.UnconvertedAddressOfOperator: 3197case BoundKind.PropertyAccess: 3198case BoundKind.IndexerAccess: 3588else if (argument.Kind == BoundKind.OutVariablePendingInference) 3592else if (argument.Kind == BoundKind.OutDeconstructVarPendingInference) 3596else if (argument.Kind == BoundKind.DiscardExpression && !argument.HasExpressionType()) 3632(BoundKind.OutVariablePendingInference or BoundKind.OutDeconstructVarPendingInference or BoundKind.DiscardExpression or BoundKind.ArgListOperator)); 5618else if (argument.Kind == BoundKind.MethodGroup) 6033if (boundMember.Kind == BoundKind.PropertyGroup) 6075BoundKind boundMemberKind = boundMember.Kind; 6087case BoundKind.FieldAccess: 6104case BoundKind.EventAccess: 6107case BoundKind.PropertyAccess: 6111case BoundKind.IndexerAccess: 6144case BoundKind.ImplicitIndexerAccess: 6155case BoundKind.DynamicObjectInitializerMember: 6158case BoundKind.DynamicIndexerAccess: 6168case BoundKind.ArrayAccess: 6169case BoundKind.PointerElementAccess: 6662if (addMethodInvocation.Kind == BoundKind.DynamicInvocation) 6673else if (addMethodInvocation.Kind == BoundKind.Call) 6702Debug.Assert(addMethodInvocation.Kind == BoundKind.BadExpression); 7189case BoundKind.ObjectCreationExpression: 7195case BoundKind.BadExpression: 7946if (boundLeft.Kind == BoundKind.UnboundLambda) 7993case BoundKind.NamespaceExpression: 8003case BoundKind.TypeExpression: 8013case BoundKind.TypeOrValueExpression: 8023if (boundLeft.Kind == BoundKind.Literal && ((BoundLiteral)boundLeft).ConstantValueOpt == ConstantValue.Null) 8213case BoundKind.MethodGroup: 8236case BoundKind.PropertyGroup: 8338bool leftIsBaseReference = boundLeft.Kind == BoundKind.BaseReference; 8445if (boundLeft.HasAnyErrors && boundLeft.Kind != BoundKind.TypeOrValueExpression) 8466else if (boundLeft.Kind == BoundKind.TypeExpression || 8467boundLeft.Kind == BoundKind.BaseReference || 8477else if (boundLeft.Kind == BoundKind.AwaitableValuePlaceholder && boundLeft.Type.IsIAsyncEnumerableType(Compilation)) 8697ReportDiagnosticsIfObsolete(diagnostics, symbol, node, hasBaseReceiver: left.Kind == BoundKind.BaseReference); 9187if (left.Kind == BoundKind.BaseReference || analyzedArguments.HasDynamicArgument) 9284if (left.Kind == BoundKind.BaseReference || analyzedArguments.HasDynamicArgument) 9988ReportDiagnosticsIfObsolete(diagnostics, propertySymbol, node, hasBaseReceiver: receiver?.Kind == BoundKind.BaseReference); 10104case BoundKind.PreviousSubmissionReference: 10107case BoundKind.TypeExpression: 10109case BoundKind.QueryClause: 10313if (receiver.Kind == BoundKind.PropertyGroup) 10728if (index.Kind == BoundKind.OutVariablePendingInference) 10732else if (index.Kind == BoundKind.DiscardExpression && !index.HasExpressionType()) 10921LookupOptions lookupOptions = expr.Kind == BoundKind.BaseReference ? LookupOptions.UseBaseReferenceAccessibility : LookupOptions.Default; 11073BoundKind receiverKind = receiver.Kind; 11074if (receiverKind == BoundKind.BaseReference) 11079else if (receiverKind == BoundKind.TypeOrValueExpression) 11209ReportDiagnosticsIfObsolete(diagnostics, property, syntax, hasBaseReceiver: receiver != null && receiver.Kind == BoundKind.BaseReference); 11221if (!gotError && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 12359if (access.Kind == BoundKind.MethodGroup) 12526if (receiver.Kind == BoundKind.UnboundLambda)
Binder\Binder_Initializers.cs (2)
268if (statement.Kind == BoundKind.LabeledStatement) 271while (labeledStatementBody.Kind == BoundKind.LabeledStatement)
Binder\Binder_Invocation.cs (40)
108if (!allowFieldsAndProperties && (boundExpression.Kind == BoundKind.FieldAccess || boundExpression.Kind == BoundKind.PropertyAccess)) 113if (boundExpression.Kind == BoundKind.FieldAccess) 125Debug.Assert(allowFieldsAndProperties || boundExpression.Kind is (BoundKind.MethodGroup or BoundKind.BadExpression)); 130Debug.Assert(!args.Any(static e => e.Kind == BoundKind.OutVariablePendingInference || 131e.Kind == BoundKind.OutDeconstructVarPendingInference || 132e.Kind == BoundKind.DiscardExpression && !e.HasExpressionType())); 146if (queryClause != null && result.Kind == BoundKind.DynamicInvocation) 162if (boundExpression.Kind == BoundKind.FieldAccess) 247string name = boundExpression.Kind == BoundKind.MethodGroup ? GetName(node.Expression) : null; 281if (argument.Kind == BoundKind.OutVariablePendingInference) 358else if (boundExpression.Kind == BoundKind.MethodGroup) 411if (expression.Kind == BoundKind.MethodGroup) 421case BoundKind.BaseReference: 426case BoundKind.ThisReference: 449case BoundKind.TypeOrValueExpression: 594if (arg.Kind == BoundKind.Lambda || arg.Kind == BoundKind.UnboundLambda) 600else if (arg.Kind == BoundKind.MethodGroup) 606else if (arg.Kind == BoundKind.ArgListOperator) 759Debug.Assert(extensionMemberAccess.Kind != BoundKind.MethodGroup); 1107case BoundKind.Call: 1121else if (call.ReceiverOpt.Kind == BoundKind.BaseReference && this.ContainingType.IsRestrictedType()) 1129case BoundKind.DynamicInvocation: 1142case BoundKind.FunctionPointerInvocation: 1339if (!gotError && method.RequiresInstanceReceiver && receiver != null && receiver.Kind == BoundKind.ThisReference && receiver.WasCompilerGenerated) 1355bool hasBaseReceiver = receiver != null && receiver.Kind == BoundKind.BaseReference; 2001case BoundKind.TypeOrValueExpression: 2027case BoundKind.QueryClause: 2065if ((object)expr != null && expr.Kind != BoundKind.TypeExpression) 2206case BoundKind.UnboundLambda: 2243case BoundKind.OutVariablePendingInference: 2244case BoundKind.DiscardExpression: 2252if (argument.Kind == BoundKind.OutVariablePendingInference) 2263else if (argument.Kind == BoundKind.DiscardExpression) 2277case BoundKind.OutDeconstructVarPendingInference: 2282case BoundKind.Parameter: 2283case BoundKind.Local: 2371var originalMethods = (expr.Kind == BoundKind.MethodGroup) ? ((BoundMethodGroup)expr).Methods : ImmutableArray<MethodSymbol>.Empty;
Binder\Binder_Operators.cs (43)
43if (left.Kind == BoundKind.EventAccess) 111if (left.Kind == BoundKind.EventAccess && !CheckEventValueKind((BoundEventAccess)left, BindValueKind.Assignable, diagnostics)) 312Debug.Assert(left.Kind != BoundKind.EventAccess || hasError); 907if (result.Kind == BoundKind.TypeExpression 912else if (result.Kind == BoundKind.BadExpression) 1335case (BoundKind.DefaultLiteral, _) when !isEquality: 1336case (_, BoundKind.DefaultLiteral) when !isEquality: 1340case (BoundKind.DefaultLiteral, BoundKind.DefaultLiteral): 1343case (BoundKind.DefaultLiteral, _) when right.Type is TypeParameterSymbol: 1347case (_, BoundKind.DefaultLiteral) when left.Type is TypeParameterSymbol: 1351case (BoundKind.UnconvertedObjectCreationExpression, _): 1354case (_, BoundKind.UnconvertedObjectCreationExpression): 2917if (left.Kind == BoundKind.Conversion && right.Kind == BoundKind.Conversion) 4062case BoundKind.NamespaceExpression: 4063case BoundKind.TypeExpression: 4194BoundKind exprKind = expr.Kind; 4197case BoundKind.FieldAccess: 4198case BoundKind.EventAccess: 4202if (exprKind == BoundKind.FieldAccess) 4244case BoundKind.InlineArrayAccess: 4256case BoundKind.RangeVariable: 4264case BoundKind.Parameter: 4287case BoundKind.ThisReference: 4288case BoundKind.BaseReference: 4293case BoundKind.Local: 4303case BoundKind.PointerIndirectionOperator: //Covers ->, since the receiver will be one of these. 4304case BoundKind.ConvertedStackAllocExpression: 4308case BoundKind.PointerElementAccess: 4323case BoundKind.PropertyAccess: // Never fixed 4324case BoundKind.IndexerAccess: // Never fixed 4766case BoundKind.UnboundLambda: 4767case BoundKind.Lambda: 4768case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 4899operand.Kind == BoundKind.MethodGroup || 5387case BoundKind.UnboundLambda: 5388case BoundKind.Lambda: 5389case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 5398case BoundKind.TupleLiteral: 5399case BoundKind.ConvertedTupleLiteral: 5698if (leftOperand.Kind == BoundKind.UnboundLambda || leftOperand.Kind == BoundKind.MethodGroup)
Binder\Binder_Patterns.cs (10)
502bool wasExpression = originalExpression.Kind != BoundKind.TypeExpression; 628wasExpression = originalExpression.Kind switch { BoundKind.BadExpression => false, BoundKind.TypeExpression => false, _ => true }; 779if (convertedExpression.Kind == BoundKind.Conversion) 1847if (boundMember.Kind == BoundKind.PropertyGroup) 1857case BoundKind.FieldAccess: 1858case BoundKind.PropertyAccess: 1861case BoundKind.IndexerAccess: 1862case BoundKind.DynamicIndexerAccess: 1863case BoundKind.EventAccess:
Binder\Binder_Query.cs (7)
929while (ultimateReceiver.Kind == BoundKind.QueryClause) 936Debug.Assert(ultimateReceiver.Kind != BoundKind.MethodGroup || ultimateReceiver.HasAnyErrors); 954else if (ultimateReceiver.Kind == BoundKind.NamespaceExpression) 958else if (ultimateReceiver.Kind == BoundKind.Lambda || ultimateReceiver.Kind == BoundKind.UnboundLambda) 966else if (ultimateReceiver.Kind == BoundKind.TypeExpression) 974else 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 && 899BoundExpression expression = value.Kind is BoundKind.UnboundLambda or BoundKind.MethodGroup ? 1252case BoundKind.AddressOfOperator: 1256case BoundKind.FieldAccess: 1434bool discardAssignment = op1.Kind == BoundKind.DiscardExpression; 1513if (op1.Kind != BoundKind.DynamicIndexerAccess && 1514op1.Kind != BoundKind.DynamicMemberAccess && 1515op1.Kind != BoundKind.DynamicObjectInitializerMember) 1531if ((op1.Kind == BoundKind.EventAccess) && 1588else if (op1.Kind is BoundKind.Local or BoundKind.Parameter) 1601Debug.Assert(op1.Kind != BoundKind.Parameter); // If the assert fails, add a corresponding test. 1679case BoundKind.PropertyAccess: 1686case BoundKind.IndexerAccess: 1693case BoundKind.ImplicitIndexerAccess: 1818(propertyIsStatic || receiver?.Kind == BoundKind.ThisReference); 1853else if (receiver.Kind == BoundKind.BaseReference) 1979if (expression.HasAnyErrors && expression.Kind != BoundKind.UnboundLambda) 2369case BoundKind.BadExpression: 2373case BoundKind.UnboundLambda: 2378case BoundKind.TupleLiteral: 2402case BoundKind.MethodGroup: 2407case BoundKind.UnconvertedAddressOfOperator: 2412case BoundKind.Literal: 2429case BoundKind.StackAllocArrayCreation: 2435case BoundKind.UnconvertedSwitchExpression: 2448case BoundKind.UnconvertedCollectionExpression: 2453case BoundKind.AddressOfOperator when targetType.IsFunctionPointer(): 2458case BoundKind.UnconvertedConditionalOperator: 2487Debug.Assert(operand.HasAnyErrors && operand.Kind != BoundKind.UnboundLambda, "Missing a case in implicit conversion error reporting"); 2730if (expr.Kind == BoundKind.AssignmentOperator) 2733if (assignment.Right.Kind == BoundKind.Literal && assignment.Right.ConstantValueOpt.Discriminator == ConstantValueTypeDiscriminator.Boolean) 3235if (!argument.HasAnyErrors || argument.Kind == BoundKind.UnboundLambda) 3526if (expression.Kind == BoundKind.DelegateCreationExpression || expression.Kind == BoundKind.NameOfOperator) 3554if ((refKind != RefKind.None) != (returnRefKind != RefKind.None) && expression.Kind != BoundKind.ThrowExpression) 4232if (boundAccess.Kind != BoundKind.MethodGroup) 4260if (patternMethodCall.Kind != BoundKind.Call)
Binder\Binder_TupleOperators.cs (2)
224Debug.Assert((object)left.Type != null || left.Kind == BoundKind.TupleLiteral); 225Debug.Assert((object)right.Type != null || right.Kind == BoundKind.TupleLiteral);
Binder\Binder.cs (1)
933RoslynDebug.Assert(statement.Kind != BoundKind.StatementList);
Binder\Binder.ValueChecks.cs (238)
733case BoundKind.PropertyGroup: 743case BoundKind.Local: 747case BoundKind.OutVariablePendingInference: 748case BoundKind.OutDeconstructVarPendingInference: 752case BoundKind.DiscardExpression: 756case BoundKind.PropertyAccess: 794case BoundKind.IndexerAccess: 798case BoundKind.ImplicitIndexerAccess: 816case BoundKind.UnconvertedObjectCreationExpression: 817case BoundKind.UnconvertedCollectionExpression: 818case BoundKind.UnconvertedConditionalOperator: 819case BoundKind.UnconvertedSwitchExpression: 820case BoundKind.TupleLiteral: 834if (expr.Kind == BoundKind.MethodGroup && valueKind != BindValueKind.RValueOrMethodGroup) 860if ((object)otherSymbol != null && receiver?.Kind == BoundKind.TypeOrValueExpression) 900case BoundKind.TypeOrValueExpression: 901case BoundKind.QueryClause when ((BoundQueryClause)expression).Value.Kind == BoundKind.TypeOrValueExpression: 933case BoundKind.PropertyAccess: 934case BoundKind.IndexerAccess: 935case BoundKind.ImplicitIndexerAccess when ((BoundImplicitIndexerAccess)expr).IndexerOrSliceAccess.Kind == BoundKind.IndexerAccess: 938case BoundKind.EventAccess: 958case BoundKind.NamespaceExpression: 963case BoundKind.TypeExpression: 968case BoundKind.Lambda: 969case BoundKind.UnboundLambda: 974case BoundKind.UnconvertedAddressOfOperator: 979case BoundKind.MethodGroup when valueKind == BindValueKind.AddressOf: 984case BoundKind.MethodGroup: 990case BoundKind.RangeVariable: 1006case BoundKind.Conversion: 1017case BoundKind.ArrayAccess: 1021case BoundKind.PointerIndirectionOperator: 1023case BoundKind.RefValueOperator: 1025case BoundKind.DynamicMemberAccess: 1026case BoundKind.DynamicIndexerAccess: 1027case BoundKind.DynamicObjectInitializerMember: 1039case BoundKind.PointerElementAccess: 1056case BoundKind.Parameter: 1060case BoundKind.Local: 1064case BoundKind.ThisReference: 1092case BoundKind.ImplicitReceiver: 1093case BoundKind.ObjectOrCollectionValuePlaceholder: 1097case BoundKind.Call: 1101case BoundKind.FunctionPointerInvocation: 1109case BoundKind.ImplicitIndexerAccess: 1123case BoundKind.InlineArrayAccess: 1145case BoundKind.ImplicitIndexerReceiverPlaceholder: 1151case BoundKind.DeconstructValuePlaceholder: 1154case BoundKind.ConditionalOperator: 1174case BoundKind.FieldAccess: 1180case BoundKind.AssignmentOperator: 1191case BoundKind.ValuePlaceholder: 1192case BoundKind.CollectionBuilderElementsPlaceholder: 1244case BoundKind.NamespaceExpression: 1247case BoundKind.TypeExpression: 1903return (receiver.Kind == BoundKind.ObjectOrCollectionValuePlaceholder && IsObjectInitializerMemberTarget(node)) || 2067ReportDiagnosticsIfObsolete(diagnostics, setMethod, node, receiver?.Kind == BoundKind.BaseReference); 2118ReportDiagnosticsIfObsolete(diagnostics, getMethod, node, receiver?.Kind == BoundKind.BaseReference); 2202if (receiverOpt?.Kind == BoundKind.BaseReference && member.IsAbstract) 2684if (argument.Kind == BoundKind.ArgListOperator) 3703case BoundKind.ArrayAccess: 3704case BoundKind.PointerIndirectionOperator: 3705case BoundKind.PointerElementAccess: 3709case BoundKind.RefValueOperator: 3715case BoundKind.DiscardExpression: 3719case BoundKind.DynamicMemberAccess: 3720case BoundKind.DynamicIndexerAccess: 3726case BoundKind.Parameter: 3729case BoundKind.Local: 3732case BoundKind.CapturedReceiverPlaceholder: 3736case BoundKind.ImplicitIndexerReceiverPlaceholder: 3740case BoundKind.ThisReference: 3745case BoundKind.ConditionalOperator: 3758case BoundKind.FieldAccess: 3761case BoundKind.EventAccess: 3780case BoundKind.Call: 3800case BoundKind.FunctionPointerInvocation: 3815case BoundKind.IndexerAccess: 3825case BoundKind.ImplicitIndexerAccess: 3864case BoundKind.InlineArrayAccess: 3885case BoundKind.PropertyAccess: 3893case BoundKind.AssignmentOperator: 3905case BoundKind.Conversion: 3912case BoundKind.UnaryOperator: 3919case BoundKind.BinaryOperator: 3926case BoundKind.UserDefinedConditionalLogicalOperator: 3932case BoundKind.CompoundAssignmentOperator: 3939case BoundKind.IncrementOperator: 3991case BoundKind.ArrayAccess: 3992case BoundKind.PointerIndirectionOperator: 3993case BoundKind.PointerElementAccess: 3997case BoundKind.RefValueOperator: 4008case BoundKind.DiscardExpression: 4012case BoundKind.DynamicMemberAccess: 4013case BoundKind.DynamicIndexerAccess: 4019case BoundKind.Parameter: 4023case BoundKind.Local: 4027case BoundKind.CapturedReceiverPlaceholder: 4035case BoundKind.ImplicitIndexerReceiverPlaceholder: 4039case BoundKind.ThisReference: 4044case BoundKind.ConditionalOperator: 4056case BoundKind.FieldAccess: 4060case BoundKind.EventAccess: 4070case BoundKind.Call: 4094case BoundKind.IndexerAccess: 4113case BoundKind.ImplicitIndexerAccess: 4165case BoundKind.InlineArrayAccess: 4190case BoundKind.FunctionPointerInvocation: 4207case BoundKind.PropertyAccess: 4225case BoundKind.AssignmentOperator: 4242case BoundKind.Conversion: 4254case BoundKind.UnaryOperator: 4261case BoundKind.BinaryOperator: 4268case BoundKind.UserDefinedConditionalLogicalOperator: 4274case BoundKind.CompoundAssignmentOperator: 4281case BoundKind.IncrementOperator: 4288case BoundKind.ThrowExpression: 4351case BoundKind.ThisReference: 4355case BoundKind.DefaultLiteral: 4356case BoundKind.DefaultExpression: 4357case BoundKind.Utf8String: 4361case BoundKind.Parameter: 4364case BoundKind.FromEndIndexExpression: 4369case BoundKind.TupleLiteral: 4370case BoundKind.ConvertedTupleLiteral: 4374case BoundKind.MakeRefOperator: 4375case BoundKind.RefValueOperator: 4381case BoundKind.DiscardExpression: 4384case BoundKind.DeconstructValuePlaceholder: 4385case BoundKind.InterpolatedStringArgumentPlaceholder: 4386case BoundKind.AwaitableValuePlaceholder: 4387case BoundKind.ValuePlaceholder: 4388case BoundKind.CollectionBuilderElementsPlaceholder: 4389case BoundKind.ObjectOrCollectionValuePlaceholder: 4392case BoundKind.Local: 4395case BoundKind.CapturedReceiverPlaceholder: 4400case BoundKind.ImplicitIndexerReceiverPlaceholder: 4404case BoundKind.StackAllocArrayCreation: 4405case BoundKind.ConvertedStackAllocExpression: 4408case BoundKind.ConditionalOperator: 4423case BoundKind.NullCoalescingOperator: 4429case BoundKind.FieldAccess: 4442case BoundKind.Call: 4456case BoundKind.FunctionPointerInvocation: 4464case BoundKind.IndexerAccess: 4474case BoundKind.ImplicitIndexerAccess: 4506case BoundKind.InlineArrayAccess: 4519case BoundKind.PropertyAccess: 4527case BoundKind.ObjectCreationExpression: 4545case BoundKind.NewT: 4560case BoundKind.WithExpression: 4566case BoundKind.UnaryOperator: 4577case BoundKind.Conversion: 4614case BoundKind.AssignmentOperator: 4618case BoundKind.NullCoalescingAssignmentOperator: 4623case BoundKind.IncrementOperator: 4644case BoundKind.CompoundAssignmentOperator: 4666case BoundKind.BinaryOperator: 4679case BoundKind.RangeExpression: 4685case BoundKind.UserDefinedConditionalLogicalOperator: 4692case BoundKind.QueryClause: 4695case BoundKind.RangeVariable: 4698case BoundKind.ObjectInitializerExpression: 4702case BoundKind.CollectionInitializerExpression: 4706case BoundKind.ObjectInitializerMember: 4712case BoundKind.ImplicitReceiver: 4715case BoundKind.InterpolatedStringHandlerPlaceholder: 4720case BoundKind.DisposableValuePlaceholder: 4725case BoundKind.PointerElementAccess: 4726case BoundKind.PointerIndirectionOperator: 4730case BoundKind.AsOperator: 4731case BoundKind.AwaitExpression: 4732case BoundKind.ConditionalAccess: 4733case BoundKind.ConditionalReceiver: 4734case BoundKind.ArrayAccess: 4738case BoundKind.ArgList: 4742case BoundKind.ConvertedSwitchExpression: 4743case BoundKind.UnconvertedSwitchExpression: 4898if (expr.Kind == BoundKind.AssignmentOperator) 5052case BoundKind.ThisReference: 5057case BoundKind.DefaultLiteral: 5058case BoundKind.DefaultExpression: 5059case BoundKind.Utf8String: 5063case BoundKind.Parameter: 5066case BoundKind.TupleLiteral: 5067case BoundKind.ConvertedTupleLiteral: 5071case BoundKind.MakeRefOperator: 5072case BoundKind.RefValueOperator: 5076case BoundKind.DiscardExpression: 5080case BoundKind.DeconstructValuePlaceholder: 5081case BoundKind.AwaitableValuePlaceholder: 5082case BoundKind.InterpolatedStringArgumentPlaceholder: 5083case BoundKind.ValuePlaceholder: 5084case BoundKind.CollectionBuilderElementsPlaceholder: 5085case BoundKind.ObjectOrCollectionValuePlaceholder: 5093case BoundKind.Local: 5102case BoundKind.CapturedReceiverPlaceholder: 5107case BoundKind.StackAllocArrayCreation: 5108case BoundKind.ConvertedStackAllocExpression: 5116case BoundKind.UnconvertedConditionalOperator: 5124case BoundKind.ConditionalOperator: 5140case BoundKind.NullCoalescingOperator: 5145case BoundKind.FieldAccess: 5158case BoundKind.ImplicitIndexerReceiverPlaceholder: 5162case BoundKind.Call: 5181case BoundKind.FunctionPointerInvocation: 5193case BoundKind.IndexerAccess: 5207case BoundKind.ImplicitIndexerAccess: 5249case BoundKind.InlineArrayAccess: 5266case BoundKind.PropertyAccess: 5278case BoundKind.ObjectCreationExpression: 5306case BoundKind.NewT: 5326case BoundKind.WithExpression: 5337case BoundKind.UnaryOperator: 5352case BoundKind.FromEndIndexExpression: 5356case BoundKind.Conversion: 5407case BoundKind.AssignmentOperator: 5412case BoundKind.NullCoalescingAssignmentOperator: 5417case BoundKind.IncrementOperator: 5442case BoundKind.CompoundAssignmentOperator: 5466case BoundKind.BinaryOperator: 5488case BoundKind.RangeExpression: 5498case BoundKind.UserDefinedConditionalLogicalOperator: 5509case BoundKind.QueryClause: 5513case BoundKind.RangeVariable: 5517case BoundKind.ObjectInitializerExpression: 5521case BoundKind.CollectionInitializerExpression: 5525case BoundKind.PointerElementAccess: 5529case BoundKind.PointerIndirectionOperator: 5533case BoundKind.AsOperator: 5534case BoundKind.AwaitExpression: 5535case BoundKind.ConditionalAccess: 5536case BoundKind.ConditionalReceiver: 5537case BoundKind.ArrayAccess: 5541case BoundKind.UnconvertedSwitchExpression: 5542case BoundKind.ConvertedSwitchExpression:
Binder\DecisionDagBuilder.cs (3)
4826if (RemainingTests[0] is One { Test: { Kind: BoundKind.DagNonNullTest } planA }) 4857case One { Test: { Kind: BoundKind.DagTypeTest } planB1 }: 4864case One { Test: { Kind: BoundKind.DagValueTest } planB2 }:
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)
657if (node.Left.Kind != BoundKind.DiscardExpression)
Binder\Semantics\Conversions\ConversionsBase.cs (16)
1076case BoundKind.Literal: 1084case BoundKind.DefaultLiteral: 1087case BoundKind.ExpressionWithNullability: 1097case BoundKind.TupleLiteral: 1105case BoundKind.UnboundLambda: 1112case BoundKind.MethodGroup: 1120case BoundKind.UnconvertedInterpolatedString: 1121case BoundKind.BinaryOperator when ((BoundBinaryOperator)sourceExpression).IsUnconvertedInterpolatedStringAddition: 1128case BoundKind.StackAllocArrayCreation: 1136case BoundKind.UnconvertedAddressOfOperator when destination is FunctionPointerTypeSymbol funcPtrType: 1144case BoundKind.ThrowExpression: 1147case BoundKind.UnconvertedObjectCreationExpression: 1150case BoundKind.UnconvertedCollectionExpression: 1425if (sourceExpression.Kind == BoundKind.TupleLiteral) 1661if (source.Kind != BoundKind.UnboundLambda) 1965if (sourceExpressionOpt?.Kind == BoundKind.TupleLiteral)
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (1)
469&& nonDelegate.Kind == BoundKind.UnboundLambda)
Binder\Semantics\OverloadResolution\MethodGroup.cs (1)
118if (this.Receiver.Kind == BoundKind.TypeExpression)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (17)
637if (argument.Kind == BoundKind.UnboundLambda && target.Type.GetDelegateType() is { }) 642else if (argument.Kind == BoundKind.UnconvertedCollectionExpression) 646else if (argument.Kind != BoundKind.TupleLiteral || 879if (argument.Kind == BoundKind.TupleLiteral && (object)argument.Type == null) 883else if (argument.Kind == BoundKind.UnconvertedCollectionExpression) 1023if ((isFunctionPointer && argument.Kind != BoundKind.UnconvertedAddressOfOperator) || 1024(!isFunctionPointer && argument.Kind is not (BoundKind.UnboundLambda or BoundKind.MethodGroup))) 1079if ((isFunctionPointer && argument.Kind != BoundKind.UnconvertedAddressOfOperator) || 1080(!isFunctionPointer && argument.Kind is not (BoundKind.UnboundLambda or BoundKind.MethodGroup))) 1448if (source.Kind is not (BoundKind.MethodGroup or BoundKind.UnconvertedAddressOfOperator)) 1459if (delegateOrFunctionPointerType.IsFunctionPointer() != (source.Kind == BoundKind.UnconvertedAddressOfOperator)) 1559if (source.Kind != BoundKind.UnboundLambda) 1613if (source.Kind != BoundKind.UnboundLambda) 3087if (source.Kind != BoundKind.UnboundLambda)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (18)
2175var argumentKind = arguments[i].Kind; 2179if (argumentKind == BoundKind.ArgListOperator) 2317var argumentKind = arguments[i].Kind; 2321if (argumentKind == BoundKind.ArgListOperator) 2481if (arguments[i].Kind == BoundKind.ArgListOperator) 2627if (arguments[i].Kind != BoundKind.ArgListOperator) 2954var nodeKind = node.Kind; 2955if (nodeKind == BoundKind.OutVariablePendingInference || 2956nodeKind == BoundKind.OutDeconstructVarPendingInference || 2957(nodeKind == BoundKind.DiscardExpression && !node.HasExpressionType())) 3277if (node.Kind == BoundKind.TupleLiteral) 3293if (node.Kind == BoundKind.UnboundLambda && 3333if (lambda.Body.Statements[0].Kind == BoundKind.ReturnStatement) 3609if (node?.Kind == BoundKind.MethodGroup) 4559if (argument.Kind == BoundKind.ArgListOperator) 4734if (argument.Kind == BoundKind.OutVariablePendingInference || 4735argument.Kind == BoundKind.OutDeconstructVarPendingInference || 4736(argument.Kind == BoundKind.DiscardExpression && (object)argType == null))
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (13)
682if (receiverOpt?.Kind == BoundKind.QueryClause) 1109if (argument.Kind == BoundKind.UnboundLambda) 1249argument.Kind != BoundKind.OutDeconstructVarPendingInference && 1250argument.Kind != BoundKind.OutVariablePendingInference && 1251argument.Kind != BoundKind.DiscardExpression) 1257if (argument.Kind == BoundKind.UnboundLambda && refArg == refParameter) 1261else if (argument.Kind == BoundKind.MethodGroup && parameterType.TypeKind == TypeKind.Delegate && 1266else if (argument.Kind == BoundKind.MethodGroup && parameterType.TypeKind == TypeKind.FunctionPointer) 1270else if (argument.Kind == BoundKind.UnconvertedAddressOfOperator && 1275else if (argument.Kind == BoundKind.UnconvertedCollectionExpression) 1340Debug.Assert(argument.Kind != BoundKind.OutDeconstructVarPendingInference); 1341Debug.Assert(argument.Kind != BoundKind.OutVariablePendingInference); 1342Debug.Assert(argument.Kind != BoundKind.DiscardExpression || argument.HasExpressionType());
BoundTree\BoundExpression.cs (11)
81case BoundKind.TupleLiteral: 82case BoundKind.UnconvertedSwitchExpression: 83case BoundKind.UnconvertedObjectCreationExpression: 84case BoundKind.UnconvertedConditionalOperator: 85case BoundKind.DefaultLiteral: 86case BoundKind.UnconvertedInterpolatedString: 87case BoundKind.UnconvertedCollectionExpression: 89case BoundKind.StackAllocArrayCreation: 94case BoundKind.BinaryOperator: 623return this.Condition.Kind == BoundKind.UnaryOperator && ((BoundUnaryOperator)this.Condition).OperatorKind.IsDynamic(); 689if (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); 182case BoundKind.MethodGroup: 196case BoundKind.BadExpression: 204case BoundKind.DelegateCreationExpression: 213case BoundKind.Call: 227case BoundKind.IndexerAccess: 254case 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 (2)
71case BoundKind.FieldAccess: 74case BoundKind.Local:
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 (19)
71case BoundKind.ArrayAccess: 81case BoundKind.PointerIndirectionOperator: 82case BoundKind.RefValueOperator: 85case BoundKind.ThisReference: 100case BoundKind.ThrowExpression: 104case BoundKind.Parameter: 108case BoundKind.Local: 133case BoundKind.Call: 136case BoundKind.FunctionPointerInvocation: 139case BoundKind.Dup: 162case BoundKind.FieldAccess: 165case BoundKind.Sequence: 168case BoundKind.AssignmentOperator: 178case BoundKind.RefAccess: 189case BoundKind.ComplexConditionalReceiver: 202goto case BoundKind.ConditionalReceiver; 204case BoundKind.ConditionalReceiver: 209case BoundKind.ConditionalOperator: 328fieldAccess.ReceiverOpt.Kind == BoundKind.ThisReference;
CodeGen\EmitAddress.cs (26)
28case BoundKind.RefValueOperator: 33case BoundKind.Local: 36case BoundKind.Dup: 40case BoundKind.ConditionalReceiver: 48case BoundKind.ComplexConditionalReceiver: 52case BoundKind.Parameter: 55case BoundKind.FieldAccess: 58case BoundKind.ArrayAccess: 67case BoundKind.ThisReference: 91case BoundKind.PreviousSubmissionReference: 95case BoundKind.BaseReference: 99case BoundKind.PassByCopy: 102case BoundKind.Sequence: 105case BoundKind.PointerIndirectionOperator: 112case BoundKind.PseudoVariable: 116case BoundKind.Call: 128case BoundKind.FunctionPointerInvocation: 141case BoundKind.DefaultExpression: 154case BoundKind.ConditionalOperator: 163case BoundKind.AssignmentOperator: 175case BoundKind.RefAccess: 181case BoundKind.ThrowExpression: 396case BoundKind.Local: 406case BoundKind.Sequence: 409case BoundKind.FieldAccess: 579if (used && 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 (163)
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: 146case BoundKind.FieldAccess: 150case BoundKind.ArrayAccess: 154case BoundKind.RefAccess: 158case BoundKind.ArrayLength: 162case BoundKind.ThisReference: 166case BoundKind.PreviousSubmissionReference: 170case BoundKind.BaseReference: 183case BoundKind.Sequence: 187case BoundKind.SequencePointExpression: 191case BoundKind.UnaryOperator: 195case BoundKind.BinaryOperator: 199case BoundKind.NullCoalescingOperator: 203case BoundKind.IsOperator: 207case BoundKind.AsOperator: 211case BoundKind.DefaultExpression: 215case BoundKind.TypeOfOperator: 222case BoundKind.SizeOfOperator: 229case BoundKind.ModuleVersionId: 234case BoundKind.ModuleVersionIdString: 239case BoundKind.ThrowIfModuleCancellationRequested: 244case BoundKind.ModuleCancellationTokenExpression: 249case BoundKind.InstrumentationPayloadRoot: 254case BoundKind.MethodDefIndex: 259case BoundKind.MaximumMethodDefIndex: 264case BoundKind.SourceDocumentIndex: 269case BoundKind.LocalId: 274case BoundKind.ParameterId: 279case BoundKind.MethodInfo: 286case BoundKind.FieldInfo: 293case BoundKind.ConditionalOperator: 297case BoundKind.AddressOfOperator: 301case BoundKind.PointerIndirectionOperator: 305case BoundKind.ArgList: 309case BoundKind.ArgListOperator: 314case BoundKind.RefTypeOperator: 318case BoundKind.MakeRefOperator: 322case BoundKind.RefValueOperator: 326case BoundKind.LoweredConditionalAccess: 330case BoundKind.ConditionalReceiver: 334case BoundKind.ComplexConditionalReceiver: 338case BoundKind.PseudoVariable: 342case BoundKind.ThrowExpression: 346case BoundKind.FunctionPointerInvocation: 350case BoundKind.FunctionPointerLoad: 356Debug.Assert(expression.Kind != BoundKind.BadExpression); 452(receiver.Kind == BoundKind.Local && IsStackLocal(((BoundLocal)receiver).LocalSymbol)) || 893Debug.Assert(sequence.Value.Kind != BoundKind.TypeExpression || !used); 894if (sequence.Value.Kind != BoundKind.TypeExpression) 1036Debug.Assert(arguments[i].Kind == BoundKind.ArgListOperator); 1200case BoundKind.Local: 1201case BoundKind.Parameter: 1202case BoundKind.FieldAccess: 1203case BoundKind.RefValueOperator: 1204case BoundKind.Dup: 1205case BoundKind.ThisReference when receiver.Type.IsValueType: 1208case BoundKind.Call: 1209case BoundKind.FunctionPointerInvocation: 1210case BoundKind.RefAccess: 1211case BoundKind.AssignmentOperator: 1212case BoundKind.ConditionalOperator: // We could check both branches, but the IL is shorter this way because we have a single load field instruction instead of indirect load on each branch. 1215case BoundKind.Sequence: 1308else if (receiver.Kind == BoundKind.Conversion) 1319else if (receiver.Kind == BoundKind.FieldAccess) 1350if (receiver.Kind == BoundKind.Conversion && ((BoundConversion)receiver).ConversionKind == ConversionKind.Unboxing) 1363case BoundKind.Parameter: 1367case BoundKind.Local: 1371case BoundKind.Sequence: 1374case BoundKind.FieldAccess: 1607Debug.Assert(receiver.Kind != BoundKind.BaseReference, "base should always use call"); 1618case BoundKind.ArrayCreation: 1621case BoundKind.ObjectCreationExpression: 1626case BoundKind.Conversion: 1646case BoundKind.ThisReference: 1653case BoundKind.FieldAccess: 1657case BoundKind.Local: 1661case BoundKind.DelegateCreationExpression: 1664case BoundKind.Sequence: 1668case BoundKind.AssignmentOperator: 1672case BoundKind.TypeOfOperator: 1675case BoundKind.ConditionalReceiver: 1691case BoundKind.ThisReference: 1694case BoundKind.Sequence: 1737Debug.Assert(receiver.Kind == BoundKind.ThisReference); 2249case BoundKind.TypeExpression: 2250case BoundKind.Parameter: 2251case BoundKind.Local: 2252case BoundKind.ThisReference: 2254case BoundKind.FieldAccess: 2265case BoundKind.PassByCopy: 2268case BoundKind.BinaryOperator: 2281case BoundKind.Conversion: 2331case BoundKind.Local: 2334case BoundKind.Parameter: 2337case BoundKind.FieldAccess: 2340case BoundKind.Call: 2343case BoundKind.FunctionPointerInvocation: 2346case BoundKind.Dup: 2349case BoundKind.Sequence: 2352case BoundKind.RefAccess: 2355case BoundKind.AssignmentOperator: 2358case BoundKind.ConditionalOperator: 2361case BoundKind.RefValueOperator: 2364case BoundKind.ThisReference: 2761if (objCreation.Arguments.Length > 0 && objCreation.Arguments[0].Kind == BoundKind.ConvertedStackAllocExpression) 2795if (left.Kind == BoundKind.ArrayAccess && left.Type.TypeKind == TypeKind.TypeParameter && !left.Type.IsValueType) 2800if (left.Kind == BoundKind.FieldAccess) 2904case BoundKind.Parameter: 2907case BoundKind.Local: 2923case BoundKind.RefValueOperator: 2927case BoundKind.FieldAccess: 2945case BoundKind.Parameter: 2957case BoundKind.Local: 3009case BoundKind.ArrayAccess: 3018case BoundKind.ThisReference: 3029case BoundKind.Dup: 3045case BoundKind.ConditionalOperator: 3057case BoundKind.PointerIndirectionOperator: 3067case BoundKind.Sequence: 3080case BoundKind.Call: 3091case BoundKind.FunctionPointerInvocation: 3102case BoundKind.PropertyAccess: 3103case BoundKind.IndexerAccess: 3105case BoundKind.PreviousSubmissionReference: 3109case BoundKind.PseudoVariable: 3114case BoundKind.ModuleVersionId: 3115case BoundKind.InstrumentationPayloadRoot: 3118case BoundKind.AssignmentOperator: 3150Debug.Assert(lhs.Kind != BoundKind.Parameter || exprTempsAfter <= exprTempsBefore); 3152if (lhs.Kind == BoundKind.Local && ((BoundLocal)lhs).LocalSymbol.SynthesizedKind.IsLongLived()) 3227case BoundKind.FieldAccess: 3231case BoundKind.Local: 3258case BoundKind.ArrayAccess: 3264case BoundKind.ThisReference: 3268case BoundKind.Parameter: 3272case BoundKind.Dup: 3283case BoundKind.ConditionalOperator: 3288case BoundKind.RefValueOperator: 3289case BoundKind.PointerIndirectionOperator: 3290case BoundKind.PseudoVariable: 3294case BoundKind.Sequence: 3301case BoundKind.Call: 3306case BoundKind.FunctionPointerInvocation: 3311case BoundKind.ModuleVersionId: 3315case BoundKind.InstrumentationPayloadRoot: 3319case BoundKind.AssignmentOperator: 3328case BoundKind.PreviousSubmissionReference: 4086case BoundKind.Conversion: 4100case BoundKind.AssignmentOperator: 4104case BoundKind.Sequence: 4108case BoundKind.Local: 4117case BoundKind.Dup:
CodeGen\EmitOperators.cs (3)
94if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 118if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 507if (condition.Kind == BoundKind.BinaryOperator)
CodeGen\EmitStatement.cs (31)
31case BoundKind.Block: 35case BoundKind.Scope: 39case BoundKind.SequencePoint: 43case BoundKind.SequencePointWithSpan: 47case BoundKind.SavePreviousSequencePoint: 51case BoundKind.RestorePreviousSequencePoint: 55case BoundKind.StepThroughSequencePoint: 59case BoundKind.ExpressionStatement: 63case BoundKind.StatementList: 67case BoundKind.ReturnStatement: 71case BoundKind.GotoStatement: 75case BoundKind.LabelStatement: 79case BoundKind.ConditionalGoto: 83case BoundKind.ThrowStatement: 87case BoundKind.TryStatement: 91case BoundKind.SwitchDispatch: 95case BoundKind.StateMachineScope: 99case BoundKind.NoOpStatement: 418case BoundKind.BinaryOperator: 526case BoundKind.LoweredConditionalAccess: 536(receiver.Kind == BoundKind.Local && IsStackLocal(((BoundLocal)receiver).LocalSymbol)) || 575case BoundKind.UnaryOperator: 585case BoundKind.IsOperator: 602case BoundKind.Sequence: 1158while (exceptionSource.Kind == BoundKind.Sequence) 1168case BoundKind.Local: 1178case BoundKind.FieldAccess: 1291if (expression.Kind == BoundKind.Sequence) 1299if (expression.Kind == BoundKind.SequencePointExpression) 1308case BoundKind.Local: 1317case BoundKind.Parameter:
CodeGen\Optimizer.cs (34)
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 && 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: 1088case BoundKind.RefValueOperator: 1089case BoundKind.PointerIndirectionOperator: 1090case BoundKind.PseudoVariable: 1093case BoundKind.ModuleVersionId: 1094case BoundKind.InstrumentationPayloadRoot: 1096goto case BoundKind.FieldAccess; 1098case BoundKind.FieldAccess: 1099case BoundKind.ArrayAccess: 1111if (lhs.Kind == BoundKind.FieldAccess) 1436if (boundExpression.Kind == BoundKind.Local) 1488if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 1504if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 1710if (exceptionSourceOpt.Kind == BoundKind.Local) 1955top.Item1.Kind == BoundKind.Local && 2137if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2153if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2367if (exceptionSource.Kind == BoundKind.Local)
Compilation\CSharpSemanticModel.cs (56)
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: 3443case BoundKind.Call: 3468case BoundKind.FunctionPointerInvocation: 3476case BoundKind.UnconvertedAddressOfOperator: 3490case BoundKind.IndexerAccess: 3504case BoundKind.ImplicitIndexerAccess: 3508case BoundKind.EventAssignmentOperator: 3525case BoundKind.EventAccess when boundNodeForSyntacticParent is BoundEventAssignmentOperator { ResultKind: LookupResultKind.Viable } parentOperator && 3536case BoundKind.Conversion: 3566case BoundKind.BinaryOperator: 3570case BoundKind.UnaryOperator: 3574case BoundKind.UserDefinedConditionalLogicalOperator: 3580case BoundKind.CompoundAssignmentOperator: 3584case BoundKind.IncrementOperator: 3588case BoundKind.AwaitExpression: 3593case BoundKind.ConditionalOperator: 3599case BoundKind.Attribute: 3634case BoundKind.QueryClause: 3645case BoundKind.DynamicInvocation: 3653case BoundKind.DynamicCollectionElementInitializer: 3661case BoundKind.DynamicIndexerAccess: 3669case BoundKind.DynamicMemberAccess: 3674case BoundKind.DynamicObjectCreationExpression: 3681case BoundKind.ObjectCreationExpression: 3698case BoundKind.ThisReference: 3699case BoundKind.BaseReference: 3710case BoundKind.FromEndIndexExpression: 3720case BoundKind.RangeExpression: 4007case BoundKind.Attribute: 4021case BoundKind.BadExpression: 4286case BoundKind.Call: 4307case BoundKind.DelegateCreationExpression: 4317case BoundKind.Conversion: 4349case BoundKind.DynamicInvocation: 4355case BoundKind.BadExpression: 4366case BoundKind.NameOfOperator: 4435case BoundKind.IndexerAccess: 4456case BoundKind.BadExpression:
Compilation\MemberSemanticModel.cs (12)
1246Debug.Assert(highestBoundNode.Kind != BoundKind.UnboundLambda); 1790case BoundKind.UnboundLambda: 1792goto case BoundKind.Lambda; 1793case BoundKind.Lambda: 1797case BoundKind.QueryClause: 1819case BoundKind.QueryClause: 1823case BoundKind.Call: 1835while (receiver?.Kind == BoundKind.MethodGroup) 1852case BoundKind.Conversion: 1855case BoundKind.UnboundLambda: 1859case BoundKind.Lambda: 1902if (expr.Kind == BoundKind.QueryClause)
Compilation\MemberSemanticModel.NodeMapBuilder.cs (1)
169if (node.Kind == BoundKind.UnboundLambda)
Compiler\MethodBodySynthesizer.Lowered.cs (1)
333if (body.Kind != BoundKind.Block) body = F.Block(body);
Compiler\MethodCompiler.cs (5)
623(init.Kind == BoundKind.FieldEqualsValue) && !((BoundFieldEqualsValue)init).Field.IsMetadataConstant)); 1346if (processedInitializers.LoweredInitializers.Kind == BoundKind.StatementList) 2005case BoundKind.ConstructorMethodBody: 2035case BoundKind.NonConstructorMethodBody: 2041case BoundKind.Block:
FlowAnalysis\AbstractFlowPass.cs (25)
556case BoundKind.Parameter: 560case BoundKind.Local: 564case BoundKind.ThisReference: 565case BoundKind.BaseReference: 568case BoundKind.PropertyAccess: 585case BoundKind.FieldAccess: 592case BoundKind.EventAccess: 599case BoundKind.TupleLiteral: 600case BoundKind.ConvertedTupleLiteral: 604case BoundKind.InlineArrayAccess: 849case BoundKind.LabeledStatement: 855case BoundKind.LabelStatement: 861case BoundKind.SwitchSection: 1880if (pend.Branch.Kind != BoundKind.YieldReturnStatement) 2142if (expr.Kind != BoundKind.PropertyAccess) 2175var refKind = node.Left.Kind == BoundKind.BadExpression 2256receiverOpt.Kind != BoundKind.TypeExpression && 2437var childKind = child.Kind; 2439if (childKind == BoundKind.BinaryOperator) 2452else if (childKind == BoundKind.UserDefinedConditionalLogicalOperator) 2479case BoundKind.BinaryOperator: 2483case BoundKind.UserDefinedConditionalLogicalOperator: 2499case BoundKind.BinaryOperator: 2504case BoundKind.UserDefinedConditionalLogicalOperator: 2516Debug.Assert(!isBool || binary.Kind != BoundKind.UserDefinedConditionalLogicalOperator);
FlowAnalysis\ControlFlowPass.cs (12)
215case BoundKind.GotoStatement: 222case BoundKind.BreakStatement: 223case BoundKind.ContinueStatement: 235case BoundKind.ReturnStatement: 248case BoundKind.NoOpStatement: 249case BoundKind.Block: 250case BoundKind.ThrowStatement: 251case BoundKind.LabeledStatement: 252case BoundKind.LocalFunctionStatement: 255case BoundKind.StatementList: 311case BoundKind.YieldBreakStatement: 312case BoundKind.YieldReturnStatement:
FlowAnalysis\DataFlowsOutWalker.cs (2)
241case BoundKind.Parameter: return ((BoundParameter)node).ParameterSymbol; 242case BoundKind.ThisReference: return this.MethodThisParameter;
FlowAnalysis\DefiniteAssignment.cs (80)
247if (node.Kind == BoundKind.Attribute) 746Debug.Assert(fieldOrEventAccess.Kind == BoundKind.FieldAccess || fieldOrEventAccess.Kind == BoundKind.EventAccess); 752case BoundKind.FieldAccess: 768case BoundKind.EventAccess: 785case BoundKind.ThisReference: 789case BoundKind.Local: 793case BoundKind.Parameter: 797case BoundKind.InlineArrayAccess: 882if (value is { ConstantValueOpt: not null, Kind: not BoundKind.InterpolatedString }) return false; 886case BoundKind.Conversion: 901case BoundKind.DefaultLiteral: 902case BoundKind.DefaultExpression: 904case BoundKind.ObjectCreationExpression: 907case BoundKind.TupleLiteral: 908case BoundKind.ConvertedTupleLiteral: 909case BoundKind.Utf8String: 925case BoundKind.FieldAccess: 940if (n.Kind == BoundKind.Local) 952case BoundKind.EventAccess: 973case BoundKind.ThisReference: 977case BoundKind.Local: 981case BoundKind.Parameter: 985case BoundKind.RangeVariable: 989case BoundKind.InlineArrayAccess: 1034case BoundKind.FieldAccess: 1050case BoundKind.EventAccess: 1062case BoundKind.PropertyAccess: 1086receiver.Kind != BoundKind.TypeExpression && 1103receiverOpt.Kind != BoundKind.TypeExpression && 1346case BoundKind.ThisReference: 1359case BoundKind.Local: 1365case BoundKind.FieldAccess: 1377case BoundKind.EventAccess: 1389case BoundKind.InlineArrayAccess: 1395case BoundKind.PropertyAccess: 1417case BoundKind.Parameter: 1424case BoundKind.RangeVariable: 1449case BoundKind.FieldAccess: 1458case BoundKind.Local: 1462case BoundKind.RangeVariable: 1464case BoundKind.Parameter: 1466case BoundKind.ThisReference: 1468case BoundKind.BaseReference: 1501case BoundKind.ListPattern: 1502case BoundKind.RecursivePattern: 1503case BoundKind.DeclarationPattern: 1519case BoundKind.LocalDeclaration: 1530case BoundKind.Local: 1548case BoundKind.InlineArrayAccess: 1578case BoundKind.Parameter: 1595case BoundKind.ObjectInitializerMember: 1607case BoundKind.ThisReference: 1608case BoundKind.FieldAccess: 1609case BoundKind.EventAccess: 1610case BoundKind.PropertyAccess: 1619case BoundKind.RangeVariable: 1623case BoundKind.BadExpression: 1634case BoundKind.TupleLiteral: 1635case BoundKind.ConvertedTupleLiteral: 1967case BoundKind.DeclarationPattern: 1974case BoundKind.DiscardPattern: 1975case BoundKind.TypePattern: 1977case BoundKind.SlicePattern: 1986case BoundKind.ConstantPattern: 1992case BoundKind.RecursivePattern: 2026case BoundKind.ITuplePattern: 2035case BoundKind.ListPattern: 2046case BoundKind.RelationalPattern: 2052case BoundKind.NegatedPattern: 2058case BoundKind.BinaryPattern: 2167if (stmt.Kind != BoundKind.LocalFunctionStatement) 2447if (pending.Branch.Kind == BoundKind.ReturnStatement) 2624case BoundKind.Local: 2627case BoundKind.Parameter: 2630case BoundKind.FieldAccess: 2638case BoundKind.EventAccess: 2646case BoundKind.ThisReference: 2647case BoundKind.BaseReference: 2651case BoundKind.InlineArrayAccess:
FlowAnalysis\ExitPointsWalker.cs (9)
127case BoundKind.GotoStatement: 130case BoundKind.BreakStatement: 133case BoundKind.ContinueStatement: 136case BoundKind.YieldBreakStatement: 137case BoundKind.ReturnStatement: 140case BoundKind.YieldReturnStatement: 141case BoundKind.AwaitExpression: 142case BoundKind.UsingStatement: 143case BoundKind.ForEachStatement when ((BoundForEachStatement)pending.Branch).EnumeratorInfoOpt is { MoveNextAwaitableInfo: not null }:
FlowAnalysis\LocalDataFlowPass.cs (9)
216case BoundKind.ThisReference: 217case BoundKind.BaseReference: 219case BoundKind.Local: 221case BoundKind.Parameter: 223case BoundKind.RangeVariable: 225case BoundKind.FieldAccess: 226case BoundKind.EventAccess: 227case BoundKind.PropertyAccess: 234case BoundKind.AssignmentOperator:
FlowAnalysis\NullableWalker.cs (65)
392|| expr.Kind == BoundKind.ExpressionWithNullability 462private bool IsAnalyzingAttribute => methodMainNode.Kind == BoundKind.Attribute; 615case BoundKind.DeconstructValuePlaceholder: 616case BoundKind.InterpolatedStringHandlerPlaceholder: 617case BoundKind.InterpolatedStringArgumentPlaceholder: 618case BoundKind.ObjectOrCollectionValuePlaceholder: 621case BoundKind.ImplicitIndexerValuePlaceholder: 2123case BoundKind.FieldAccess: 2139case BoundKind.EventAccess: 2152case BoundKind.PropertyAccess: 2170receiver.Kind != BoundKind.TypeExpression && 2198case BoundKind.ThisReference: 2199case BoundKind.BaseReference: 2205case BoundKind.Conversion: 2248case BoundKind.DefaultLiteral: 2249case BoundKind.DefaultExpression: 2250case BoundKind.ObjectCreationExpression: 2251case BoundKind.DynamicObjectCreationExpression: 2252case BoundKind.AnonymousObjectCreationExpression: 2253case BoundKind.NewT: 2254case BoundKind.TupleLiteral: 2255case BoundKind.ConvertedTupleLiteral: 2257case BoundKind.ConditionalAccess: 2259case BoundKind.ConditionalReceiver: 2686case BoundKind.Conversion: 2693case BoundKind.DefaultLiteral: 2694case BoundKind.DefaultExpression: 3219if (!expr.IsSuppressed && RemoveConversion(expr, includeExplicitConversions: false).expression.Kind != BoundKind.ThrowExpression) 4441Debug.Assert(node.Kind is BoundKind.ObjectCreationExpression or BoundKind.DynamicObjectCreationExpression or BoundKind.NewT or BoundKind.NoPiaObjectCreationExpression); 4595case BoundKind.AssignmentOperator: 4610case BoundKind.CollectionElementInitializer: 4640case BoundKind.ObjectInitializerMember: 5362if (child.Kind == BoundKind.ArrayInitialization) 6001case BoundKind.Conversion: 6005case BoundKind.AsOperator: 6008case BoundKind.ConditionalAccess: 6195while (possiblyConversion.Kind == BoundKind.Conversion) 8239return (argument.Kind == BoundKind.Lambda); 8910/// other than <see cref="BoundKind.ExpressionWithNullability"/> which is an expression 8917case BoundKind.DefaultLiteral: 8918case BoundKind.DefaultExpression: 8919case BoundKind.Literal: 8921case BoundKind.ExpressionWithNullability: 8923case BoundKind.MethodGroup: 8924case BoundKind.UnboundLambda: 8925case BoundKind.UnconvertedObjectCreationExpression: 8926case BoundKind.ConvertedTupleLiteral: 8927case BoundKind.UnconvertedCollectionExpression: 8967if (argument.Kind == BoundKind.Lambda) 8976if (argument.Kind == BoundKind.CollectionExpression) 9112if (expr.Kind != BoundKind.Conversion) 9197case BoundKind.InterpolatedString: 10131if (operandType.Type?.IsTupleType == true || conversionOperand.Kind == BoundKind.TupleLiteral) 11340if (left.Kind == BoundKind.EventAccess && ((BoundEventAccess)left).EventSymbol.IsWindowsRuntimeEvent) 11765case BoundKind.TupleLiteral: 11766case BoundKind.ConvertedTupleLiteral: 11783case BoundKind.TupleLiteral: 11784case BoundKind.ConvertedTupleLiteral: 11786case BoundKind.Conversion: 12146if (initializer.Kind == BoundKind.AddressOfOperator) 12152if (node.Expression.Kind == BoundKind.AddressOfOperator) 12506if (node.Expression.Kind != BoundKind.Conversion)
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 (573)
264protected BoundInitializer(BoundKind kind, SyntaxNode syntax, bool hasErrors) 269protected BoundInitializer(BoundKind kind, SyntaxNode syntax) 278protected BoundEqualsValue(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false) 296: base(BoundKind.FieldEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 326: base(BoundKind.PropertyEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 356: base(BoundKind.ParameterEqualsValue, syntax, locals, value, hasErrors || value.HasErrors()) 386: base(BoundKind.GlobalStatementInitializer, syntax, hasErrors || statement.HasErrors()) 413protected BoundExpression(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 419protected BoundExpression(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 430protected BoundValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 435protected BoundValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 444protected BoundEarlyValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type, bool hasErrors) 449protected BoundEarlyValuePlaceholderBase(BoundKind kind, SyntaxNode syntax, TypeSymbol? type) 459: base(BoundKind.ValuePlaceholder, syntax, type, hasErrors) 464: base(BoundKind.ValuePlaceholder, syntax, type) 487: base(BoundKind.CapturedReceiverPlaceholder, syntax, type, hasErrors || receiver.HasErrors()) 515: base(BoundKind.DeconstructValuePlaceholder, syntax, type, hasErrors) 525: base(BoundKind.DeconstructValuePlaceholder, syntax, type) 556: base(BoundKind.TupleOperandPlaceholder, syntax, type, hasErrors) 564: base(BoundKind.TupleOperandPlaceholder, syntax, type) 591: base(BoundKind.AwaitableValuePlaceholder, syntax, type, hasErrors) 596: base(BoundKind.AwaitableValuePlaceholder, syntax, type) 620: base(BoundKind.DisposableValuePlaceholder, syntax, type, hasErrors) 628: base(BoundKind.DisposableValuePlaceholder, syntax, type) 655: base(BoundKind.ObjectOrCollectionValuePlaceholder, syntax, type, hasErrors) 664: base(BoundKind.ObjectOrCollectionValuePlaceholder, syntax, type) 693: base(BoundKind.ImplicitIndexerValuePlaceholder, syntax, type, hasErrors) 701: base(BoundKind.ImplicitIndexerValuePlaceholder, syntax, type) 728: base(BoundKind.ImplicitIndexerReceiverPlaceholder, syntax, type, hasErrors || receiver.HasErrors()) 760: base(BoundKind.ListPatternReceiverPlaceholder, syntax, type, hasErrors) 768: base(BoundKind.ListPatternReceiverPlaceholder, syntax, type) 795: base(BoundKind.ListPatternIndexPlaceholder, syntax, type, hasErrors) 803: base(BoundKind.ListPatternIndexPlaceholder, syntax, type) 830: base(BoundKind.SlicePatternReceiverPlaceholder, syntax, type, hasErrors) 838: base(BoundKind.SlicePatternReceiverPlaceholder, syntax, type) 865: base(BoundKind.SlicePatternRangePlaceholder, syntax, type, hasErrors) 873: base(BoundKind.SlicePatternRangePlaceholder, syntax, type) 900: base(BoundKind.CollectionBuilderElementsPlaceholder, syntax, type, hasErrors) 905: base(BoundKind.CollectionBuilderElementsPlaceholder, syntax, type) 928: base(BoundKind.Dup, syntax, type, hasErrors) 935: base(BoundKind.Dup, syntax, type) 962: base(BoundKind.PassByCopy, syntax, type, hasErrors || expression.HasErrors()) 990: base(BoundKind.BadExpression, syntax, type, hasErrors || childBoundNodes.HasErrors()) 1027: base(BoundKind.BadStatement, syntax, hasErrors || childBoundNodes.HasErrors()) 1055: base(BoundKind.ExtractedFinallyBlock, syntax, hasErrors || finallyBlock.HasErrors()) 1083: base(BoundKind.TypeExpression, syntax, type, hasErrors || boundContainingTypeOpt.HasErrors() || boundDimensionsOpt.HasErrors()) 1118: base(BoundKind.TypeOrValueExpression, syntax, type, hasErrors) 1134: base(BoundKind.TypeOrValueExpression, syntax, type) 1167: base(BoundKind.NamespaceExpression, syntax, null, hasErrors) 1177: base(BoundKind.NamespaceExpression, syntax, null) 1208: base(BoundKind.UnaryOperator, syntax, type, hasErrors || operand.HasErrors()) 1250: base(BoundKind.IncrementOperator, syntax, type, hasErrors || operand.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors() || resultPlaceholder.HasErrors() || resultConversion.HasErrors()) 1298: base(BoundKind.AddressOfOperator, syntax, type, hasErrors || operand.HasErrors()) 1332: base(BoundKind.UnconvertedAddressOfOperator, syntax, null, hasErrors || operand.HasErrors()) 1361: base(BoundKind.FunctionPointerLoad, syntax, type, hasErrors) 1372: base(BoundKind.FunctionPointerLoad, syntax, type) 1404: base(BoundKind.PointerIndirectionOperator, syntax, type, hasErrors || operand.HasErrors()) 1434: base(BoundKind.PointerElementAccess, syntax, type, hasErrors || expression.HasErrors() || index.HasErrors()) 1469: base(BoundKind.FunctionPointerInvocation, syntax, type, hasErrors || invokedExpression.HasErrors() || arguments.HasErrors()) 1506: base(BoundKind.RefTypeOperator, syntax, type, hasErrors || operand.HasErrors()) 1538: base(BoundKind.MakeRefOperator, syntax, type, hasErrors || operand.HasErrors()) 1568: base(BoundKind.RefValueOperator, syntax, type, hasErrors || operand.HasErrors()) 1600: base(BoundKind.FromEndIndexExpression, syntax, type, hasErrors || operand.HasErrors()) 1632: base(BoundKind.RangeExpression, syntax, type, hasErrors || leftOperandOpt.HasErrors() || rightOperandOpt.HasErrors()) 1664protected BoundBinaryOperatorBase(BoundKind kind, SyntaxNode syntax, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false) 1684: base(BoundKind.BinaryOperator, syntax, left, right, type, hasErrors || left.HasErrors() || right.HasErrors()) 1722: base(BoundKind.TupleBinaryOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1760: base(BoundKind.UserDefinedConditionalLogicalOperator, syntax, left, right, type, hasErrors || trueFalseOperandPlaceholder.HasErrors() || trueFalseOperandConversion.HasErrors() || left.HasErrors() || right.HasErrors()) 1813: base(BoundKind.CompoundAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors() || finalPlaceholder.HasErrors() || finalConversion.HasErrors()) 1860: base(BoundKind.AssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1894: base(BoundKind.DeconstructionAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1929: base(BoundKind.NullCoalescingOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors()) 1970: base(BoundKind.NullCoalescingAssignmentOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors()) 2001: base(BoundKind.UnconvertedConditionalOperator, syntax, null, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 2040: base(BoundKind.ConditionalOperator, syntax, type, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 2084: base(BoundKind.ArrayAccess, syntax, type, hasErrors || expression.HasErrors() || indices.HasErrors()) 2117: base(BoundKind.RefAccess, syntax, type, hasErrors || expression.HasErrors()) 2149: base(BoundKind.ArrayLength, syntax, type, hasErrors || expression.HasErrors()) 2179: base(BoundKind.AwaitableInfo, syntax, hasErrors || awaitableInstancePlaceholder.HasErrors() || getAwaiter.HasErrors() || runtimeAsyncAwaitCall.HasErrors() || runtimeAsyncAwaitCallPlaceholder.HasErrors()) 2220: base(BoundKind.AwaitExpression, syntax, type, hasErrors || expression.HasErrors() || awaitableInfo.HasErrors()) 2254protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors) 2263protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type) 2279: base(BoundKind.TypeOfOperator, syntax, getTypeFromHandle, type, hasErrors || sourceType.HasErrors()) 2308: base(BoundKind.BlockInstrumentation, syntax, hasErrors || prologue.HasErrors() || epilogue.HasErrors()) 2340: base(BoundKind.MethodDefIndex, syntax, type, hasErrors) 2354: base(BoundKind.MethodDefIndex, syntax, type) 2384: base(BoundKind.LocalId, syntax, type, hasErrors) 2395: base(BoundKind.LocalId, syntax, type) 2427: base(BoundKind.ParameterId, syntax, type, hasErrors) 2438: base(BoundKind.ParameterId, syntax, type) 2470: base(BoundKind.StateMachineInstanceId, syntax, type, hasErrors) 2478: base(BoundKind.StateMachineInstanceId, syntax, type) 2505: base(BoundKind.MaximumMethodDefIndex, syntax, type, hasErrors) 2513: base(BoundKind.MaximumMethodDefIndex, syntax, type) 2540: base(BoundKind.InstrumentationPayloadRoot, syntax, type, hasErrors) 2549: base(BoundKind.InstrumentationPayloadRoot, syntax, type) 2578: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type, hasErrors) 2586: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type) 2613: base(BoundKind.ModuleCancellationTokenExpression, syntax, type, hasErrors) 2621: base(BoundKind.ModuleCancellationTokenExpression, syntax, type) 2648: base(BoundKind.ModuleVersionId, syntax, type, hasErrors) 2656: base(BoundKind.ModuleVersionId, syntax, type) 2683: base(BoundKind.ModuleVersionIdString, syntax, type, hasErrors) 2691: base(BoundKind.ModuleVersionIdString, syntax, type) 2718: base(BoundKind.SourceDocumentIndex, syntax, type, hasErrors) 2728: base(BoundKind.SourceDocumentIndex, syntax, type) 2758: base(BoundKind.MethodInfo, syntax, type, hasErrors) 2769: base(BoundKind.MethodInfo, syntax, type) 2801: base(BoundKind.FieldInfo, syntax, type, hasErrors) 2812: base(BoundKind.FieldInfo, syntax, type) 2844: base(BoundKind.DefaultLiteral, syntax, null, hasErrors) 2849: base(BoundKind.DefaultLiteral, syntax, null) 2867: base(BoundKind.DefaultExpression, syntax, type, hasErrors || targetType.HasErrors()) 2898: base(BoundKind.IsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors()) 2933: base(BoundKind.AsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors()) 2970: base(BoundKind.SizeOfOperator, syntax, type, hasErrors || sourceType.HasErrors()) 3002: base(BoundKind.Conversion, syntax, type, hasErrors || operand.HasErrors()) 3050: base(BoundKind.ReadOnlySpanFromArray, syntax, type, hasErrors || operand.HasErrors()) 3083: base(BoundKind.ArgList, syntax, type, hasErrors) 3091: base(BoundKind.ArgList, syntax, type) 3118: base(BoundKind.ArgListOperator, syntax, type, hasErrors || arguments.HasErrors()) 3149: base(BoundKind.FixedLocalCollectionInitializer, syntax, type, hasErrors || elementPointerPlaceholder.HasErrors() || elementPointerConversion.HasErrors() || expression.HasErrors()) 3187protected BoundStatement(BoundKind kind, SyntaxNode syntax, bool hasErrors) 3192protected BoundStatement(BoundKind kind, SyntaxNode syntax) 3202: base(BoundKind.SequencePoint, syntax, hasErrors || statementOpt.HasErrors()) 3227: base(BoundKind.SequencePointWithSpan, syntax, hasErrors || statementOpt.HasErrors()) 3254: base(BoundKind.SavePreviousSequencePoint, syntax, hasErrors) 3263: base(BoundKind.SavePreviousSequencePoint, syntax) 3291: base(BoundKind.RestorePreviousSequencePoint, syntax, hasErrors) 3300: base(BoundKind.RestorePreviousSequencePoint, syntax) 3328: base(BoundKind.StepThroughSequencePoint, syntax, hasErrors) 3334: base(BoundKind.StepThroughSequencePoint, syntax) 3359: base(BoundKind.Block, syntax, statements, hasErrors || instrumentation.HasErrors() || statements.HasErrors()) 3395: base(BoundKind.Scope, syntax, statements, hasErrors || statements.HasErrors()) 3424: base(BoundKind.StateMachineScope, syntax, hasErrors || statement.HasErrors()) 3455: base(BoundKind.LocalDeclaration, syntax, hasErrors || declaredTypeOpt.HasErrors() || initializerOpt.HasErrors() || argumentsOpt.HasErrors()) 3490protected BoundMultipleLocalDeclarationsBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false) 3505: base(BoundKind.MultipleLocalDeclarations, syntax, localDeclarations, hasErrors || localDeclarations.HasErrors()) 3531: base(BoundKind.UsingLocalDeclarations, syntax, localDeclarations, hasErrors || awaitOpt.HasErrors() || localDeclarations.HasErrors()) 3561: base(BoundKind.LocalFunctionStatement, syntax, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 3593: base(BoundKind.NoOpStatement, syntax, hasErrors) 3599: base(BoundKind.NoOpStatement, syntax) 3624: base(BoundKind.ReturnStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3657: base(BoundKind.YieldReturnStatement, syntax, hasErrors || expression.HasErrors()) 3685: base(BoundKind.YieldBreakStatement, syntax, hasErrors) 3690: base(BoundKind.YieldBreakStatement, syntax) 3702: base(BoundKind.ThrowStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3727: base(BoundKind.ExpressionStatement, syntax, hasErrors || expression.HasErrors()) 3755: base(BoundKind.BreakStatement, syntax, hasErrors || labelExpressionOpt.HasErrors()) 3785: base(BoundKind.ContinueStatement, syntax, hasErrors || labelExpressionOpt.HasErrors()) 3815: base(BoundKind.SwitchStatement, syntax, hasErrors || expression.HasErrors() || switchSections.HasErrors() || reachabilityDecisionDag.HasErrors() || defaultLabel.HasErrors()) 3860: base(BoundKind.SwitchDispatch, syntax, hasErrors || expression.HasErrors()) 3896: base(BoundKind.IfStatement, syntax, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternativeOpt.HasErrors()) 3928protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors) 3939protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel) 3956protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 3979: base(BoundKind.DoStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 4009: base(BoundKind.WhileStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 4039: base(BoundKind.ForStatement, syntax, breakLabel, continueLabel, hasErrors || initializer.HasErrors() || condition.HasErrors() || increment.HasErrors() || body.HasErrors()) 4081: base(BoundKind.ForEachStatement, syntax, breakLabel, continueLabel, hasErrors || elementPlaceholder.HasErrors() || elementConversion.HasErrors() || iterationVariableType.HasErrors() || iterationErrorExpressionOpt.HasErrors() || expression.HasErrors() || deconstructionOpt.HasErrors() || body.HasErrors()) 4130: base(BoundKind.ForEachDeconstructStep, syntax, hasErrors || deconstructionAssignment.HasErrors() || targetPlaceholder.HasErrors()) 4161: base(BoundKind.UsingStatement, syntax, hasErrors || declarationsOpt.HasErrors() || expressionOpt.HasErrors() || body.HasErrors() || awaitOpt.HasErrors()) 4200: base(BoundKind.FixedStatement, syntax, hasErrors || declarations.HasErrors() || body.HasErrors()) 4234: base(BoundKind.LockStatement, syntax, hasErrors || argument.HasErrors() || body.HasErrors()) 4265: base(BoundKind.TryStatement, syntax, hasErrors || tryBlock.HasErrors() || catchBlocks.HasErrors() || finallyBlockOpt.HasErrors()) 4302: base(BoundKind.CatchBlock, syntax, hasErrors || exceptionSourceOpt.HasErrors() || exceptionFilterPrologueOpt.HasErrors() || exceptionFilterOpt.HasErrors() || body.HasErrors()) 4343: base(BoundKind.Literal, syntax, type, hasErrors) 4349: base(BoundKind.Literal, syntax, type) 4374: base(BoundKind.Utf8String, syntax, type, hasErrors) 4384: base(BoundKind.Utf8String, syntax, type) 4414: base(BoundKind.ThisReference, syntax, type, hasErrors) 4422: base(BoundKind.ThisReference, syntax, type) 4449: base(BoundKind.PreviousSubmissionReference, syntax, type, hasErrors) 4457: base(BoundKind.PreviousSubmissionReference, syntax, type) 4484: base(BoundKind.HostObjectMemberReference, syntax, type, hasErrors) 4492: base(BoundKind.HostObjectMemberReference, syntax, type) 4519: base(BoundKind.BaseReference, syntax, type, hasErrors) 4524: base(BoundKind.BaseReference, syntax, type) 4548: base(BoundKind.Local, syntax, type, hasErrors) 4561: base(BoundKind.Local, syntax, type) 4597: base(BoundKind.PseudoVariable, syntax, type, hasErrors) 4609: base(BoundKind.PseudoVariable, syntax, type) 4642: base(BoundKind.RangeVariable, syntax, type, hasErrors || value.HasErrors()) 4675: base(BoundKind.Parameter, syntax, type, hasErrors) 4685: base(BoundKind.Parameter, syntax, type) 4715: base(BoundKind.LabelStatement, syntax, hasErrors) 4724: base(BoundKind.LabelStatement, syntax) 4752: base(BoundKind.GotoStatement, syntax, hasErrors || caseExpressionOpt.HasErrors() || labelExpressionOpt.HasErrors()) 4784: base(BoundKind.LabeledStatement, syntax, hasErrors || body.HasErrors()) 4815: base(BoundKind.Label, syntax, type, hasErrors) 4824: base(BoundKind.Label, syntax, type) 4851protected BoundStatementList(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 4861: base(BoundKind.StatementList, syntax, hasErrors || statements.HasErrors()) 4889: base(BoundKind.ConditionalGoto, syntax, hasErrors || condition.HasErrors()) 4921protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false) 4946: base(BoundKind.SwitchExpressionArm, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors() || value.HasErrors()) 4987: base(BoundKind.UnconvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 5015: base(BoundKind.ConvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 5049: base(BoundKind.DecisionDag, syntax, hasErrors || rootNode.HasErrors()) 5078protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax, bool hasErrors) 5083protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax) 5093: base(BoundKind.EvaluationDecisionDagNode, syntax, hasErrors || evaluation.HasErrors() || next.HasErrors()) 5124: base(BoundKind.TestDecisionDagNode, syntax, hasErrors || test.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5158: base(BoundKind.WhenDecisionDagNode, syntax, hasErrors || whenExpression.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5193: base(BoundKind.LeafDecisionDagNode, syntax, hasErrors) 5202: base(BoundKind.LeafDecisionDagNode, syntax) 5229protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5244: base(BoundKind.DagTemp, syntax, hasErrors || source.HasErrors()) 5276: base(BoundKind.DagTypeTest, syntax, input, hasErrors || input.HasErrors()) 5305: base(BoundKind.DagNonNullTest, syntax, input, hasErrors || input.HasErrors()) 5333: base(BoundKind.DagExplicitNullTest, syntax, input, hasErrors || input.HasErrors()) 5359: base(BoundKind.DagValueTest, syntax, input, hasErrors || input.HasErrors()) 5388: base(BoundKind.DagRelationalTest, syntax, input, hasErrors || input.HasErrors()) 5418protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5431: base(BoundKind.DagDeconstructEvaluation, syntax, input, hasErrors || input.HasErrors()) 5460: base(BoundKind.DagTypeEvaluation, syntax, input, hasErrors || input.HasErrors()) 5489: base(BoundKind.DagFieldEvaluation, syntax, input, hasErrors || input.HasErrors()) 5518: base(BoundKind.DagPropertyEvaluation, syntax, input, hasErrors || input.HasErrors()) 5549: base(BoundKind.DagIndexEvaluation, syntax, input, hasErrors || input.HasErrors()) 5580: base(BoundKind.DagIndexerEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5627: base(BoundKind.DagSliceEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5676: base(BoundKind.DagAssignmentEvaluation, syntax, input, hasErrors || target.HasErrors() || input.HasErrors()) 5705: base(BoundKind.DagPassThroughEvaluation, syntax, input, hasErrors || input.HasErrors()) 5731: base(BoundKind.SwitchSection, syntax, statements, hasErrors || switchLabels.HasErrors() || statements.HasErrors()) 5763: base(BoundKind.SwitchLabel, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors()) 5797protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false) 5812: base(BoundKind.SequencePointExpression, syntax, type, hasErrors || expression.HasErrors()) 5840: base(BoundKind.Sequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5876: base(BoundKind.SpillSequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5912: base(BoundKind.DynamicMemberAccess, syntax, type, hasErrors || receiver.HasErrors()) 5950protected BoundDynamicInvocableBase(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol? type, bool hasErrors = false) 5968: base(BoundKind.DynamicInvocation, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 6004: base(BoundKind.ConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || accessExpression.HasErrors()) 6037: base(BoundKind.LoweredConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || whenNotNull.HasErrors() || whenNullOpt.HasErrors()) 6078: base(BoundKind.ConditionalReceiver, syntax, type, hasErrors) 6087: base(BoundKind.ConditionalReceiver, syntax, type) 6116: base(BoundKind.ComplexConditionalReceiver, syntax, type, hasErrors || valueTypeReceiver.HasErrors() || referenceTypeReceiver.HasErrors()) 6149: base(BoundKind.MethodGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6190: base(BoundKind.PropertyGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6218: base(BoundKind.Call, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 6277: base(BoundKind.EventAssignmentOperator, syntax, type, hasErrors || receiverOpt.HasErrors() || argument.HasErrors()) 6316: base(BoundKind.Attribute, syntax, type, hasErrors || constructorArguments.HasErrors() || namedArguments.HasErrors()) 6361: base(BoundKind.UnconvertedObjectCreationExpression, syntax, null, hasErrors || arguments.HasErrors()) 6398protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type, bool hasErrors) 6406protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type) 6420: base(BoundKind.ObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6470protected BoundCollectionExpressionBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundNode> elements, TypeSymbol? type, bool hasErrors = false) 6489: base(BoundKind.UnconvertedCollectionExpression, syntax, elements, null, hasErrors || withElement.HasErrors() || elements.HasErrors()) 6518: base(BoundKind.UnconvertedWithElement, syntax, hasErrors || arguments.HasErrors()) 6550: base(BoundKind.CollectionExpression, syntax, elements, type, hasErrors || placeholder.HasErrors() || collectionCreation.HasErrors() || collectionBuilderElementsPlaceholder.HasErrors() || unconvertedCollectionExpression.HasErrors() || elements.HasErrors()) 6599: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type, hasErrors) 6604: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type) 6627: base(BoundKind.CollectionExpressionSpreadElement, syntax, hasErrors || expression.HasErrors() || expressionPlaceholder.HasErrors() || conversion.HasErrors() || lengthOrCount.HasErrors() || elementPlaceholder.HasErrors() || iteratorBody.HasErrors()) 6666protected BoundTupleExpression(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false) 6685: base(BoundKind.TupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || arguments.HasErrors()) 6712: base(BoundKind.ConvertedTupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || sourceTuple.HasErrors() || arguments.HasErrors()) 6742: base(BoundKind.DynamicObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6785: base(BoundKind.NoPiaObjectCreationExpression, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 6816protected BoundObjectInitializerExpressionBase(BoundKind kind, SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false) 6836: base(BoundKind.ObjectInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6864: base(BoundKind.ObjectInitializerMember, syntax, type, hasErrors || arguments.HasErrors()) 6913: base(BoundKind.DynamicObjectInitializerMember, syntax, type, hasErrors) 6925: base(BoundKind.DynamicObjectInitializerMember, syntax, type) 6958: base(BoundKind.CollectionInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6986: base(BoundKind.CollectionElementInitializer, syntax, type, hasErrors || arguments.HasErrors() || implicitReceiverOpt.HasErrors()) 7031: base(BoundKind.DynamicCollectionElementInitializer, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 7063: base(BoundKind.ImplicitReceiver, syntax, type, hasErrors) 7071: base(BoundKind.ImplicitReceiver, syntax, type) 7098: base(BoundKind.AnonymousObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || declarations.HasErrors()) 7134: base(BoundKind.AnonymousPropertyDeclaration, syntax, type, hasErrors) 7144: base(BoundKind.AnonymousPropertyDeclaration, syntax, type) 7174: base(BoundKind.NewT, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 7204: base(BoundKind.DelegateCreationExpression, syntax, type, hasErrors || argument.HasErrors()) 7240: base(BoundKind.ArrayCreation, syntax, type, hasErrors || bounds.HasErrors() || initializerOpt.HasErrors()) 7272: base(BoundKind.ArrayInitialization, syntax, null, hasErrors || initializers.HasErrors()) 7302protected BoundStackAllocArrayCreationBase(BoundKind kind, SyntaxNode syntax, TypeSymbol elementType, BoundExpression count, BoundArrayInitialization? initializerOpt, TypeSymbol? type, bool hasErrors = false) 7322: base(BoundKind.StackAllocArrayCreation, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7349: base(BoundKind.ConvertedStackAllocExpression, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7378: base(BoundKind.FieldAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7418: base(BoundKind.HoistedFieldAccess, syntax, type, hasErrors) 7428: base(BoundKind.HoistedFieldAccess, syntax, type) 7458: base(BoundKind.PropertyAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7496: base(BoundKind.EventAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7532: base(BoundKind.IndexerAccess, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 7583: base(BoundKind.ImplicitIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || argument.HasErrors() || lengthOrCountAccess.HasErrors() || receiverPlaceholder.HasErrors() || indexerOrSliceAccess.HasErrors() || argumentPlaceholders.HasErrors()) 7632: base(BoundKind.InlineArrayAccess, syntax, type, hasErrors || expression.HasErrors() || argument.HasErrors()) 7673: base(BoundKind.DynamicIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || arguments.HasErrors()) 7713: base(BoundKind.Lambda, syntax, type, hasErrors || unboundLambda.HasErrors() || body.HasErrors()) 7753: base(BoundKind.UnboundLambda, syntax, null, hasErrors) 7764: base(BoundKind.UnboundLambda, syntax, null) 7797: base(BoundKind.QueryClause, syntax, type, hasErrors || value.HasErrors() || operation.HasErrors() || cast.HasErrors() || unoptimizedForm.HasErrors()) 7838: base(BoundKind.TypeOrInstanceInitializers, syntax, statements, hasErrors || statements.HasErrors()) 7864: base(BoundKind.NameOfOperator, syntax, type, hasErrors || argument.HasErrors()) 7900protected BoundInterpolatedStringBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false) 7917: base(BoundKind.UnconvertedInterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7943: base(BoundKind.InterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7971: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type, hasErrors) 7976: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type) 7999: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type, hasErrors) 8008: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type) 8037: base(BoundKind.StringInsert, syntax, null, hasErrors || value.HasErrors() || alignment.HasErrors() || format.HasErrors()) 8072: base(BoundKind.IsPatternExpression, syntax, type, hasErrors || expression.HasErrors() || pattern.HasErrors() || reachabilityDecisionDag.HasErrors()) 8115protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors) 8130protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType) 8148: base(BoundKind.ConstantPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8187: base(BoundKind.PatternWithUnionMatching, syntax, inputType, narrowedType, hasErrors || leftOfPendingConjunction.HasErrors() || valueProperty.HasErrors() || valuePattern.HasErrors()) 8229: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType, hasErrors) 8242: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType) 8268protected BoundObjectPattern(BoundKind kind, SyntaxNode syntax, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8286: base(BoundKind.DeclarationPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || variableAccess.HasErrors()) 8324: base(BoundKind.RecursivePattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || deconstruction.HasErrors() || properties.HasErrors() || variableAccess.HasErrors()) 8367: base(BoundKind.ListPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || subpatterns.HasErrors() || lengthAccess.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || variableAccess.HasErrors()) 8411: base(BoundKind.SlicePattern, syntax, inputType, narrowedType, hasErrors || pattern.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors()) 8450: base(BoundKind.ITuplePattern, syntax, inputType, narrowedType, hasErrors || subpatterns.HasErrors()) 8489protected BoundSubpattern(BoundKind kind, SyntaxNode syntax, BoundPattern pattern, bool hasErrors = false) 8508: base(BoundKind.PositionalSubpattern, syntax, pattern, hasErrors || pattern.HasErrors()) 8536: base(BoundKind.PropertySubpattern, syntax, pattern, hasErrors || member.HasErrors() || pattern.HasErrors()) 8566: base(BoundKind.PropertySubpatternMember, syntax, hasErrors || receiver.HasErrors()) 8598: base(BoundKind.TypePattern, syntax, inputType, narrowedType, hasErrors || declaredType.HasErrors()) 8636: base(BoundKind.BinaryPattern, syntax, inputType, narrowedType, hasErrors || left.HasErrors() || right.HasErrors()) 8675: base(BoundKind.NegatedPattern, syntax, inputType, narrowedType, hasErrors || negated.HasErrors()) 8709: base(BoundKind.RelationalPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8750: base(BoundKind.DiscardExpression, syntax, type, hasErrors) 8757: base(BoundKind.DiscardExpression, syntax, type) 8785: base(BoundKind.ThrowExpression, syntax, type, hasErrors || expression.HasErrors()) 8812protected VariablePendingInference(BoundKind kind, SyntaxNode syntax, Symbol variableSymbol, BoundExpression? receiverOpt, bool hasErrors = false) 8830: base(BoundKind.OutVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8856: base(BoundKind.DeconstructionVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8882: base(BoundKind.OutDeconstructVarPendingInference, syntax, null, hasErrors) 8889: base(BoundKind.OutDeconstructVarPendingInference, syntax, null) 8916protected BoundMethodBodyBase(BoundKind kind, SyntaxNode syntax, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8930: base(BoundKind.NonConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 8953: base(BoundKind.ConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || initializer.HasErrors() || blockBody.HasErrors() || expressionBody.HasErrors()) 8983: base(BoundKind.ExpressionWithNullability, syntax, type, hasErrors || expression.HasErrors()) 9014: base(BoundKind.ValueForNullableAnalysis, syntax, type, hasErrors || originalExpression.HasErrors()) 9039: base(BoundKind.WithExpression, syntax, type, hasErrors || receiver.HasErrors() || initializerExpression.HasErrors()) 9079case BoundKind.FieldEqualsValue: 9081case BoundKind.PropertyEqualsValue: 9083case BoundKind.ParameterEqualsValue: 9085case BoundKind.GlobalStatementInitializer: 9087case BoundKind.ValuePlaceholder: 9089case BoundKind.CapturedReceiverPlaceholder: 9091case BoundKind.DeconstructValuePlaceholder: 9093case BoundKind.TupleOperandPlaceholder: 9095case BoundKind.AwaitableValuePlaceholder: 9097case BoundKind.DisposableValuePlaceholder: 9099case BoundKind.ObjectOrCollectionValuePlaceholder: 9101case BoundKind.ImplicitIndexerValuePlaceholder: 9103case BoundKind.ImplicitIndexerReceiverPlaceholder: 9105case BoundKind.ListPatternReceiverPlaceholder: 9107case BoundKind.ListPatternIndexPlaceholder: 9109case BoundKind.SlicePatternReceiverPlaceholder: 9111case BoundKind.SlicePatternRangePlaceholder: 9113case BoundKind.CollectionBuilderElementsPlaceholder: 9115case BoundKind.Dup: 9117case BoundKind.PassByCopy: 9119case BoundKind.BadExpression: 9121case BoundKind.BadStatement: 9123case BoundKind.ExtractedFinallyBlock: 9125case BoundKind.TypeExpression: 9127case BoundKind.TypeOrValueExpression: 9129case BoundKind.NamespaceExpression: 9131case BoundKind.UnaryOperator: 9133case BoundKind.IncrementOperator: 9135case BoundKind.AddressOfOperator: 9137case BoundKind.UnconvertedAddressOfOperator: 9139case BoundKind.FunctionPointerLoad: 9141case BoundKind.PointerIndirectionOperator: 9143case BoundKind.PointerElementAccess: 9145case BoundKind.FunctionPointerInvocation: 9147case BoundKind.RefTypeOperator: 9149case BoundKind.MakeRefOperator: 9151case BoundKind.RefValueOperator: 9153case BoundKind.FromEndIndexExpression: 9155case BoundKind.RangeExpression: 9157case BoundKind.BinaryOperator: 9159case BoundKind.TupleBinaryOperator: 9161case BoundKind.UserDefinedConditionalLogicalOperator: 9163case BoundKind.CompoundAssignmentOperator: 9165case BoundKind.AssignmentOperator: 9167case BoundKind.DeconstructionAssignmentOperator: 9169case BoundKind.NullCoalescingOperator: 9171case BoundKind.NullCoalescingAssignmentOperator: 9173case BoundKind.UnconvertedConditionalOperator: 9175case BoundKind.ConditionalOperator: 9177case BoundKind.ArrayAccess: 9179case BoundKind.RefAccess: 9181case BoundKind.ArrayLength: 9183case BoundKind.AwaitableInfo: 9185case BoundKind.AwaitExpression: 9187case BoundKind.TypeOfOperator: 9189case BoundKind.BlockInstrumentation: 9191case BoundKind.MethodDefIndex: 9193case BoundKind.LocalId: 9195case BoundKind.ParameterId: 9197case BoundKind.StateMachineInstanceId: 9199case BoundKind.MaximumMethodDefIndex: 9201case BoundKind.InstrumentationPayloadRoot: 9203case BoundKind.ThrowIfModuleCancellationRequested: 9205case BoundKind.ModuleCancellationTokenExpression: 9207case BoundKind.ModuleVersionId: 9209case BoundKind.ModuleVersionIdString: 9211case BoundKind.SourceDocumentIndex: 9213case BoundKind.MethodInfo: 9215case BoundKind.FieldInfo: 9217case BoundKind.DefaultLiteral: 9219case BoundKind.DefaultExpression: 9221case BoundKind.IsOperator: 9223case BoundKind.AsOperator: 9225case BoundKind.SizeOfOperator: 9227case BoundKind.Conversion: 9229case BoundKind.ReadOnlySpanFromArray: 9231case BoundKind.ArgList: 9233case BoundKind.ArgListOperator: 9235case BoundKind.FixedLocalCollectionInitializer: 9237case BoundKind.SequencePoint: 9239case BoundKind.SequencePointWithSpan: 9241case BoundKind.SavePreviousSequencePoint: 9243case BoundKind.RestorePreviousSequencePoint: 9245case BoundKind.StepThroughSequencePoint: 9247case BoundKind.Block: 9249case BoundKind.Scope: 9251case BoundKind.StateMachineScope: 9253case BoundKind.LocalDeclaration: 9255case BoundKind.MultipleLocalDeclarations: 9257case BoundKind.UsingLocalDeclarations: 9259case BoundKind.LocalFunctionStatement: 9261case BoundKind.NoOpStatement: 9263case BoundKind.ReturnStatement: 9265case BoundKind.YieldReturnStatement: 9267case BoundKind.YieldBreakStatement: 9269case BoundKind.ThrowStatement: 9271case BoundKind.ExpressionStatement: 9273case BoundKind.BreakStatement: 9275case BoundKind.ContinueStatement: 9277case BoundKind.SwitchStatement: 9279case BoundKind.SwitchDispatch: 9281case BoundKind.IfStatement: 9283case BoundKind.DoStatement: 9285case BoundKind.WhileStatement: 9287case BoundKind.ForStatement: 9289case BoundKind.ForEachStatement: 9291case BoundKind.ForEachDeconstructStep: 9293case BoundKind.UsingStatement: 9295case BoundKind.FixedStatement: 9297case BoundKind.LockStatement: 9299case BoundKind.TryStatement: 9301case BoundKind.CatchBlock: 9303case BoundKind.Literal: 9305case BoundKind.Utf8String: 9307case BoundKind.ThisReference: 9309case BoundKind.PreviousSubmissionReference: 9311case BoundKind.HostObjectMemberReference: 9313case BoundKind.BaseReference: 9315case BoundKind.Local: 9317case BoundKind.PseudoVariable: 9319case BoundKind.RangeVariable: 9321case BoundKind.Parameter: 9323case BoundKind.LabelStatement: 9325case BoundKind.GotoStatement: 9327case BoundKind.LabeledStatement: 9329case BoundKind.Label: 9331case BoundKind.StatementList: 9333case BoundKind.ConditionalGoto: 9335case BoundKind.SwitchExpressionArm: 9337case BoundKind.UnconvertedSwitchExpression: 9339case BoundKind.ConvertedSwitchExpression: 9341case BoundKind.DecisionDag: 9343case BoundKind.EvaluationDecisionDagNode: 9345case BoundKind.TestDecisionDagNode: 9347case BoundKind.WhenDecisionDagNode: 9349case BoundKind.LeafDecisionDagNode: 9351case BoundKind.DagTemp: 9353case BoundKind.DagTypeTest: 9355case BoundKind.DagNonNullTest: 9357case BoundKind.DagExplicitNullTest: 9359case BoundKind.DagValueTest: 9361case BoundKind.DagRelationalTest: 9363case BoundKind.DagDeconstructEvaluation: 9365case BoundKind.DagTypeEvaluation: 9367case BoundKind.DagFieldEvaluation: 9369case BoundKind.DagPropertyEvaluation: 9371case BoundKind.DagIndexEvaluation: 9373case BoundKind.DagIndexerEvaluation: 9375case BoundKind.DagSliceEvaluation: 9377case BoundKind.DagAssignmentEvaluation: 9379case BoundKind.DagPassThroughEvaluation: 9381case BoundKind.SwitchSection: 9383case BoundKind.SwitchLabel: 9385case BoundKind.SequencePointExpression: 9387case BoundKind.Sequence: 9389case BoundKind.SpillSequence: 9391case BoundKind.DynamicMemberAccess: 9393case BoundKind.DynamicInvocation: 9395case BoundKind.ConditionalAccess: 9397case BoundKind.LoweredConditionalAccess: 9399case BoundKind.ConditionalReceiver: 9401case BoundKind.ComplexConditionalReceiver: 9403case BoundKind.MethodGroup: 9405case BoundKind.PropertyGroup: 9407case BoundKind.Call: 9409case BoundKind.EventAssignmentOperator: 9411case BoundKind.Attribute: 9413case BoundKind.UnconvertedObjectCreationExpression: 9415case BoundKind.ObjectCreationExpression: 9417case BoundKind.UnconvertedCollectionExpression: 9419case BoundKind.UnconvertedWithElement: 9421case BoundKind.CollectionExpression: 9423case BoundKind.CollectionExpressionSpreadExpressionPlaceholder: 9425case BoundKind.CollectionExpressionSpreadElement: 9427case BoundKind.TupleLiteral: 9429case BoundKind.ConvertedTupleLiteral: 9431case BoundKind.DynamicObjectCreationExpression: 9433case BoundKind.NoPiaObjectCreationExpression: 9435case BoundKind.ObjectInitializerExpression: 9437case BoundKind.ObjectInitializerMember: 9439case BoundKind.DynamicObjectInitializerMember: 9441case BoundKind.CollectionInitializerExpression: 9443case BoundKind.CollectionElementInitializer: 9445case BoundKind.DynamicCollectionElementInitializer: 9447case BoundKind.ImplicitReceiver: 9449case BoundKind.AnonymousObjectCreationExpression: 9451case BoundKind.AnonymousPropertyDeclaration: 9453case BoundKind.NewT: 9455case BoundKind.DelegateCreationExpression: 9457case BoundKind.ArrayCreation: 9459case BoundKind.ArrayInitialization: 9461case BoundKind.StackAllocArrayCreation: 9463case BoundKind.ConvertedStackAllocExpression: 9465case BoundKind.FieldAccess: 9467case BoundKind.HoistedFieldAccess: 9469case BoundKind.PropertyAccess: 9471case BoundKind.EventAccess: 9473case BoundKind.IndexerAccess: 9475case BoundKind.ImplicitIndexerAccess: 9477case BoundKind.InlineArrayAccess: 9479case BoundKind.DynamicIndexerAccess: 9481case BoundKind.Lambda: 9483case BoundKind.UnboundLambda: 9485case BoundKind.QueryClause: 9487case BoundKind.TypeOrInstanceInitializers: 9489case BoundKind.NameOfOperator: 9491case BoundKind.UnconvertedInterpolatedString: 9493case BoundKind.InterpolatedString: 9495case BoundKind.InterpolatedStringHandlerPlaceholder: 9497case BoundKind.InterpolatedStringArgumentPlaceholder: 9499case BoundKind.StringInsert: 9501case BoundKind.IsPatternExpression: 9503case BoundKind.ConstantPattern: 9505case BoundKind.PatternWithUnionMatching: 9507case BoundKind.DiscardPattern: 9509case BoundKind.DeclarationPattern: 9511case BoundKind.RecursivePattern: 9513case BoundKind.ListPattern: 9515case BoundKind.SlicePattern: 9517case BoundKind.ITuplePattern: 9519case BoundKind.PositionalSubpattern: 9521case BoundKind.PropertySubpattern: 9523case BoundKind.PropertySubpatternMember: 9525case BoundKind.TypePattern: 9527case BoundKind.BinaryPattern: 9529case BoundKind.NegatedPattern: 9531case BoundKind.RelationalPattern: 9533case BoundKind.DiscardExpression: 9535case BoundKind.ThrowExpression: 9537case BoundKind.OutVariablePendingInference: 9539case BoundKind.DeconstructionVariablePendingInference: 9541case BoundKind.OutDeconstructVarPendingInference: 9543case BoundKind.NonConstructorMethodBody: 9545case BoundKind.ConstructorMethodBody: 9547case BoundKind.ExpressionWithNullability: 9549case BoundKind.ValueForNullableAnalysis: 9551case 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)
1119if (visited.Kind != BoundKind.Call) 1346if (node.Argument.Kind == BoundKind.Lambda) 1393receiver.Kind == BoundKind.TypeExpression &&
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (42)
141case BoundKind.ReturnStatement: 149case BoundKind.ExpressionStatement: 151case BoundKind.SequencePoint: 154case BoundKind.SequencePointWithSpan: 187case BoundKind.ArrayAccess: 189case BoundKind.ArrayCreation: 191case BoundKind.ArrayLength: 193case BoundKind.AsOperator: 195case BoundKind.BaseReference: 197case BoundKind.BinaryOperator: 201case BoundKind.UserDefinedConditionalLogicalOperator: 204case BoundKind.Call: 206case BoundKind.ConditionalOperator: 208case BoundKind.Conversion: 210case BoundKind.PassByCopy: 212case BoundKind.DelegateCreationExpression: 214case BoundKind.FieldAccess: 221case BoundKind.IsOperator: 223case BoundKind.Lambda: 225case BoundKind.NewT: 227case BoundKind.NullCoalescingOperator: 229case BoundKind.ObjectCreationExpression: 231case BoundKind.Parameter: 233case BoundKind.PointerIndirectionOperator: 235case BoundKind.PointerElementAccess: 237case BoundKind.PropertyAccess: 239case BoundKind.SizeOfOperator: 241case BoundKind.UnaryOperator: 244case BoundKind.DefaultExpression: 245case BoundKind.HostObjectMemberReference: 246case BoundKind.Literal: 247case BoundKind.Local: 248case BoundKind.MethodInfo: 249case BoundKind.PreviousSubmissionReference: 250case BoundKind.ThisReference: 251case BoundKind.TypeOfOperator: 253case BoundKind.ValuePlaceholder: 540if (operand.Kind == BoundKind.Conversion) 807if (node.Argument.Kind == BoundKind.MethodGroup) 809throw ExceptionUtilities.UnexpectedValue(BoundKind.MethodGroup); 991case BoundKind.ObjectInitializerExpression: 1042case 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; 292bool hasBaseReceiver = node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.BaseReference; 717if (current.Left.Kind == BoundKind.BinaryOperator) 821if (operand.Kind == BoundKind.FieldAccess) 928if (node.Argument.Kind != BoundKind.MethodGroup) 1012if (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: 316if (node.Left.ConstantValueOpt != null && node.Right.ConstantValueOpt == null && node.Right.Kind == BoundKind.Conversion) 321if (node.Right.ConstantValueOpt != null && node.Left.ConstantValueOpt == null && node.Left.Kind == BoundKind.Conversion) 346return node.Kind == BoundKind.Conversion && ((BoundConversion)node).ExplicitCastInCode; 352if (node.Kind != BoundKind.Conversion) return false; 576if (operand.Kind == BoundKind.Conversion) 605if (expr.Kind != BoundKind.Conversion) 864if (node.Kind == BoundKind.Conversion) 888while (right.Kind == BoundKind.Conversion) 903if (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_AssignmentOperator.cs (18)
30case BoundKind.PropertyAccess: 34case BoundKind.IndexerAccess: 38case BoundKind.ImplicitIndexerAccess: 45case BoundKind.EventAccess: 56case BoundKind.DynamicMemberAccess: 64case BoundKind.DynamicIndexerAccess: 107case BoundKind.DynamicIndexerAccess: 118case BoundKind.DynamicMemberAccess: 127case BoundKind.EventAccess: 188case BoundKind.DynamicIndexerAccess: 189case BoundKind.DynamicMemberAccess: 192case BoundKind.PropertyAccess: 213case BoundKind.IndexerAccess: 235case BoundKind.Local: 236case BoundKind.Parameter: 237case BoundKind.FieldAccess: 247case BoundKind.DiscardExpression: 266case BoundKind.Sequence:
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()) 660if (constantLeft == null && loweredLeft.Kind != BoundKind.Local && loweredLeft.Kind != BoundKind.Parameter) 721if (expression.Kind == BoundKind.Conversion) 1627if (nonNullRight != null && nonNullRight.ConstantValueOpt != null && left.Kind == BoundKind.Sequence) 1630if (seq.Value.Kind == BoundKind.ConditionalOperator)
Lowering\LocalRewriter\LocalRewriter_Block.cs (2)
111case BoundKind.LabeledStatement: 114case BoundKind.UsingLocalDeclarations:
Lowering\LocalRewriter\LocalRewriter_Call.cs (9)
35case BoundKind.MethodGroup: 43Debug.Assert(methodGroup.ReceiverOpt == null || methodGroup.ReceiverOpt.Kind != BoundKind.TypeOrValueExpression); 71case BoundKind.DynamicMemberAccess: 574case BoundKind.Parameter: 579case BoundKind.Local: 585case BoundKind.PassByCopy: 587case BoundKind.Conversion: 1759if (argument.Kind == BoundKind.Local) 1848if (argument.Kind == BoundKind.Local)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (40)
99if (node.Left.Kind == BoundKind.DynamicMemberAccess && 290Debug.Assert(receiverOpt.Kind != BoundKind.TypeExpression); 643Debug.Assert(receiver.Kind != BoundKind.TypeExpression); 755case BoundKind.PropertyAccess: 770case BoundKind.IndexerAccess: 782case BoundKind.ImplicitIndexerAccess: 795case BoundKind.FieldAccess: 812case BoundKind.ArrayAccess: 840case BoundKind.InlineArrayAccess: 844case BoundKind.DynamicMemberAccess: 847case BoundKind.DynamicIndexerAccess: 850case BoundKind.Local: 851case BoundKind.Parameter: 852case BoundKind.ThisReference: // a special kind of parameter 853case BoundKind.PseudoVariable: 861case BoundKind.Call: 865case BoundKind.FunctionPointerInvocation: 869case BoundKind.ConditionalOperator: 873case BoundKind.AssignmentOperator: 877case BoundKind.PointerElementAccess: 878case BoundKind.PointerIndirectionOperator: 879case BoundKind.RefValueOperator: 882case BoundKind.EventAccess: 1006case BoundKind.ThisReference: 1009case BoundKind.BaseReference: 1012case BoundKind.Literal: 1016case BoundKind.Parameter: 1021case BoundKind.Local: 1024case BoundKind.TypeExpression: 1048case BoundKind.Parameter: 1050goto case BoundKind.Local; 1051case BoundKind.Local: 1052case BoundKind.Lambda: 1053case BoundKind.ThisReference: 1054case BoundKind.BaseReference: 1055case BoundKind.Literal: 1058case BoundKind.Conversion: 1063case BoundKind.PassByCopy: 1066case BoundKind.ObjectCreationExpression: 1078case BoundKind.Call:
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (4)
243case BoundKind.Sequence: 247case BoundKind.Conversion: 1376if (operand.Kind == BoundKind.Sequence) 1379if (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) 305if (right.Kind == BoundKind.Conversion) 329private static bool IsTupleExpression(BoundKind kind) 331return kind == BoundKind.TupleLiteral || kind == BoundKind.ConvertedTupleLiteral; 452case BoundKind.DiscardExpression: 456case BoundKind.TupleLiteral: 457case 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)
561if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 648if (makeOffsetInput.ConstantValueOpt is null && lengthAccess.Kind is not BoundKind.ArrayLength) 910if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 1107if ((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)
286while (node.Kind != BoundKind.LeafDecisionDagNode && node.Kind != BoundKind.WhenDecisionDagNode)
Lowering\LocalRewriter\LocalRewriter_NullCoalescingAssignmentOperator.cs (2)
113Debug.Assert(!_inExpressionLambda && lhsRead.Kind != BoundKind.PropertyAccess); 117if (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)
627if (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) 637case BoundKind.Local: 640case BoundKind.Parameter: 644case BoundKind.FieldAccess: 1025case BoundKind.PropertyAccess: 1029case BoundKind.DynamicMemberAccess: 1033case BoundKind.IndexerAccess: 1037case 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\LocalRewriter.cs (47)
291node.Kind is not (BoundKind.ImplicitReceiver or BoundKind.ObjectOrCollectionValuePlaceholder or BoundKind.ValuePlaceholder or BoundKind.CollectionBuilderElementsPlaceholder)) 314return node.Kind == BoundKind.DeconstructionAssignmentOperator && !((BoundDeconstructionAssignmentOperator)node).IsUsed; 719if (initializer.Kind == BoundKind.Block) 888case BoundKind.Block: 893if (initializer.Kind == BoundKind.ExpressionStatement) 895goto case BoundKind.ExpressionStatement; 900case BoundKind.ExpressionStatement: 901return ((BoundExpressionStatement)initializer).Expression.Kind == BoundKind.AssignmentOperator; 918if (statement.Kind != BoundKind.ExpressionStatement) 929Debug.Assert(assignment.Left.Kind == BoundKind.FieldAccess); 1027case BoundKind.Parameter: 1028case BoundKind.Local: 1029case BoundKind.ArrayAccess: 1030case BoundKind.ThisReference: 1031case BoundKind.PointerIndirectionOperator: 1032case BoundKind.PointerElementAccess: 1033case BoundKind.RefValueOperator: 1034case BoundKind.PseudoVariable: 1035case BoundKind.DiscardExpression: 1038case BoundKind.DeconstructValuePlaceholder: 1043case BoundKind.InterpolatedStringArgumentPlaceholder: 1050case BoundKind.InterpolatedStringHandlerPlaceholder: 1055case BoundKind.CollectionExpressionSpreadExpressionPlaceholder: 1059case BoundKind.AwaitableValuePlaceholder: 1064case BoundKind.EventAccess: 1078case BoundKind.FieldAccess: 1089case BoundKind.Sequence: 1092case BoundKind.AssignmentOperator: 1095case BoundKind.ConditionalOperator: 1098case BoundKind.Call: 1101case BoundKind.FunctionPointerInvocation: 1104case BoundKind.PropertyAccess: 1107case BoundKind.IndexerAccess: 1110case BoundKind.ImplicitIndexerAccess: 1113case BoundKind.ImplicitIndexerReceiverPlaceholder: 1117case BoundKind.InlineArrayAccess: 1120case BoundKind.ImplicitIndexerValuePlaceholder: 1125case BoundKind.ListPatternReceiverPlaceholder: 1126case BoundKind.SlicePatternReceiverPlaceholder: 1127case BoundKind.SlicePatternRangePlaceholder: 1128case BoundKind.ListPatternIndexPlaceholder: 1131case BoundKind.Conversion: 1134case BoundKind.Dup: 1137case BoundKind.RefAccess:
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
388ImmutableArray<BoundDecisionDagNode> nodesToLower = sortedNodes.WhereAsArray(n => n.Kind != BoundKind.WhenDecisionDagNode && n.Kind != BoundKind.LeafDecisionDagNode); 980if (!sortedNodes.Any(static n => n.Kind == BoundKind.WhenDecisionDagNode)) return; 1192Debug.Assert(left.Kind == BoundKind.Local && left == binding.VariableAccess);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (4)
554if ((loweredInput.Kind == BoundKind.Local || loweredInput.Kind == BoundKind.Parameter) 679if (canShareInputs && (expr.Kind == BoundKind.Parameter || expr.Kind == BoundKind.Local) && _tempAllocator.TrySetTemp(temp, expr))
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (2)
226if (loweredReceiver.Kind == BoundKind.TypeExpression) 673int discardCount = loweredArguments.Count(a => a.Kind == BoundKind.DiscardExpression);
Lowering\MethodToClassRewriter.cs (6)
261if (originalLeft.Kind != BoundKind.Local) 275Debug.Assert(originalRight.Kind != BoundKind.ConvertedStackAllocExpression); 297if (rewrittenLeft.Kind != BoundKind.Local && originalRight.Kind == BoundKind.ConvertedStackAllocExpression) 379return originalReceiver is { Kind: BoundKind.BaseReference } && 380rewrittenReceiver 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: 940case BoundKind.Local: 941case BoundKind.Parameter: 945case BoundKind.FieldAccess: 954case BoundKind.ArrayAccess:
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
316if (node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.ThisReference)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (3)
417if (statement.Kind == BoundKind.Block) 421if (rewrittenStatements.Length == 1 && rewrittenStatements[0].Kind == BoundKind.StateMachineScope) 620if (node.Left.Kind != BoundKind.Local)
Lowering\StateMachineRewriter\RefInitializationHoister.cs (8)
150case BoundKind.ArrayAccess: 187case BoundKind.FieldAccess: 217if (receiver.Kind != BoundKind.ThisReference && !isFieldOfStruct) 226case BoundKind.ThisReference: 227case BoundKind.BaseReference: 228case BoundKind.DefaultExpression: 231case BoundKind.Call: 252case BoundKind.ConditionalOperator:
Lowering\SyntheticBoundNodeFactory.cs (3)
591if (body.Kind != BoundKind.Block) 1768var discardsPresent = arguments.Any(static a => a.Kind == BoundKind.DiscardExpression); 1773(arg, t) => arg.Kind == BoundKind.DiscardExpression ? t.factory.MakeTempForDiscard((BoundDiscardExpression)arg, t.builder) : arg,
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)))
Operations\CSharpOperationFactory.cs (173)
36case BoundKind.DeconstructValuePlaceholder: 38case BoundKind.DeconstructionAssignmentOperator: 40case BoundKind.Call: 42case BoundKind.Local: 44case BoundKind.FieldAccess: 46case BoundKind.PropertyAccess: 48case BoundKind.IndexerAccess: 50case BoundKind.EventAccess: 52case BoundKind.EventAssignmentOperator: 54case BoundKind.Parameter: 56case BoundKind.Literal: 58case BoundKind.Utf8String: 60case BoundKind.DynamicInvocation: 62case BoundKind.DynamicIndexerAccess: 64case BoundKind.ObjectCreationExpression: 66case BoundKind.WithExpression: 68case BoundKind.DynamicObjectCreationExpression: 70case BoundKind.ObjectInitializerExpression: 72case BoundKind.CollectionInitializerExpression: 74case BoundKind.ObjectInitializerMember: 76case BoundKind.CollectionElementInitializer: 78case BoundKind.DynamicObjectInitializerMember: 80case BoundKind.DynamicMemberAccess: 82case BoundKind.DynamicCollectionElementInitializer: 84case BoundKind.UnboundLambda: 86case BoundKind.Lambda: 88case BoundKind.Conversion: 90case BoundKind.AsOperator: 92case BoundKind.IsOperator: 94case BoundKind.SizeOfOperator: 96case BoundKind.TypeOfOperator: 98case BoundKind.ArrayCreation: 100case BoundKind.ArrayInitialization: 102case BoundKind.CollectionExpression: 104case BoundKind.DefaultLiteral: 106case BoundKind.DefaultExpression: 108case BoundKind.BaseReference: 110case BoundKind.ThisReference: 112case BoundKind.AssignmentOperator: 114case BoundKind.CompoundAssignmentOperator: 116case BoundKind.IncrementOperator: 118case BoundKind.BadExpression: 120case BoundKind.NewT: 122case BoundKind.NoPiaObjectCreationExpression: 124case BoundKind.UnaryOperator: 126case BoundKind.BinaryOperator: 127case BoundKind.UserDefinedConditionalLogicalOperator: 129case BoundKind.TupleBinaryOperator: 131case BoundKind.ConditionalOperator: 133case BoundKind.NullCoalescingOperator: 135case BoundKind.AwaitExpression: 137case BoundKind.ArrayAccess: 139case BoundKind.ImplicitIndexerAccess: 141case BoundKind.InlineArrayAccess: 143case BoundKind.NameOfOperator: 145case BoundKind.ThrowExpression: 147case BoundKind.AddressOfOperator: 149case BoundKind.ImplicitReceiver: 151case BoundKind.ConditionalAccess: 153case BoundKind.ConditionalReceiver: 155case BoundKind.FieldEqualsValue: 157case BoundKind.PropertyEqualsValue: 159case BoundKind.ParameterEqualsValue: 161case BoundKind.Block: 163case BoundKind.ContinueStatement: 165case BoundKind.BreakStatement: 167case BoundKind.YieldBreakStatement: 169case BoundKind.GotoStatement: 171case BoundKind.NoOpStatement: 173case BoundKind.IfStatement: 175case BoundKind.WhileStatement: 177case BoundKind.DoStatement: 179case BoundKind.ForStatement: 181case BoundKind.ForEachStatement: 183case BoundKind.TryStatement: 185case BoundKind.CatchBlock: 187case BoundKind.FixedStatement: 189case BoundKind.UsingStatement: 191case BoundKind.ThrowStatement: 193case BoundKind.ReturnStatement: 195case BoundKind.YieldReturnStatement: 197case BoundKind.LockStatement: 199case BoundKind.BadStatement: 201case BoundKind.LocalDeclaration: 203case BoundKind.MultipleLocalDeclarations: 204case BoundKind.UsingLocalDeclarations: 206case BoundKind.LabelStatement: 208case BoundKind.LabeledStatement: 210case BoundKind.ExpressionStatement: 212case BoundKind.TupleLiteral: 213case BoundKind.ConvertedTupleLiteral: 215case BoundKind.InterpolatedString: 217case BoundKind.StringInsert: 219case BoundKind.LocalFunctionStatement: 221case BoundKind.AnonymousObjectCreationExpression: 223case BoundKind.ConstantPattern: 225case BoundKind.DeclarationPattern: 227case BoundKind.RecursivePattern: 229case BoundKind.ITuplePattern: 231case BoundKind.DiscardPattern: 233case BoundKind.BinaryPattern: 235case BoundKind.NegatedPattern: 237case BoundKind.RelationalPattern: 239case BoundKind.TypePattern: 241case BoundKind.SlicePattern: 243case BoundKind.ListPattern: 245case BoundKind.SwitchStatement: 247case BoundKind.SwitchLabel: 249case BoundKind.IsPatternExpression: 251case BoundKind.QueryClause: 253case BoundKind.DelegateCreationExpression: 255case BoundKind.RangeVariable: 257case BoundKind.ConstructorMethodBody: 259case BoundKind.NonConstructorMethodBody: 261case BoundKind.DiscardExpression: 263case BoundKind.NullCoalescingAssignmentOperator: 265case BoundKind.FromEndIndexExpression: 267case BoundKind.RangeExpression: 269case BoundKind.SwitchSection: 271case BoundKind.ConvertedSwitchExpression: 273case BoundKind.SwitchExpressionArm: 275case BoundKind.ObjectOrCollectionValuePlaceholder: 277case BoundKind.FunctionPointerInvocation: 279case BoundKind.UnconvertedAddressOfOperator: 281case BoundKind.InterpolatedStringArgumentPlaceholder: 283case BoundKind.InterpolatedStringHandlerPlaceholder: 285case BoundKind.Attribute: 288case BoundKind.ArgList: 289case BoundKind.ArgListOperator: 290case BoundKind.ConvertedStackAllocExpression: 291case BoundKind.FixedLocalCollectionInitializer: 292case BoundKind.GlobalStatementInitializer: 293case BoundKind.HostObjectMemberReference: 294case BoundKind.MakeRefOperator: 295case BoundKind.MethodGroup: 296case BoundKind.NamespaceExpression: 297case BoundKind.PointerElementAccess: 298case BoundKind.PointerIndirectionOperator: 299case BoundKind.PreviousSubmissionReference: 300case BoundKind.RefTypeOperator: 301case BoundKind.RefValueOperator: 302case BoundKind.Sequence: 303case BoundKind.StackAllocArrayCreation: 304case BoundKind.TypeExpression: 305case BoundKind.TypeOrValueExpression: 313case BoundKind.FixedLocalCollectionInitializer: 325case BoundKind.CollectionBuilderElementsPlaceholder: 333case BoundKind.UnconvertedInterpolatedString: 334case BoundKind.UnconvertedConditionalOperator: 335case BoundKind.UnconvertedSwitchExpression: 336case BoundKind.AnonymousPropertyDeclaration: 407case BoundKind.LocalDeclaration: 411case BoundKind.MultipleLocalDeclarations: 412case BoundKind.UsingLocalDeclarations: 531case BoundKind.LocalDeclaration: 537case BoundKind.MultipleLocalDeclarations: 538case BoundKind.UsingLocalDeclarations: 973if (receiver?.Kind == BoundKind.TypeExpression) 1129Debug.Assert(boundOperand.Kind == BoundKind.BadExpression || 1131ExpressionOpt?.Kind == BoundKind.BadExpression); 1141if (boundOperand.Kind == BoundKind.ConvertedTupleLiteral && TypeSymbol.Equals(boundOperand.Type, boundConversion.Type, TypeCompareKind.ConsiderEverything2)) 1155if (boundConversion.ExplicitCastInCode && conversion.IsIdentity && boundOperand.Kind == BoundKind.Conversion) 1161nestedOperand.Kind == BoundKind.ConvertedTupleLiteral && 1177if ((boundOperand.Kind == BoundKind.Lambda || 1178boundOperand.Kind == BoundKind.UnboundLambda || 1179boundOperand.Kind == BoundKind.MethodGroup) && 1421boundAssignmentOperator.Right?.Kind == BoundKind.ObjectInitializerExpression || 1422boundAssignmentOperator.Right?.Kind == BoundKind.CollectionInitializerExpression; 1728if (boundIndexerAccess.LengthOrCountAccess.Kind == BoundKind.ArrayLength) 2365if (part.Kind == BoundKind.StringInsert) 2624if (variable == null && boundDeclarationPattern.VariableAccess?.Kind == BoundKind.DiscardExpression) 2838Debug.Assert(boundSwitchLabel.Pattern.Kind == BoundKind.DiscardPattern); 2842boundSwitchLabel.Pattern.Kind == BoundKind.ConstantPattern &&
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)
1098case BoundKind.DefaultLiteral: 1099case BoundKind.DefaultExpression: 1101case BoundKind.ObjectCreationExpression: 1103case BoundKind.Conversion:
Symbols\Source\SourceComplexParameterSymbol.cs (1)
407if (convertedExpression.ConstantValueOpt == null && convertedExpression.Kind == BoundKind.Conversion &&