2435 references to BoundKind
Microsoft.CodeAnalysis.CSharp (2435)
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) 2842Debug.Assert(source.Kind is BoundKind.MethodGroup or BoundKind.UnboundLambda); 2849if (source.Kind == BoundKind.UnboundLambda && 2858source.Kind == BoundKind.MethodGroup && 3242if (node.Kind != BoundKind.MethodGroup) 3385if (receiverOpt.Kind == BoundKind.QueryClause) 3487while (receiverOpt.Kind == BoundKind.QueryClause) 3492return receiverOpt.Kind == BoundKind.TypeExpression; 3504case BoundKind.ThisReference: 3505case BoundKind.HostObjectMemberReference: 3506case 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; 1989case BoundKind.TypeOrValueExpression: 2015case BoundKind.QueryClause: 2053if ((object)expr != null && expr.Kind != BoundKind.TypeExpression) 2194case BoundKind.UnboundLambda: 2231case BoundKind.OutVariablePendingInference: 2232case BoundKind.DiscardExpression: 2240if (argument.Kind == BoundKind.OutVariablePendingInference) 2251else if (argument.Kind == BoundKind.DiscardExpression) 2265case BoundKind.OutDeconstructVarPendingInference: 2270case BoundKind.Parameter: 2271case BoundKind.Local: 2359var 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: 4191BoundKind exprKind = expr.Kind; 4194case BoundKind.FieldAccess: 4195case BoundKind.EventAccess: 4199if (exprKind == BoundKind.FieldAccess) 4241case BoundKind.InlineArrayAccess: 4253case BoundKind.RangeVariable: 4261case BoundKind.Parameter: 4284case BoundKind.ThisReference: 4285case BoundKind.BaseReference: 4290case BoundKind.Local: 4300case BoundKind.PointerIndirectionOperator: //Covers ->, since the receiver will be one of these. 4301case BoundKind.ConvertedStackAllocExpression: 4305case BoundKind.PointerElementAccess: 4320case BoundKind.PropertyAccess: // Never fixed 4321case BoundKind.IndexerAccess: // Never fixed 4763case BoundKind.UnboundLambda: 4764case BoundKind.Lambda: 4765case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 4896operand.Kind == BoundKind.MethodGroup || 5384case BoundKind.UnboundLambda: 5385case BoundKind.Lambda: 5386case BoundKind.MethodGroup: // New in Roslyn - see DevDiv #864740. 5395case BoundKind.TupleLiteral: 5396case BoundKind.ConvertedTupleLiteral: 5695if (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 (240)
732case BoundKind.PropertyGroup: 742case BoundKind.Local: 746case BoundKind.OutVariablePendingInference: 747case BoundKind.OutDeconstructVarPendingInference: 751case BoundKind.DiscardExpression: 755case BoundKind.PropertyAccess: 793case BoundKind.IndexerAccess: 797case BoundKind.ImplicitIndexerAccess: 815case BoundKind.UnconvertedObjectCreationExpression: 816case BoundKind.UnconvertedCollectionExpression: 817case BoundKind.UnconvertedConditionalOperator: 818case BoundKind.UnconvertedSwitchExpression: 819case BoundKind.TupleLiteral: 826case BoundKind.PointerIndirectionOperator: 834case BoundKind.PointerElementAccess: 849if (expr.Kind == BoundKind.MethodGroup && valueKind != BindValueKind.RValueOrMethodGroup) 875if ((object)otherSymbol != null && receiver?.Kind == BoundKind.TypeOrValueExpression) 915case BoundKind.TypeOrValueExpression: 916case BoundKind.QueryClause when ((BoundQueryClause)expression).Value.Kind == BoundKind.TypeOrValueExpression: 948case BoundKind.PropertyAccess: 949case BoundKind.IndexerAccess: 950case BoundKind.ImplicitIndexerAccess when ((BoundImplicitIndexerAccess)expr).IndexerOrSliceAccess.Kind == BoundKind.IndexerAccess: 953case BoundKind.EventAccess: 973case BoundKind.NamespaceExpression: 978case BoundKind.TypeExpression: 983case BoundKind.Lambda: 984case BoundKind.UnboundLambda: 989case BoundKind.UnconvertedAddressOfOperator: 994case BoundKind.MethodGroup when valueKind == BindValueKind.AddressOf: 999case BoundKind.MethodGroup: 1005case BoundKind.RangeVariable: 1021case BoundKind.Conversion: 1032case BoundKind.ArrayAccess: 1036case BoundKind.PointerIndirectionOperator: 1038case BoundKind.RefValueOperator: 1040case BoundKind.DynamicMemberAccess: 1041case BoundKind.DynamicIndexerAccess: 1042case BoundKind.DynamicObjectInitializerMember: 1054case BoundKind.PointerElementAccess: 1071case BoundKind.Parameter: 1075case BoundKind.Local: 1079case BoundKind.ThisReference: 1107case BoundKind.ImplicitReceiver: 1108case BoundKind.ObjectOrCollectionValuePlaceholder: 1112case BoundKind.Call: 1116case BoundKind.FunctionPointerInvocation: 1124case BoundKind.ImplicitIndexerAccess: 1138case BoundKind.InlineArrayAccess: 1160case BoundKind.ImplicitIndexerReceiverPlaceholder: 1166case BoundKind.DeconstructValuePlaceholder: 1169case BoundKind.ConditionalOperator: 1189case BoundKind.FieldAccess: 1195case BoundKind.AssignmentOperator: 1206case BoundKind.ValuePlaceholder: 1207case BoundKind.CollectionBuilderElementsPlaceholder: 1259case BoundKind.NamespaceExpression: 1262case BoundKind.TypeExpression: 1918return (receiver.Kind == BoundKind.ObjectOrCollectionValuePlaceholder && IsObjectInitializerMemberTarget(node)) || 2082ReportDiagnosticsIfObsolete(diagnostics, setMethod, node, receiver?.Kind == BoundKind.BaseReference); 2133ReportDiagnosticsIfObsolete(diagnostics, getMethod, node, receiver?.Kind == BoundKind.BaseReference); 2217if (receiverOpt?.Kind == BoundKind.BaseReference && member.IsAbstract) 2699if (argument.Kind == BoundKind.ArgListOperator) 3718case BoundKind.ArrayAccess: 3719case BoundKind.PointerIndirectionOperator: 3720case BoundKind.PointerElementAccess: 3724case BoundKind.RefValueOperator: 3730case BoundKind.DiscardExpression: 3734case BoundKind.DynamicMemberAccess: 3735case BoundKind.DynamicIndexerAccess: 3741case BoundKind.Parameter: 3744case BoundKind.Local: 3747case BoundKind.CapturedReceiverPlaceholder: 3751case BoundKind.ImplicitIndexerReceiverPlaceholder: 3755case BoundKind.ThisReference: 3760case BoundKind.ConditionalOperator: 3773case BoundKind.FieldAccess: 3776case BoundKind.EventAccess: 3795case BoundKind.Call: 3815case BoundKind.FunctionPointerInvocation: 3830case BoundKind.IndexerAccess: 3840case BoundKind.ImplicitIndexerAccess: 3879case BoundKind.InlineArrayAccess: 3900case BoundKind.PropertyAccess: 3908case BoundKind.AssignmentOperator: 3920case BoundKind.Conversion: 3927case BoundKind.UnaryOperator: 3934case BoundKind.BinaryOperator: 3941case BoundKind.UserDefinedConditionalLogicalOperator: 3947case BoundKind.CompoundAssignmentOperator: 3954case BoundKind.IncrementOperator: 4006case BoundKind.ArrayAccess: 4007case BoundKind.PointerIndirectionOperator: 4008case BoundKind.PointerElementAccess: 4012case BoundKind.RefValueOperator: 4023case BoundKind.DiscardExpression: 4027case BoundKind.DynamicMemberAccess: 4028case BoundKind.DynamicIndexerAccess: 4034case BoundKind.Parameter: 4038case BoundKind.Local: 4042case BoundKind.CapturedReceiverPlaceholder: 4050case BoundKind.ImplicitIndexerReceiverPlaceholder: 4054case BoundKind.ThisReference: 4059case BoundKind.ConditionalOperator: 4071case BoundKind.FieldAccess: 4075case BoundKind.EventAccess: 4085case BoundKind.Call: 4109case BoundKind.IndexerAccess: 4128case BoundKind.ImplicitIndexerAccess: 4180case BoundKind.InlineArrayAccess: 4205case BoundKind.FunctionPointerInvocation: 4222case BoundKind.PropertyAccess: 4240case BoundKind.AssignmentOperator: 4257case BoundKind.Conversion: 4269case BoundKind.UnaryOperator: 4276case BoundKind.BinaryOperator: 4283case BoundKind.UserDefinedConditionalLogicalOperator: 4289case BoundKind.CompoundAssignmentOperator: 4296case BoundKind.IncrementOperator: 4303case BoundKind.ThrowExpression: 4366case BoundKind.ThisReference: 4370case BoundKind.DefaultLiteral: 4371case BoundKind.DefaultExpression: 4372case BoundKind.Utf8String: 4376case BoundKind.Parameter: 4379case BoundKind.FromEndIndexExpression: 4384case BoundKind.TupleLiteral: 4385case BoundKind.ConvertedTupleLiteral: 4389case BoundKind.MakeRefOperator: 4390case BoundKind.RefValueOperator: 4396case BoundKind.DiscardExpression: 4399case BoundKind.DeconstructValuePlaceholder: 4400case BoundKind.InterpolatedStringArgumentPlaceholder: 4401case BoundKind.AwaitableValuePlaceholder: 4402case BoundKind.ValuePlaceholder: 4403case BoundKind.CollectionBuilderElementsPlaceholder: 4404case BoundKind.ObjectOrCollectionValuePlaceholder: 4407case BoundKind.Local: 4410case BoundKind.CapturedReceiverPlaceholder: 4415case BoundKind.ImplicitIndexerReceiverPlaceholder: 4419case BoundKind.StackAllocArrayCreation: 4420case BoundKind.ConvertedStackAllocExpression: 4423case BoundKind.ConditionalOperator: 4438case BoundKind.NullCoalescingOperator: 4444case BoundKind.FieldAccess: 4457case BoundKind.Call: 4471case BoundKind.FunctionPointerInvocation: 4479case BoundKind.IndexerAccess: 4489case BoundKind.ImplicitIndexerAccess: 4521case BoundKind.InlineArrayAccess: 4534case BoundKind.PropertyAccess: 4542case BoundKind.ObjectCreationExpression: 4560case BoundKind.NewT: 4575case BoundKind.WithExpression: 4581case BoundKind.UnaryOperator: 4592case BoundKind.Conversion: 4629case BoundKind.AssignmentOperator: 4633case BoundKind.NullCoalescingAssignmentOperator: 4638case BoundKind.IncrementOperator: 4659case BoundKind.CompoundAssignmentOperator: 4681case BoundKind.BinaryOperator: 4694case BoundKind.RangeExpression: 4700case BoundKind.UserDefinedConditionalLogicalOperator: 4707case BoundKind.QueryClause: 4710case BoundKind.RangeVariable: 4713case BoundKind.ObjectInitializerExpression: 4717case BoundKind.CollectionInitializerExpression: 4721case BoundKind.ObjectInitializerMember: 4727case BoundKind.ImplicitReceiver: 4730case BoundKind.InterpolatedStringHandlerPlaceholder: 4735case BoundKind.DisposableValuePlaceholder: 4740case BoundKind.PointerElementAccess: 4741case BoundKind.PointerIndirectionOperator: 4745case BoundKind.AsOperator: 4746case BoundKind.AwaitExpression: 4747case BoundKind.ConditionalAccess: 4748case BoundKind.ConditionalReceiver: 4749case BoundKind.ArrayAccess: 4753case BoundKind.ArgList: 4757case BoundKind.ConvertedSwitchExpression: 4758case BoundKind.UnconvertedSwitchExpression: 4913if (expr.Kind == BoundKind.AssignmentOperator) 5067case BoundKind.ThisReference: 5072case BoundKind.DefaultLiteral: 5073case BoundKind.DefaultExpression: 5074case BoundKind.Utf8String: 5078case BoundKind.Parameter: 5081case BoundKind.TupleLiteral: 5082case BoundKind.ConvertedTupleLiteral: 5086case BoundKind.MakeRefOperator: 5087case BoundKind.RefValueOperator: 5091case BoundKind.DiscardExpression: 5095case BoundKind.DeconstructValuePlaceholder: 5096case BoundKind.AwaitableValuePlaceholder: 5097case BoundKind.InterpolatedStringArgumentPlaceholder: 5098case BoundKind.ValuePlaceholder: 5099case BoundKind.CollectionBuilderElementsPlaceholder: 5100case BoundKind.ObjectOrCollectionValuePlaceholder: 5108case BoundKind.Local: 5117case BoundKind.CapturedReceiverPlaceholder: 5122case BoundKind.StackAllocArrayCreation: 5123case BoundKind.ConvertedStackAllocExpression: 5131case BoundKind.UnconvertedConditionalOperator: 5139case BoundKind.ConditionalOperator: 5155case BoundKind.NullCoalescingOperator: 5160case BoundKind.FieldAccess: 5173case BoundKind.ImplicitIndexerReceiverPlaceholder: 5177case BoundKind.Call: 5196case BoundKind.FunctionPointerInvocation: 5208case BoundKind.IndexerAccess: 5222case BoundKind.ImplicitIndexerAccess: 5264case BoundKind.InlineArrayAccess: 5281case BoundKind.PropertyAccess: 5293case BoundKind.ObjectCreationExpression: 5321case BoundKind.NewT: 5341case BoundKind.WithExpression: 5352case BoundKind.UnaryOperator: 5367case BoundKind.FromEndIndexExpression: 5371case BoundKind.Conversion: 5422case BoundKind.AssignmentOperator: 5427case BoundKind.NullCoalescingAssignmentOperator: 5432case BoundKind.IncrementOperator: 5457case BoundKind.CompoundAssignmentOperator: 5481case BoundKind.BinaryOperator: 5503case BoundKind.RangeExpression: 5513case BoundKind.UserDefinedConditionalLogicalOperator: 5524case BoundKind.QueryClause: 5528case BoundKind.RangeVariable: 5532case BoundKind.ObjectInitializerExpression: 5536case BoundKind.CollectionInitializerExpression: 5540case BoundKind.PointerElementAccess: 5544case BoundKind.PointerIndirectionOperator: 5548case BoundKind.AsOperator: 5549case BoundKind.AwaitExpression: 5550case BoundKind.ConditionalAccess: 5551case BoundKind.ConditionalReceiver: 5552case BoundKind.ArrayAccess: 5556case BoundKind.UnconvertedSwitchExpression: 5557case BoundKind.ConvertedSwitchExpression:
Binder\DecisionDagBuilder_ListPatterns.cs (1)
21list.Subpatterns.Count(p => p.Kind == BoundKind.SlicePattern) == (list.HasSlice ? 1 : 0) &&
Binder\DecisionDagBuilder.cs (3)
4825if (RemainingTests[0] is One { Test: { Kind: BoundKind.DagNonNullTest } planA }) 4856case One { Test: { Kind: BoundKind.DagTypeTest } planB1 }: 4863case 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)
608if (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 (15)
61if ((Kind != BoundKind.Local && Kind != BoundKind.Parameter) || this.WasConverted) 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: 97case BoundKind.Local when !WasConverted: 98case BoundKind.Parameter when !WasConverted: 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 (3)
71case BoundKind.FieldAccess: 74case BoundKind.Local: 213Debug.Assert(method is ErrorMethodSymbol || arguments[i].Kind == BoundKind.ArgListOperator);
BoundTree\Expression.cs (2)
170(this.Kind == BoundKind.StatementList || this.Kind == BoundKind.Scope) ? StaticCast<BoundNode?>.From(this.Statements) : ImmutableArray<BoundNode?>.Empty;
CodeGen\CodeGenerator_HasHome.cs (18)
53case BoundKind.ArrayAccess: 63case BoundKind.PointerIndirectionOperator: 64case BoundKind.RefValueOperator: 67case BoundKind.ThisReference: 82case BoundKind.ThrowExpression: 86case BoundKind.Parameter: 90case BoundKind.Local: 97case BoundKind.Call: 102case BoundKind.Dup: 108case BoundKind.FieldAccess: 111case BoundKind.Sequence: 114case BoundKind.AssignmentOperator: 124case BoundKind.RefArrayAccess: 128case BoundKind.ComplexConditionalReceiver: 141goto case BoundKind.ConditionalReceiver; 143case BoundKind.ConditionalReceiver: 148case BoundKind.ConditionalOperator: 261fieldAccess.ReceiverOpt.Kind == BoundKind.ThisReference;
CodeGen\EmitAddress.cs (26)
28case BoundKind.RefValueOperator: 32case BoundKind.Local: 35case BoundKind.Dup: 39case BoundKind.ConditionalReceiver: 45case BoundKind.ComplexConditionalReceiver: 49case BoundKind.Parameter: 52case BoundKind.FieldAccess: 55case BoundKind.ArrayAccess: 64case BoundKind.ThisReference: 85case BoundKind.PreviousSubmissionReference: 89case BoundKind.BaseReference: 93case BoundKind.PassByCopy: 96case BoundKind.Sequence: 99case BoundKind.PointerIndirectionOperator: 106case BoundKind.PseudoVariable: 110case BoundKind.Call: 121case BoundKind.FunctionPointerInvocation: 133case BoundKind.DefaultExpression: 143case BoundKind.ConditionalOperator: 152case BoundKind.AssignmentOperator: 164case BoundKind.RefArrayAccess: 170case BoundKind.ThrowExpression: 361case BoundKind.Local: 370case BoundKind.Sequence: 373case BoundKind.FieldAccess: 528if (receiver.Kind != BoundKind.ConditionalReceiver)
CodeGen\EmitArrayInitializer.cs (4)
347if (inits[0].Kind == BoundKind.ArrayInitialization) 369Debug.Assert(inits.All((init) => init.Kind != BoundKind.ArrayInitialization) || 370inits.All((init) => init.Kind == BoundKind.ArrayInitialization), 373return inits.Length != 0 && inits[0].Kind == BoundKind.ArrayInitialization;
CodeGen\EmitExpression.cs (145)
98case BoundKind.AssignmentOperator: 102case BoundKind.Call: 106case BoundKind.ObjectCreationExpression: 110case BoundKind.DelegateCreationExpression: 114case BoundKind.ArrayCreation: 118case BoundKind.ConvertedStackAllocExpression: 122case BoundKind.ReadOnlySpanFromArray: 126case BoundKind.Conversion: 130case BoundKind.Local: 134case BoundKind.Dup: 138case BoundKind.PassByCopy: 142case BoundKind.Parameter: 146case BoundKind.FieldAccess: 150case BoundKind.ArrayAccess: 154case BoundKind.RefArrayAccess: 158case BoundKind.ArrayLength: 162case BoundKind.ThisReference: 169case BoundKind.PreviousSubmissionReference: 173case BoundKind.BaseReference: 186case BoundKind.Sequence: 190case BoundKind.SequencePointExpression: 194case BoundKind.UnaryOperator: 198case BoundKind.BinaryOperator: 202case BoundKind.NullCoalescingOperator: 206case BoundKind.IsOperator: 210case BoundKind.AsOperator: 214case BoundKind.DefaultExpression: 218case BoundKind.TypeOfOperator: 225case BoundKind.SizeOfOperator: 232case BoundKind.ModuleVersionId: 237case BoundKind.ModuleVersionIdString: 242case BoundKind.ThrowIfModuleCancellationRequested: 247case BoundKind.ModuleCancellationTokenExpression: 252case BoundKind.InstrumentationPayloadRoot: 257case BoundKind.MethodDefIndex: 262case BoundKind.MaximumMethodDefIndex: 267case BoundKind.SourceDocumentIndex: 272case BoundKind.LocalId: 277case BoundKind.ParameterId: 282case BoundKind.MethodInfo: 289case BoundKind.FieldInfo: 296case BoundKind.ConditionalOperator: 300case BoundKind.AddressOfOperator: 304case BoundKind.PointerIndirectionOperator: 308case BoundKind.ArgList: 312case BoundKind.ArgListOperator: 317case BoundKind.RefTypeOperator: 321case BoundKind.MakeRefOperator: 325case BoundKind.RefValueOperator: 329case BoundKind.LoweredConditionalAccess: 333case BoundKind.ConditionalReceiver: 337case BoundKind.ComplexConditionalReceiver: 341case BoundKind.PseudoVariable: 345case BoundKind.ThrowExpression: 349case BoundKind.FunctionPointerInvocation: 353case BoundKind.FunctionPointerLoad: 359Debug.Assert(expression.Kind != BoundKind.BadExpression); 441(receiver.Kind == BoundKind.Local && IsStackLocal(((BoundLocal)receiver).LocalSymbol)) || 867Debug.Assert(sequence.Value.Kind != BoundKind.TypeExpression || !used); 868if (sequence.Value.Kind != BoundKind.TypeExpression) 1010Debug.Assert(arguments[i].Kind == BoundKind.ArgListOperator); 1242else if (receiver.Kind == BoundKind.Conversion) 1253else if (receiver.Kind == BoundKind.FieldAccess) 1284if (receiver.Kind == BoundKind.Conversion && ((BoundConversion)receiver).ConversionKind == ConversionKind.Unboxing) 1297case BoundKind.Parameter: 1301case BoundKind.Local: 1305case BoundKind.Sequence: 1308case BoundKind.FieldAccess: 1541Debug.Assert(receiver.Kind != BoundKind.BaseReference, "base should always use call"); 1552case BoundKind.ArrayCreation: 1555case BoundKind.ObjectCreationExpression: 1560case BoundKind.Conversion: 1580case BoundKind.ThisReference: 1587case BoundKind.FieldAccess: 1591case BoundKind.Local: 1595case BoundKind.DelegateCreationExpression: 1598case BoundKind.Sequence: 1602case BoundKind.AssignmentOperator: 1606case BoundKind.TypeOfOperator: 1609case BoundKind.ConditionalReceiver: 1625case BoundKind.ThisReference: 1628case BoundKind.Sequence: 1671Debug.Assert(receiver.Kind == BoundKind.ThisReference); 2183case BoundKind.TypeExpression: 2184case BoundKind.Parameter: 2185case BoundKind.Local: 2186case BoundKind.ThisReference: 2188case BoundKind.FieldAccess: 2199case BoundKind.PassByCopy: 2202case BoundKind.BinaryOperator: 2215case BoundKind.Conversion: 2265case BoundKind.Local: 2268case BoundKind.Parameter: 2271case BoundKind.Call: 2274case BoundKind.FunctionPointerInvocation: 2277case BoundKind.Dup: 2280case BoundKind.Sequence: 2677if (objCreation.Arguments.Length > 0 && objCreation.Arguments[0].Kind == BoundKind.ConvertedStackAllocExpression) 2711if (left.Kind == BoundKind.ArrayAccess && left.Type.TypeKind == TypeKind.TypeParameter && !left.Type.IsValueType) 2716if (left.Kind == BoundKind.FieldAccess) 2820case BoundKind.Parameter: 2823case BoundKind.Local: 2839case BoundKind.RefValueOperator: 2843case BoundKind.FieldAccess: 2861case BoundKind.Parameter: 2873case BoundKind.Local: 2925case BoundKind.ArrayAccess: 2934case BoundKind.ThisReference: 2945case BoundKind.Dup: 2956case BoundKind.ConditionalOperator: 2968case BoundKind.PointerIndirectionOperator: 2978case BoundKind.Sequence: 2991case BoundKind.Call: 3002case BoundKind.FunctionPointerInvocation: 3013case BoundKind.PropertyAccess: 3014case BoundKind.IndexerAccess: 3016case BoundKind.PreviousSubmissionReference: 3020case BoundKind.PseudoVariable: 3025case BoundKind.ModuleVersionId: 3026case BoundKind.InstrumentationPayloadRoot: 3029case BoundKind.AssignmentOperator: 3061Debug.Assert(lhs.Kind != BoundKind.Parameter || exprTempsAfter <= exprTempsBefore); 3063if (lhs.Kind == BoundKind.Local && ((BoundLocal)lhs).LocalSymbol.SynthesizedKind.IsLongLived()) 3133case BoundKind.FieldAccess: 3137case BoundKind.Local: 3164case BoundKind.ArrayAccess: 3170case BoundKind.ThisReference: 3174case BoundKind.Parameter: 3178case BoundKind.Dup: 3183case BoundKind.ConditionalOperator: 3188case BoundKind.RefValueOperator: 3189case BoundKind.PointerIndirectionOperator: 3190case BoundKind.PseudoVariable: 3194case BoundKind.Sequence: 3201case BoundKind.Call: 3206case BoundKind.FunctionPointerInvocation: 3211case BoundKind.ModuleVersionId: 3215case BoundKind.InstrumentationPayloadRoot: 3219case BoundKind.AssignmentOperator: 3228case BoundKind.PreviousSubmissionReference: 3986case BoundKind.Conversion: 4000case BoundKind.AssignmentOperator: 4004case BoundKind.Sequence: 4008case BoundKind.Local: 4017case 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) 1949top.Item1.Kind == BoundKind.Local && 2131if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2147if (child.Kind != BoundKind.BinaryOperator || child.ConstantValueOpt != null) 2360if (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 (5)
93if (existing[i].Kind == BoundKind.TypeExpression && nodesToAdd[i].Kind == BoundKind.TypeOrValueExpression) 101else if (existing[i].Kind == BoundKind.TypeOrValueExpression && nodesToAdd[i].Kind == BoundKind.TypeExpression) 169if (node.Kind == BoundKind.UnboundLambda)
Compiler\MethodBodySynthesizer.Lowered.cs (1)
333if (body.Kind != BoundKind.Block) body = F.Block(body);
Compiler\MethodCompiler.cs (5)
623(init.Kind == BoundKind.FieldEqualsValue) && !((BoundFieldEqualsValue)init).Field.IsMetadataConstant)); 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: 1870if (pend.Branch.Kind != BoundKind.YieldReturnStatement) 2132if (expr.Kind != BoundKind.PropertyAccess) 2165var refKind = node.Left.Kind == BoundKind.BadExpression 2246receiverOpt.Kind != BoundKind.TypeExpression && 2427var childKind = child.Kind; 2429if (childKind == BoundKind.BinaryOperator) 2442else if (childKind == BoundKind.UserDefinedConditionalLogicalOperator) 2469case BoundKind.BinaryOperator: 2473case BoundKind.UserDefinedConditionalLogicalOperator: 2489case BoundKind.BinaryOperator: 2494case BoundKind.UserDefinedConditionalLogicalOperator: 2506Debug.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 (14)
120case BoundKind.ListPattern: 121case BoundKind.RecursivePattern: 122case BoundKind.DeclarationPattern: 127case BoundKind.FieldAccess: 139case BoundKind.LocalDeclaration: 144case BoundKind.ThisReference: 149case BoundKind.Local: 154case BoundKind.Parameter: 159case BoundKind.CatchBlock: 165case BoundKind.RangeVariable: 170case BoundKind.EventAccess: 185case BoundKind.LocalFunctionStatement: 241case BoundKind.Parameter: return ((BoundParameter)node).ParameterSymbol; 242case BoundKind.ThisReference: return this.MethodThisParameter;
FlowAnalysis\DefiniteAssignment.cs (81)
242if (node.Kind == BoundKind.Attribute) 737Debug.Assert(fieldOrEventAccess.Kind == BoundKind.FieldAccess || fieldOrEventAccess.Kind == BoundKind.EventAccess); 743case BoundKind.FieldAccess: 759case BoundKind.EventAccess: 776case BoundKind.ThisReference: 780case BoundKind.Local: 784case BoundKind.Parameter: 788case BoundKind.InlineArrayAccess: 873if (value is { ConstantValueOpt: not null, Kind: not BoundKind.InterpolatedString }) return false; 877case BoundKind.Conversion: 892case BoundKind.DefaultLiteral: 893case BoundKind.DefaultExpression: 895case BoundKind.ObjectCreationExpression: 898case BoundKind.TupleLiteral: 899case BoundKind.ConvertedTupleLiteral: 900case BoundKind.Utf8String: 916case BoundKind.FieldAccess: 931if (n.Kind == BoundKind.Local) 943case BoundKind.EventAccess: 964case BoundKind.ThisReference: 968case BoundKind.Local: 972case BoundKind.Parameter: 976case BoundKind.RangeVariable: 980case BoundKind.InlineArrayAccess: 1025case BoundKind.FieldAccess: 1041case BoundKind.EventAccess: 1053case BoundKind.PropertyAccess: 1077receiver.Kind != BoundKind.TypeExpression && 1094receiverOpt.Kind != BoundKind.TypeExpression && 1337case BoundKind.ThisReference: 1350case BoundKind.Local: 1356case BoundKind.FieldAccess: 1368case BoundKind.EventAccess: 1380case BoundKind.InlineArrayAccess: 1386case BoundKind.PropertyAccess: 1408case BoundKind.Parameter: 1415case BoundKind.RangeVariable: 1440case BoundKind.FieldAccess: 1449case BoundKind.Local: 1453case BoundKind.RangeVariable: 1455case BoundKind.Parameter: 1457case BoundKind.ThisReference: 1459case BoundKind.BaseReference: 1492case BoundKind.ListPattern: 1493case BoundKind.RecursivePattern: 1494case BoundKind.DeclarationPattern: 1510case BoundKind.LocalDeclaration: 1521case BoundKind.Local: 1539case BoundKind.InlineArrayAccess: 1569case BoundKind.Parameter: 1586case BoundKind.ObjectInitializerMember: 1598case BoundKind.ThisReference: 1599case BoundKind.FieldAccess: 1600case BoundKind.EventAccess: 1601case BoundKind.PropertyAccess: 1610case BoundKind.RangeVariable: 1614case BoundKind.BadExpression: 1625case BoundKind.TupleLiteral: 1626case BoundKind.ConvertedTupleLiteral: 1958case BoundKind.DeclarationPattern: 1965case BoundKind.DiscardPattern: 1966case BoundKind.TypePattern: 1968case BoundKind.SlicePattern: 1977case BoundKind.ConstantPattern: 1983case BoundKind.RecursivePattern: 2017case BoundKind.ITuplePattern: 2026case BoundKind.ListPattern: 2037case BoundKind.RelationalPattern: 2043case BoundKind.NegatedPattern: 2049case BoundKind.BinaryPattern: 2158if (stmt.Kind != BoundKind.LocalFunctionStatement) 2438if (pending.Branch.Kind == BoundKind.ReturnStatement) 2512if (initializer.Kind == BoundKind.AddressOfOperator) 2585case BoundKind.Local: 2588case BoundKind.Parameter: 2591case BoundKind.FieldAccess: 2599case BoundKind.EventAccess: 2607case BoundKind.ThisReference: 2608case BoundKind.BaseReference: 2612case BoundKind.InlineArrayAccess:
FlowAnalysis\ExitPointsWalker.cs (9)
127case BoundKind.GotoStatement: 130case BoundKind.BreakStatement: 133case BoundKind.ContinueStatement: 136case BoundKind.YieldBreakStatement: 137case BoundKind.ReturnStatement: 140case BoundKind.YieldReturnStatement: 141case BoundKind.AwaitExpression: 142case BoundKind.UsingStatement: 143case BoundKind.ForEachStatement when ((BoundForEachStatement)pending.Branch).EnumeratorInfoOpt is { MoveNextAwaitableInfo: not null }:
FlowAnalysis\LocalDataFlowPass.cs (9)
215case BoundKind.ThisReference: 216case BoundKind.BaseReference: 218case BoundKind.Local: 220case BoundKind.Parameter: 222case BoundKind.RangeVariable: 224case BoundKind.FieldAccess: 225case BoundKind.EventAccess: 226case BoundKind.PropertyAccess: 233case BoundKind.AssignmentOperator:
FlowAnalysis\NullableWalker.cs (71)
294private static readonly ImmutableArray<BoundKind> s_skippedExpressions = ImmutableArray.Create(BoundKind.ArrayInitialization, 295BoundKind.ObjectInitializerExpression, 296BoundKind.CollectionInitializerExpression, 297BoundKind.DynamicCollectionElementInitializer); 392|| expr.Kind == BoundKind.ExpressionWithNullability 462private bool IsAnalyzingAttribute => methodMainNode.Kind == BoundKind.Attribute; 592Debug.Assert(expression != null || placeholder.Kind == BoundKind.InterpolatedStringArgumentPlaceholder); 613case BoundKind.DeconstructValuePlaceholder: 614case BoundKind.InterpolatedStringHandlerPlaceholder: 615case BoundKind.InterpolatedStringArgumentPlaceholder: 616case BoundKind.ObjectOrCollectionValuePlaceholder: 619case BoundKind.ImplicitIndexerValuePlaceholder: 2093case BoundKind.FieldAccess: 2109case BoundKind.EventAccess: 2122case BoundKind.PropertyAccess: 2140receiver.Kind != BoundKind.TypeExpression && 2168case BoundKind.ThisReference: 2169case BoundKind.BaseReference: 2175case BoundKind.Conversion: 2218case BoundKind.DefaultLiteral: 2219case BoundKind.DefaultExpression: 2220case BoundKind.ObjectCreationExpression: 2221case BoundKind.DynamicObjectCreationExpression: 2222case BoundKind.AnonymousObjectCreationExpression: 2223case BoundKind.NewT: 2224case BoundKind.TupleLiteral: 2225case BoundKind.ConvertedTupleLiteral: 2227case BoundKind.ConditionalAccess: 2229case BoundKind.ConditionalReceiver: 2637case BoundKind.Conversion: 2644case BoundKind.DefaultLiteral: 2645case BoundKind.DefaultExpression: 3170if (!expr.IsSuppressed && RemoveConversion(expr, includeExplicitConversions: false).expression.Kind != BoundKind.ThrowExpression) 4391Debug.Assert(node.Kind is BoundKind.ObjectCreationExpression or BoundKind.DynamicObjectCreationExpression or BoundKind.NewT or BoundKind.NoPiaObjectCreationExpression); 4529case BoundKind.AssignmentOperator: 4544case BoundKind.CollectionElementInitializer: 4574case BoundKind.ObjectInitializerMember: 5296if (child.Kind == BoundKind.ArrayInitialization) 5919case BoundKind.Conversion: 5923case BoundKind.AsOperator: 5926case BoundKind.ConditionalAccess: 6113while (possiblyConversion.Kind == BoundKind.Conversion) 8150return (argument.Kind == BoundKind.Lambda); 8821/// other than <see cref="BoundKind.ExpressionWithNullability"/> which is an expression 8828case BoundKind.DefaultLiteral: 8829case BoundKind.DefaultExpression: 8830case BoundKind.Literal: 8832case BoundKind.ExpressionWithNullability: 8834case BoundKind.MethodGroup: 8835case BoundKind.UnboundLambda: 8836case BoundKind.UnconvertedObjectCreationExpression: 8837case BoundKind.ConvertedTupleLiteral: 8838case BoundKind.UnconvertedCollectionExpression: 8878if (argument.Kind == BoundKind.Lambda) 8887if (argument.Kind == BoundKind.CollectionExpression) 9023if (expr.Kind != BoundKind.Conversion) 9108case BoundKind.InterpolatedString: 10042if (operandType.Type?.IsTupleType == true || conversionOperand.Kind == BoundKind.TupleLiteral) 11251if (left.Kind == BoundKind.EventAccess && ((BoundEventAccess)left).EventSymbol.IsWindowsRuntimeEvent) 11669case BoundKind.TupleLiteral: 11670case BoundKind.ConvertedTupleLiteral: 11687case BoundKind.TupleLiteral: 11688case BoundKind.ConvertedTupleLiteral: 11690case BoundKind.Conversion: 12050if (initializer.Kind == BoundKind.AddressOfOperator) 12056if (node.Expression.Kind == BoundKind.AddressOfOperator) 12410if (node.Expression.Kind != BoundKind.Conversion)
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
382node.Subpatterns.Any(static (BoundPattern p) => p.Kind != BoundKind.SlicePattern))
FlowAnalysis\NullableWalker.SnapshotManager.cs (1)
106if (node.Kind == BoundKind.TypeExpression || node.WasCompilerGenerated)
FlowAnalysis\ReadWriteWalker.cs (14)
147if (!IsInside && node.Span.Contains(RegionSpan) && (expr.Kind == BoundKind.FieldAccess)) 190case BoundKind.Local: 196case BoundKind.ThisReference: 202case BoundKind.BaseReference: 208case BoundKind.Parameter: 214case BoundKind.RangeVariable: 220case BoundKind.FieldAccess: 226case BoundKind.InlineArrayAccess: 240case BoundKind.RangeVariable: 244case BoundKind.QueryClause: 255case BoundKind.FieldAccess: 265case BoundKind.InlineArrayAccess: 306case BoundKind.Parameter: 308case BoundKind.PropertyAccess:
FlowAnalysis\RegionAnalysisContext.cs (2)
51case BoundKind.NamespaceExpression: 52case BoundKind.TypeExpression:
Generated\BoundNodes.xml.Generated.cs (609)
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) 934: base(BoundKind.Dup, syntax, type) 959: base(BoundKind.PassByCopy, syntax, type, hasErrors || expression.HasErrors()) 987: base(BoundKind.BadExpression, syntax, type, hasErrors || childBoundNodes.HasErrors()) 1024: base(BoundKind.BadStatement, syntax, hasErrors || childBoundNodes.HasErrors()) 1052: base(BoundKind.ExtractedFinallyBlock, syntax, hasErrors || finallyBlock.HasErrors()) 1080: base(BoundKind.TypeExpression, syntax, type, hasErrors || boundContainingTypeOpt.HasErrors() || boundDimensionsOpt.HasErrors()) 1115: base(BoundKind.TypeOrValueExpression, syntax, type, hasErrors) 1131: base(BoundKind.TypeOrValueExpression, syntax, type) 1164: base(BoundKind.NamespaceExpression, syntax, null, hasErrors) 1174: base(BoundKind.NamespaceExpression, syntax, null) 1205: base(BoundKind.UnaryOperator, syntax, type, hasErrors || operand.HasErrors()) 1247: base(BoundKind.IncrementOperator, syntax, type, hasErrors || operand.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors() || resultPlaceholder.HasErrors() || resultConversion.HasErrors()) 1295: base(BoundKind.AddressOfOperator, syntax, type, hasErrors || operand.HasErrors()) 1327: base(BoundKind.UnconvertedAddressOfOperator, syntax, null, hasErrors || operand.HasErrors()) 1356: base(BoundKind.FunctionPointerLoad, syntax, type, hasErrors) 1367: base(BoundKind.FunctionPointerLoad, syntax, type) 1399: base(BoundKind.PointerIndirectionOperator, syntax, type, hasErrors || operand.HasErrors()) 1431: base(BoundKind.PointerElementAccess, syntax, type, hasErrors || expression.HasErrors() || index.HasErrors()) 1468: base(BoundKind.FunctionPointerInvocation, syntax, type, hasErrors || invokedExpression.HasErrors() || arguments.HasErrors()) 1505: base(BoundKind.RefTypeOperator, syntax, type, hasErrors || operand.HasErrors()) 1537: base(BoundKind.MakeRefOperator, syntax, type, hasErrors || operand.HasErrors()) 1567: base(BoundKind.RefValueOperator, syntax, type, hasErrors || operand.HasErrors()) 1599: base(BoundKind.FromEndIndexExpression, syntax, type, hasErrors || operand.HasErrors()) 1631: base(BoundKind.RangeExpression, syntax, type, hasErrors || leftOperandOpt.HasErrors() || rightOperandOpt.HasErrors()) 1663protected BoundBinaryOperatorBase(BoundKind kind, SyntaxNode syntax, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false) 1683: base(BoundKind.BinaryOperator, syntax, left, right, type, hasErrors || left.HasErrors() || right.HasErrors()) 1721: base(BoundKind.TupleBinaryOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1759: base(BoundKind.UserDefinedConditionalLogicalOperator, syntax, left, right, type, hasErrors || trueFalseOperandPlaceholder.HasErrors() || trueFalseOperandConversion.HasErrors() || left.HasErrors() || right.HasErrors()) 1812: base(BoundKind.CompoundAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors() || finalPlaceholder.HasErrors() || finalConversion.HasErrors()) 1859: base(BoundKind.AssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1893: base(BoundKind.DeconstructionAssignmentOperator, syntax, type, hasErrors || left.HasErrors() || right.HasErrors()) 1928: base(BoundKind.NullCoalescingOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors() || leftPlaceholder.HasErrors() || leftConversion.HasErrors()) 1969: base(BoundKind.NullCoalescingAssignmentOperator, syntax, type, hasErrors || leftOperand.HasErrors() || rightOperand.HasErrors()) 2000: base(BoundKind.UnconvertedConditionalOperator, syntax, null, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 2039: base(BoundKind.ConditionalOperator, syntax, type, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternative.HasErrors()) 2083: base(BoundKind.ArrayAccess, syntax, type, hasErrors || expression.HasErrors() || indices.HasErrors()) 2116: base(BoundKind.RefArrayAccess, syntax, type, hasErrors || arrayAccess.HasErrors()) 2146: base(BoundKind.ArrayLength, syntax, type, hasErrors || expression.HasErrors()) 2176: base(BoundKind.AwaitableInfo, syntax, hasErrors || awaitableInstancePlaceholder.HasErrors() || getAwaiter.HasErrors() || runtimeAsyncAwaitCall.HasErrors() || runtimeAsyncAwaitCallPlaceholder.HasErrors()) 2217: base(BoundKind.AwaitExpression, syntax, type, hasErrors || expression.HasErrors() || awaitableInfo.HasErrors()) 2251protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type, bool hasErrors) 2260protected BoundTypeOf(BoundKind kind, SyntaxNode syntax, MethodSymbol? getTypeFromHandle, TypeSymbol type) 2276: base(BoundKind.TypeOfOperator, syntax, getTypeFromHandle, type, hasErrors || sourceType.HasErrors()) 2305: base(BoundKind.BlockInstrumentation, syntax, hasErrors || prologue.HasErrors() || epilogue.HasErrors()) 2337: base(BoundKind.MethodDefIndex, syntax, type, hasErrors) 2351: base(BoundKind.MethodDefIndex, syntax, type) 2381: base(BoundKind.LocalId, syntax, type, hasErrors) 2392: base(BoundKind.LocalId, syntax, type) 2424: base(BoundKind.ParameterId, syntax, type, hasErrors) 2435: base(BoundKind.ParameterId, syntax, type) 2467: base(BoundKind.StateMachineInstanceId, syntax, type, hasErrors) 2475: base(BoundKind.StateMachineInstanceId, syntax, type) 2502: base(BoundKind.MaximumMethodDefIndex, syntax, type, hasErrors) 2510: base(BoundKind.MaximumMethodDefIndex, syntax, type) 2537: base(BoundKind.InstrumentationPayloadRoot, syntax, type, hasErrors) 2546: base(BoundKind.InstrumentationPayloadRoot, syntax, type) 2575: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type, hasErrors) 2583: base(BoundKind.ThrowIfModuleCancellationRequested, syntax, type) 2610: base(BoundKind.ModuleCancellationTokenExpression, syntax, type, hasErrors) 2618: base(BoundKind.ModuleCancellationTokenExpression, syntax, type) 2645: base(BoundKind.ModuleVersionId, syntax, type, hasErrors) 2653: base(BoundKind.ModuleVersionId, syntax, type) 2680: base(BoundKind.ModuleVersionIdString, syntax, type, hasErrors) 2688: base(BoundKind.ModuleVersionIdString, syntax, type) 2715: base(BoundKind.SourceDocumentIndex, syntax, type, hasErrors) 2725: base(BoundKind.SourceDocumentIndex, syntax, type) 2755: base(BoundKind.MethodInfo, syntax, type, hasErrors) 2766: base(BoundKind.MethodInfo, syntax, type) 2798: base(BoundKind.FieldInfo, syntax, type, hasErrors) 2809: base(BoundKind.FieldInfo, syntax, type) 2841: base(BoundKind.DefaultLiteral, syntax, null, hasErrors) 2846: base(BoundKind.DefaultLiteral, syntax, null) 2864: base(BoundKind.DefaultExpression, syntax, type, hasErrors || targetType.HasErrors()) 2895: base(BoundKind.IsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors()) 2930: base(BoundKind.AsOperator, syntax, type, hasErrors || operand.HasErrors() || targetType.HasErrors() || operandPlaceholder.HasErrors() || operandConversion.HasErrors()) 2967: base(BoundKind.SizeOfOperator, syntax, type, hasErrors || sourceType.HasErrors()) 2999: base(BoundKind.Conversion, syntax, type, hasErrors || operand.HasErrors()) 3047: base(BoundKind.ReadOnlySpanFromArray, syntax, type, hasErrors || operand.HasErrors()) 3080: base(BoundKind.ArgList, syntax, type, hasErrors) 3088: base(BoundKind.ArgList, syntax, type) 3115: base(BoundKind.ArgListOperator, syntax, type, hasErrors || arguments.HasErrors()) 3146: base(BoundKind.FixedLocalCollectionInitializer, syntax, type, hasErrors || elementPointerPlaceholder.HasErrors() || elementPointerConversion.HasErrors() || expression.HasErrors()) 3184protected BoundStatement(BoundKind kind, SyntaxNode syntax, bool hasErrors) 3189protected BoundStatement(BoundKind kind, SyntaxNode syntax) 3199: base(BoundKind.SequencePoint, syntax, hasErrors || statementOpt.HasErrors()) 3224: base(BoundKind.SequencePointWithSpan, syntax, hasErrors || statementOpt.HasErrors()) 3251: base(BoundKind.SavePreviousSequencePoint, syntax, hasErrors) 3260: base(BoundKind.SavePreviousSequencePoint, syntax) 3288: base(BoundKind.RestorePreviousSequencePoint, syntax, hasErrors) 3297: base(BoundKind.RestorePreviousSequencePoint, syntax) 3325: base(BoundKind.StepThroughSequencePoint, syntax, hasErrors) 3331: base(BoundKind.StepThroughSequencePoint, syntax) 3356: base(BoundKind.Block, syntax, statements, hasErrors || instrumentation.HasErrors() || statements.HasErrors()) 3392: base(BoundKind.Scope, syntax, statements, hasErrors || statements.HasErrors()) 3421: base(BoundKind.StateMachineScope, syntax, hasErrors || statement.HasErrors()) 3452: base(BoundKind.LocalDeclaration, syntax, hasErrors || declaredTypeOpt.HasErrors() || initializerOpt.HasErrors() || argumentsOpt.HasErrors()) 3487protected BoundMultipleLocalDeclarationsBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false) 3502: base(BoundKind.MultipleLocalDeclarations, syntax, localDeclarations, hasErrors || localDeclarations.HasErrors()) 3528: base(BoundKind.UsingLocalDeclarations, syntax, localDeclarations, hasErrors || awaitOpt.HasErrors() || localDeclarations.HasErrors()) 3558: base(BoundKind.LocalFunctionStatement, syntax, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 3590: base(BoundKind.NoOpStatement, syntax, hasErrors) 3596: base(BoundKind.NoOpStatement, syntax) 3621: base(BoundKind.ReturnStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3654: base(BoundKind.YieldReturnStatement, syntax, hasErrors || expression.HasErrors()) 3682: base(BoundKind.YieldBreakStatement, syntax, hasErrors) 3687: base(BoundKind.YieldBreakStatement, syntax) 3699: base(BoundKind.ThrowStatement, syntax, hasErrors || expressionOpt.HasErrors()) 3724: base(BoundKind.ExpressionStatement, syntax, hasErrors || expression.HasErrors()) 3752: base(BoundKind.BreakStatement, syntax, hasErrors || labelExpressionOpt.HasErrors()) 3782: base(BoundKind.ContinueStatement, syntax, hasErrors || labelExpressionOpt.HasErrors()) 3812: base(BoundKind.SwitchStatement, syntax, hasErrors || expression.HasErrors() || switchSections.HasErrors() || reachabilityDecisionDag.HasErrors() || defaultLabel.HasErrors()) 3857: base(BoundKind.SwitchDispatch, syntax, hasErrors || expression.HasErrors()) 3893: base(BoundKind.IfStatement, syntax, hasErrors || condition.HasErrors() || consequence.HasErrors() || alternativeOpt.HasErrors()) 3925protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors) 3936protected BoundLoopStatement(BoundKind kind, SyntaxNode syntax, LabelSymbol breakLabel, LabelSymbol continueLabel) 3953protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false) 3976: base(BoundKind.DoStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 4006: base(BoundKind.WhileStatement, syntax, locals, condition, body, breakLabel, continueLabel, hasErrors || condition.HasErrors() || body.HasErrors()) 4036: base(BoundKind.ForStatement, syntax, breakLabel, continueLabel, hasErrors || initializer.HasErrors() || condition.HasErrors() || increment.HasErrors() || body.HasErrors()) 4078: base(BoundKind.ForEachStatement, syntax, breakLabel, continueLabel, hasErrors || elementPlaceholder.HasErrors() || elementConversion.HasErrors() || iterationVariableType.HasErrors() || iterationErrorExpressionOpt.HasErrors() || expression.HasErrors() || deconstructionOpt.HasErrors() || body.HasErrors()) 4127: base(BoundKind.ForEachDeconstructStep, syntax, hasErrors || deconstructionAssignment.HasErrors() || targetPlaceholder.HasErrors()) 4158: base(BoundKind.UsingStatement, syntax, hasErrors || declarationsOpt.HasErrors() || expressionOpt.HasErrors() || body.HasErrors() || awaitOpt.HasErrors()) 4197: base(BoundKind.FixedStatement, syntax, hasErrors || declarations.HasErrors() || body.HasErrors()) 4231: base(BoundKind.LockStatement, syntax, hasErrors || argument.HasErrors() || body.HasErrors()) 4262: base(BoundKind.TryStatement, syntax, hasErrors || tryBlock.HasErrors() || catchBlocks.HasErrors() || finallyBlockOpt.HasErrors()) 4299: base(BoundKind.CatchBlock, syntax, hasErrors || exceptionSourceOpt.HasErrors() || exceptionFilterPrologueOpt.HasErrors() || exceptionFilterOpt.HasErrors() || body.HasErrors()) 4340: base(BoundKind.Literal, syntax, type, hasErrors) 4346: base(BoundKind.Literal, syntax, type) 4371: base(BoundKind.Utf8String, syntax, type, hasErrors) 4381: base(BoundKind.Utf8String, syntax, type) 4411: base(BoundKind.ThisReference, syntax, type, hasErrors) 4419: base(BoundKind.ThisReference, syntax, type) 4446: base(BoundKind.PreviousSubmissionReference, syntax, type, hasErrors) 4454: base(BoundKind.PreviousSubmissionReference, syntax, type) 4481: base(BoundKind.HostObjectMemberReference, syntax, type, hasErrors) 4489: base(BoundKind.HostObjectMemberReference, syntax, type) 4516: base(BoundKind.BaseReference, syntax, type, hasErrors) 4521: base(BoundKind.BaseReference, syntax, type) 4545: base(BoundKind.Local, syntax, type, hasErrors) 4558: base(BoundKind.Local, syntax, type) 4594: base(BoundKind.PseudoVariable, syntax, type, hasErrors) 4606: base(BoundKind.PseudoVariable, syntax, type) 4639: base(BoundKind.RangeVariable, syntax, type, hasErrors || value.HasErrors()) 4672: base(BoundKind.Parameter, syntax, type, hasErrors) 4682: base(BoundKind.Parameter, syntax, type) 4712: base(BoundKind.LabelStatement, syntax, hasErrors) 4721: base(BoundKind.LabelStatement, syntax) 4749: base(BoundKind.GotoStatement, syntax, hasErrors || caseExpressionOpt.HasErrors() || labelExpressionOpt.HasErrors()) 4781: base(BoundKind.LabeledStatement, syntax, hasErrors || body.HasErrors()) 4812: base(BoundKind.Label, syntax, type, hasErrors) 4821: base(BoundKind.Label, syntax, type) 4848protected BoundStatementList(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false) 4858: base(BoundKind.StatementList, syntax, hasErrors || statements.HasErrors()) 4886: base(BoundKind.ConditionalGoto, syntax, hasErrors || condition.HasErrors()) 4918protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false) 4943: base(BoundKind.SwitchExpressionArm, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors() || value.HasErrors()) 4984: base(BoundKind.UnconvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 5012: base(BoundKind.ConvertedSwitchExpression, syntax, expression, switchArms, reachabilityDecisionDag, defaultLabel, reportedNotExhaustive, type, hasErrors || expression.HasErrors() || switchArms.HasErrors() || reachabilityDecisionDag.HasErrors()) 5046: base(BoundKind.DecisionDag, syntax, hasErrors || rootNode.HasErrors()) 5075protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax, bool hasErrors) 5080protected BoundDecisionDagNode(BoundKind kind, SyntaxNode syntax) 5090: base(BoundKind.EvaluationDecisionDagNode, syntax, hasErrors || evaluation.HasErrors() || next.HasErrors()) 5121: base(BoundKind.TestDecisionDagNode, syntax, hasErrors || test.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5155: base(BoundKind.WhenDecisionDagNode, syntax, hasErrors || whenExpression.HasErrors() || whenTrue.HasErrors() || whenFalse.HasErrors()) 5190: base(BoundKind.LeafDecisionDagNode, syntax, hasErrors) 5199: base(BoundKind.LeafDecisionDagNode, syntax) 5226protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5241: base(BoundKind.DagTemp, syntax, hasErrors || source.HasErrors()) 5273: base(BoundKind.DagTypeTest, syntax, input, hasErrors || input.HasErrors()) 5302: base(BoundKind.DagNonNullTest, syntax, input, hasErrors || input.HasErrors()) 5330: base(BoundKind.DagExplicitNullTest, syntax, input, hasErrors || input.HasErrors()) 5356: base(BoundKind.DagValueTest, syntax, input, hasErrors || input.HasErrors()) 5385: base(BoundKind.DagRelationalTest, syntax, input, hasErrors || input.HasErrors()) 5415protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5428: base(BoundKind.DagDeconstructEvaluation, syntax, input, hasErrors || input.HasErrors()) 5457: base(BoundKind.DagTypeEvaluation, syntax, input, hasErrors || input.HasErrors()) 5486: base(BoundKind.DagFieldEvaluation, syntax, input, hasErrors || input.HasErrors()) 5515: base(BoundKind.DagPropertyEvaluation, syntax, input, hasErrors || input.HasErrors()) 5546: base(BoundKind.DagIndexEvaluation, syntax, input, hasErrors || input.HasErrors()) 5577: base(BoundKind.DagIndexerEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5624: base(BoundKind.DagSliceEvaluation, syntax, input, hasErrors || lengthTemp.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || input.HasErrors()) 5673: base(BoundKind.DagAssignmentEvaluation, syntax, input, hasErrors || target.HasErrors() || input.HasErrors()) 5702: base(BoundKind.DagPassThroughEvaluation, syntax, input, hasErrors || input.HasErrors()) 5728: base(BoundKind.SwitchSection, syntax, statements, hasErrors || switchLabels.HasErrors() || statements.HasErrors()) 5760: base(BoundKind.SwitchLabel, syntax, hasErrors || pattern.HasErrors() || whenClause.HasErrors()) 5794protected BoundMethodOrPropertyGroup(BoundKind kind, SyntaxNode syntax, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false) 5809: base(BoundKind.SequencePointExpression, syntax, type, hasErrors || expression.HasErrors()) 5837: base(BoundKind.Sequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5873: base(BoundKind.SpillSequence, syntax, type, hasErrors || sideEffects.HasErrors() || value.HasErrors()) 5909: base(BoundKind.DynamicMemberAccess, syntax, type, hasErrors || receiver.HasErrors()) 5947protected BoundDynamicInvocableBase(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol? type, bool hasErrors = false) 5965: base(BoundKind.DynamicInvocation, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 6001: base(BoundKind.ConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || accessExpression.HasErrors()) 6034: base(BoundKind.LoweredConditionalAccess, syntax, type, hasErrors || receiver.HasErrors() || whenNotNull.HasErrors() || whenNullOpt.HasErrors()) 6075: base(BoundKind.ConditionalReceiver, syntax, type, hasErrors) 6084: base(BoundKind.ConditionalReceiver, syntax, type) 6113: base(BoundKind.ComplexConditionalReceiver, syntax, type, hasErrors || valueTypeReceiver.HasErrors() || referenceTypeReceiver.HasErrors()) 6146: base(BoundKind.MethodGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6187: base(BoundKind.PropertyGroup, syntax, receiverOpt, resultKind, hasErrors || receiverOpt.HasErrors()) 6215: base(BoundKind.Call, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 6274: base(BoundKind.EventAssignmentOperator, syntax, type, hasErrors || receiverOpt.HasErrors() || argument.HasErrors()) 6313: base(BoundKind.Attribute, syntax, type, hasErrors || constructorArguments.HasErrors() || namedArguments.HasErrors()) 6358: base(BoundKind.UnconvertedObjectCreationExpression, syntax, null, hasErrors || arguments.HasErrors()) 6395protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type, bool hasErrors) 6403protected BoundObjectCreationExpressionBase(BoundKind kind, SyntaxNode syntax, TypeSymbol type) 6417: base(BoundKind.ObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6467protected BoundCollectionExpressionBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundNode> elements, TypeSymbol? type, bool hasErrors = false) 6486: base(BoundKind.UnconvertedCollectionExpression, syntax, elements, null, hasErrors || withElement.HasErrors() || elements.HasErrors()) 6515: base(BoundKind.UnconvertedWithElement, syntax, hasErrors || arguments.HasErrors()) 6547: base(BoundKind.CollectionExpression, syntax, elements, type, hasErrors || placeholder.HasErrors() || collectionCreation.HasErrors() || collectionBuilderElementsPlaceholder.HasErrors() || unconvertedCollectionExpression.HasErrors() || elements.HasErrors()) 6596: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type, hasErrors) 6601: base(BoundKind.CollectionExpressionSpreadExpressionPlaceholder, syntax, type) 6624: base(BoundKind.CollectionExpressionSpreadElement, syntax, hasErrors || expression.HasErrors() || expressionPlaceholder.HasErrors() || conversion.HasErrors() || lengthOrCount.HasErrors() || elementPlaceholder.HasErrors() || iteratorBody.HasErrors()) 6663protected BoundTupleExpression(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false) 6682: base(BoundKind.TupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || arguments.HasErrors()) 6709: base(BoundKind.ConvertedTupleLiteral, syntax, arguments, argumentNamesOpt, inferredNamesOpt, type, hasErrors || sourceTuple.HasErrors() || arguments.HasErrors()) 6739: base(BoundKind.DynamicObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || initializerExpressionOpt.HasErrors()) 6782: base(BoundKind.NoPiaObjectCreationExpression, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 6813protected BoundObjectInitializerExpressionBase(BoundKind kind, SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false) 6833: base(BoundKind.ObjectInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6861: base(BoundKind.ObjectInitializerMember, syntax, type, hasErrors || arguments.HasErrors()) 6910: base(BoundKind.DynamicObjectInitializerMember, syntax, type, hasErrors) 6922: base(BoundKind.DynamicObjectInitializerMember, syntax, type) 6955: base(BoundKind.CollectionInitializerExpression, syntax, placeholder, initializers, type, hasErrors || placeholder.HasErrors() || initializers.HasErrors()) 6983: base(BoundKind.CollectionElementInitializer, syntax, type, hasErrors || arguments.HasErrors() || implicitReceiverOpt.HasErrors()) 7028: base(BoundKind.DynamicCollectionElementInitializer, syntax, expression, arguments, type, hasErrors || expression.HasErrors() || arguments.HasErrors()) 7060: base(BoundKind.ImplicitReceiver, syntax, type, hasErrors) 7068: base(BoundKind.ImplicitReceiver, syntax, type) 7095: base(BoundKind.AnonymousObjectCreationExpression, syntax, type, hasErrors || arguments.HasErrors() || declarations.HasErrors()) 7131: base(BoundKind.AnonymousPropertyDeclaration, syntax, type, hasErrors) 7141: base(BoundKind.AnonymousPropertyDeclaration, syntax, type) 7171: base(BoundKind.NewT, syntax, type, hasErrors || initializerExpressionOpt.HasErrors()) 7201: base(BoundKind.DelegateCreationExpression, syntax, type, hasErrors || argument.HasErrors()) 7237: base(BoundKind.ArrayCreation, syntax, type, hasErrors || bounds.HasErrors() || initializerOpt.HasErrors()) 7269: base(BoundKind.ArrayInitialization, syntax, null, hasErrors || initializers.HasErrors()) 7299protected BoundStackAllocArrayCreationBase(BoundKind kind, SyntaxNode syntax, TypeSymbol elementType, BoundExpression count, BoundArrayInitialization? initializerOpt, TypeSymbol? type, bool hasErrors = false) 7319: base(BoundKind.StackAllocArrayCreation, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7346: base(BoundKind.ConvertedStackAllocExpression, syntax, elementType, count, initializerOpt, type, hasErrors || count.HasErrors() || initializerOpt.HasErrors()) 7375: base(BoundKind.FieldAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7415: base(BoundKind.HoistedFieldAccess, syntax, type, hasErrors) 7425: base(BoundKind.HoistedFieldAccess, syntax, type) 7455: base(BoundKind.PropertyAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7493: base(BoundKind.EventAccess, syntax, type, hasErrors || receiverOpt.HasErrors()) 7529: base(BoundKind.IndexerAccess, syntax, type, hasErrors || receiverOpt.HasErrors() || arguments.HasErrors()) 7580: base(BoundKind.ImplicitIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || argument.HasErrors() || lengthOrCountAccess.HasErrors() || receiverPlaceholder.HasErrors() || indexerOrSliceAccess.HasErrors() || argumentPlaceholders.HasErrors()) 7629: base(BoundKind.InlineArrayAccess, syntax, type, hasErrors || expression.HasErrors() || argument.HasErrors()) 7670: base(BoundKind.DynamicIndexerAccess, syntax, type, hasErrors || receiver.HasErrors() || arguments.HasErrors()) 7710: base(BoundKind.Lambda, syntax, type, hasErrors || unboundLambda.HasErrors() || body.HasErrors()) 7750: base(BoundKind.UnboundLambda, syntax, null, hasErrors) 7761: base(BoundKind.UnboundLambda, syntax, null) 7794: base(BoundKind.QueryClause, syntax, type, hasErrors || value.HasErrors() || operation.HasErrors() || cast.HasErrors() || unoptimizedForm.HasErrors()) 7835: base(BoundKind.TypeOrInstanceInitializers, syntax, statements, hasErrors || statements.HasErrors()) 7861: base(BoundKind.NameOfOperator, syntax, type, hasErrors || argument.HasErrors()) 7897protected BoundInterpolatedStringBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false) 7914: base(BoundKind.UnconvertedInterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7940: base(BoundKind.InterpolatedString, syntax, parts, constantValueOpt, type, hasErrors || parts.HasErrors()) 7968: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type, hasErrors) 7973: base(BoundKind.InterpolatedStringHandlerPlaceholder, syntax, type) 7996: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type, hasErrors) 8005: base(BoundKind.InterpolatedStringArgumentPlaceholder, syntax, type) 8034: base(BoundKind.StringInsert, syntax, null, hasErrors || value.HasErrors() || alignment.HasErrors() || format.HasErrors()) 8069: base(BoundKind.IsPatternExpression, syntax, type, hasErrors || expression.HasErrors() || pattern.HasErrors() || reachabilityDecisionDag.HasErrors()) 8112protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors) 8127protected BoundPattern(BoundKind kind, SyntaxNode syntax, TypeSymbol inputType, TypeSymbol narrowedType) 8145: base(BoundKind.ConstantPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8184: base(BoundKind.PatternWithUnionMatching, syntax, inputType, narrowedType, hasErrors || leftOfPendingConjunction.HasErrors() || valueProperty.HasErrors() || valuePattern.HasErrors()) 8226: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType, hasErrors) 8239: base(BoundKind.DiscardPattern, syntax, inputType, narrowedType) 8265protected BoundObjectPattern(BoundKind kind, SyntaxNode syntax, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8283: base(BoundKind.DeclarationPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || variableAccess.HasErrors()) 8321: base(BoundKind.RecursivePattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || declaredType.HasErrors() || deconstruction.HasErrors() || properties.HasErrors() || variableAccess.HasErrors()) 8364: base(BoundKind.ListPattern, syntax, variable, variableAccess, inputType, narrowedType, hasErrors || subpatterns.HasErrors() || lengthAccess.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors() || variableAccess.HasErrors()) 8408: base(BoundKind.SlicePattern, syntax, inputType, narrowedType, hasErrors || pattern.HasErrors() || indexerAccess.HasErrors() || receiverPlaceholder.HasErrors() || argumentPlaceholder.HasErrors()) 8447: base(BoundKind.ITuplePattern, syntax, inputType, narrowedType, hasErrors || subpatterns.HasErrors()) 8486protected BoundSubpattern(BoundKind kind, SyntaxNode syntax, BoundPattern pattern, bool hasErrors = false) 8505: base(BoundKind.PositionalSubpattern, syntax, pattern, hasErrors || pattern.HasErrors()) 8533: base(BoundKind.PropertySubpattern, syntax, pattern, hasErrors || member.HasErrors() || pattern.HasErrors()) 8563: base(BoundKind.PropertySubpatternMember, syntax, hasErrors || receiver.HasErrors()) 8595: base(BoundKind.TypePattern, syntax, inputType, narrowedType, hasErrors || declaredType.HasErrors()) 8633: base(BoundKind.BinaryPattern, syntax, inputType, narrowedType, hasErrors || left.HasErrors() || right.HasErrors()) 8672: base(BoundKind.NegatedPattern, syntax, inputType, narrowedType, hasErrors || negated.HasErrors()) 8706: base(BoundKind.RelationalPattern, syntax, inputType, narrowedType, hasErrors || value.HasErrors()) 8747: base(BoundKind.DiscardExpression, syntax, type, hasErrors) 8754: base(BoundKind.DiscardExpression, syntax, type) 8782: base(BoundKind.ThrowExpression, syntax, type, hasErrors || expression.HasErrors()) 8809protected VariablePendingInference(BoundKind kind, SyntaxNode syntax, Symbol variableSymbol, BoundExpression? receiverOpt, bool hasErrors = false) 8827: base(BoundKind.OutVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8853: base(BoundKind.DeconstructionVariablePendingInference, syntax, variableSymbol, receiverOpt, hasErrors || receiverOpt.HasErrors()) 8879: base(BoundKind.OutDeconstructVarPendingInference, syntax, null, hasErrors) 8886: base(BoundKind.OutDeconstructVarPendingInference, syntax, null) 8913protected BoundMethodBodyBase(BoundKind kind, SyntaxNode syntax, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false) 8927: base(BoundKind.NonConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || blockBody.HasErrors() || expressionBody.HasErrors()) 8950: base(BoundKind.ConstructorMethodBody, syntax, blockBody, expressionBody, hasErrors || initializer.HasErrors() || blockBody.HasErrors() || expressionBody.HasErrors()) 8980: base(BoundKind.ExpressionWithNullability, syntax, type, hasErrors || expression.HasErrors()) 9011: base(BoundKind.ValueForNullableAnalysis, syntax, type, hasErrors || originalExpression.HasErrors()) 9036: base(BoundKind.WithExpression, syntax, type, hasErrors || receiver.HasErrors() || initializerExpression.HasErrors()) 9076case BoundKind.FieldEqualsValue: 9078case BoundKind.PropertyEqualsValue: 9080case BoundKind.ParameterEqualsValue: 9082case BoundKind.GlobalStatementInitializer: 9084case BoundKind.ValuePlaceholder: 9086case BoundKind.CapturedReceiverPlaceholder: 9088case BoundKind.DeconstructValuePlaceholder: 9090case BoundKind.TupleOperandPlaceholder: 9092case BoundKind.AwaitableValuePlaceholder: 9094case BoundKind.DisposableValuePlaceholder: 9096case BoundKind.ObjectOrCollectionValuePlaceholder: 9098case BoundKind.ImplicitIndexerValuePlaceholder: 9100case BoundKind.ImplicitIndexerReceiverPlaceholder: 9102case BoundKind.ListPatternReceiverPlaceholder: 9104case BoundKind.ListPatternIndexPlaceholder: 9106case BoundKind.SlicePatternReceiverPlaceholder: 9108case BoundKind.SlicePatternRangePlaceholder: 9110case BoundKind.CollectionBuilderElementsPlaceholder: 9112case BoundKind.Dup: 9114case BoundKind.PassByCopy: 9116case BoundKind.BadExpression: 9118case BoundKind.BadStatement: 9120case BoundKind.ExtractedFinallyBlock: 9122case BoundKind.TypeExpression: 9124case BoundKind.TypeOrValueExpression: 9126case BoundKind.NamespaceExpression: 9128case BoundKind.UnaryOperator: 9130case BoundKind.IncrementOperator: 9132case BoundKind.AddressOfOperator: 9134case BoundKind.UnconvertedAddressOfOperator: 9136case BoundKind.FunctionPointerLoad: 9138case BoundKind.PointerIndirectionOperator: 9140case BoundKind.PointerElementAccess: 9142case BoundKind.FunctionPointerInvocation: 9144case BoundKind.RefTypeOperator: 9146case BoundKind.MakeRefOperator: 9148case BoundKind.RefValueOperator: 9150case BoundKind.FromEndIndexExpression: 9152case BoundKind.RangeExpression: 9154case BoundKind.BinaryOperator: 9156case BoundKind.TupleBinaryOperator: 9158case BoundKind.UserDefinedConditionalLogicalOperator: 9160case BoundKind.CompoundAssignmentOperator: 9162case BoundKind.AssignmentOperator: 9164case BoundKind.DeconstructionAssignmentOperator: 9166case BoundKind.NullCoalescingOperator: 9168case BoundKind.NullCoalescingAssignmentOperator: 9170case BoundKind.UnconvertedConditionalOperator: 9172case BoundKind.ConditionalOperator: 9174case BoundKind.ArrayAccess: 9176case BoundKind.RefArrayAccess: 9178case BoundKind.ArrayLength: 9180case BoundKind.AwaitableInfo: 9182case BoundKind.AwaitExpression: 9184case BoundKind.TypeOfOperator: 9186case BoundKind.BlockInstrumentation: 9188case BoundKind.MethodDefIndex: 9190case BoundKind.LocalId: 9192case BoundKind.ParameterId: 9194case BoundKind.StateMachineInstanceId: 9196case BoundKind.MaximumMethodDefIndex: 9198case BoundKind.InstrumentationPayloadRoot: 9200case BoundKind.ThrowIfModuleCancellationRequested: 9202case BoundKind.ModuleCancellationTokenExpression: 9204case BoundKind.ModuleVersionId: 9206case BoundKind.ModuleVersionIdString: 9208case BoundKind.SourceDocumentIndex: 9210case BoundKind.MethodInfo: 9212case BoundKind.FieldInfo: 9214case BoundKind.DefaultLiteral: 9216case BoundKind.DefaultExpression: 9218case BoundKind.IsOperator: 9220case BoundKind.AsOperator: 9222case BoundKind.SizeOfOperator: 9224case BoundKind.Conversion: 9226case BoundKind.ReadOnlySpanFromArray: 9228case BoundKind.ArgList: 9230case BoundKind.ArgListOperator: 9232case BoundKind.FixedLocalCollectionInitializer: 9234case BoundKind.SequencePoint: 9236case BoundKind.SequencePointWithSpan: 9238case BoundKind.SavePreviousSequencePoint: 9240case BoundKind.RestorePreviousSequencePoint: 9242case BoundKind.StepThroughSequencePoint: 9244case BoundKind.Block: 9246case BoundKind.Scope: 9248case BoundKind.StateMachineScope: 9250case BoundKind.LocalDeclaration: 9252case BoundKind.MultipleLocalDeclarations: 9254case BoundKind.UsingLocalDeclarations: 9256case BoundKind.LocalFunctionStatement: 9258case BoundKind.NoOpStatement: 9260case BoundKind.ReturnStatement: 9262case BoundKind.YieldReturnStatement: 9264case BoundKind.YieldBreakStatement: 9266case BoundKind.ThrowStatement: 9268case BoundKind.ExpressionStatement: 9270case BoundKind.BreakStatement: 9272case BoundKind.ContinueStatement: 9274case BoundKind.SwitchStatement: 9276case BoundKind.SwitchDispatch: 9278case BoundKind.IfStatement: 9280case BoundKind.DoStatement: 9282case BoundKind.WhileStatement: 9284case BoundKind.ForStatement: 9286case BoundKind.ForEachStatement: 9288case BoundKind.ForEachDeconstructStep: 9290case BoundKind.UsingStatement: 9292case BoundKind.FixedStatement: 9294case BoundKind.LockStatement: 9296case BoundKind.TryStatement: 9298case BoundKind.CatchBlock: 9300case BoundKind.Literal: 9302case BoundKind.Utf8String: 9304case BoundKind.ThisReference: 9306case BoundKind.PreviousSubmissionReference: 9308case BoundKind.HostObjectMemberReference: 9310case BoundKind.BaseReference: 9312case BoundKind.Local: 9314case BoundKind.PseudoVariable: 9316case BoundKind.RangeVariable: 9318case BoundKind.Parameter: 9320case BoundKind.LabelStatement: 9322case BoundKind.GotoStatement: 9324case BoundKind.LabeledStatement: 9326case BoundKind.Label: 9328case BoundKind.StatementList: 9330case BoundKind.ConditionalGoto: 9332case BoundKind.SwitchExpressionArm: 9334case BoundKind.UnconvertedSwitchExpression: 9336case BoundKind.ConvertedSwitchExpression: 9338case BoundKind.DecisionDag: 9340case BoundKind.EvaluationDecisionDagNode: 9342case BoundKind.TestDecisionDagNode: 9344case BoundKind.WhenDecisionDagNode: 9346case BoundKind.LeafDecisionDagNode: 9348case BoundKind.DagTemp: 9350case BoundKind.DagTypeTest: 9352case BoundKind.DagNonNullTest: 9354case BoundKind.DagExplicitNullTest: 9356case BoundKind.DagValueTest: 9358case BoundKind.DagRelationalTest: 9360case BoundKind.DagDeconstructEvaluation: 9362case BoundKind.DagTypeEvaluation: 9364case BoundKind.DagFieldEvaluation: 9366case BoundKind.DagPropertyEvaluation: 9368case BoundKind.DagIndexEvaluation: 9370case BoundKind.DagIndexerEvaluation: 9372case BoundKind.DagSliceEvaluation: 9374case BoundKind.DagAssignmentEvaluation: 9376case BoundKind.DagPassThroughEvaluation: 9378case BoundKind.SwitchSection: 9380case BoundKind.SwitchLabel: 9382case BoundKind.SequencePointExpression: 9384case BoundKind.Sequence: 9386case BoundKind.SpillSequence: 9388case BoundKind.DynamicMemberAccess: 9390case BoundKind.DynamicInvocation: 9392case BoundKind.ConditionalAccess: 9394case BoundKind.LoweredConditionalAccess: 9396case BoundKind.ConditionalReceiver: 9398case BoundKind.ComplexConditionalReceiver: 9400case BoundKind.MethodGroup: 9402case BoundKind.PropertyGroup: 9404case BoundKind.Call: 9406case BoundKind.EventAssignmentOperator: 9408case BoundKind.Attribute: 9410case BoundKind.UnconvertedObjectCreationExpression: 9412case BoundKind.ObjectCreationExpression: 9414case BoundKind.UnconvertedCollectionExpression: 9416case BoundKind.UnconvertedWithElement: 9418case BoundKind.CollectionExpression: 9420case BoundKind.CollectionExpressionSpreadExpressionPlaceholder: 9422case BoundKind.CollectionExpressionSpreadElement: 9424case BoundKind.TupleLiteral: 9426case BoundKind.ConvertedTupleLiteral: 9428case BoundKind.DynamicObjectCreationExpression: 9430case BoundKind.NoPiaObjectCreationExpression: 9432case BoundKind.ObjectInitializerExpression: 9434case BoundKind.ObjectInitializerMember: 9436case BoundKind.DynamicObjectInitializerMember: 9438case BoundKind.CollectionInitializerExpression: 9440case BoundKind.CollectionElementInitializer: 9442case BoundKind.DynamicCollectionElementInitializer: 9444case BoundKind.ImplicitReceiver: 9446case BoundKind.AnonymousObjectCreationExpression: 9448case BoundKind.AnonymousPropertyDeclaration: 9450case BoundKind.NewT: 9452case BoundKind.DelegateCreationExpression: 9454case BoundKind.ArrayCreation: 9456case BoundKind.ArrayInitialization: 9458case BoundKind.StackAllocArrayCreation: 9460case BoundKind.ConvertedStackAllocExpression: 9462case BoundKind.FieldAccess: 9464case BoundKind.HoistedFieldAccess: 9466case BoundKind.PropertyAccess: 9468case BoundKind.EventAccess: 9470case BoundKind.IndexerAccess: 9472case BoundKind.ImplicitIndexerAccess: 9474case BoundKind.InlineArrayAccess: 9476case BoundKind.DynamicIndexerAccess: 9478case BoundKind.Lambda: 9480case BoundKind.UnboundLambda: 9482case BoundKind.QueryClause: 9484case BoundKind.TypeOrInstanceInitializers: 9486case BoundKind.NameOfOperator: 9488case BoundKind.UnconvertedInterpolatedString: 9490case BoundKind.InterpolatedString: 9492case BoundKind.InterpolatedStringHandlerPlaceholder: 9494case BoundKind.InterpolatedStringArgumentPlaceholder: 9496case BoundKind.StringInsert: 9498case BoundKind.IsPatternExpression: 9500case BoundKind.ConstantPattern: 9502case BoundKind.PatternWithUnionMatching: 9504case BoundKind.DiscardPattern: 9506case BoundKind.DeclarationPattern: 9508case BoundKind.RecursivePattern: 9510case BoundKind.ListPattern: 9512case BoundKind.SlicePattern: 9514case BoundKind.ITuplePattern: 9516case BoundKind.PositionalSubpattern: 9518case BoundKind.PropertySubpattern: 9520case BoundKind.PropertySubpatternMember: 9522case BoundKind.TypePattern: 9524case BoundKind.BinaryPattern: 9526case BoundKind.NegatedPattern: 9528case BoundKind.RelationalPattern: 9530case BoundKind.DiscardExpression: 9532case BoundKind.ThrowExpression: 9534case BoundKind.OutVariablePendingInference: 9536case BoundKind.DeconstructionVariablePendingInference: 9538case BoundKind.OutDeconstructVarPendingInference: 9540case BoundKind.NonConstructorMethodBody: 9542case BoundKind.ConstructorMethodBody: 9544case BoundKind.ExpressionWithNullability: 9546case BoundKind.ValueForNullableAnalysis: 9548case BoundKind.WithExpression: 17697internal static PipelinePhase DoesNotSurvive(BoundKind kind) 17701BoundKind.ValuePlaceholder => PipelinePhase.LocalRewriting, 17702BoundKind.DeconstructValuePlaceholder => PipelinePhase.LocalRewriting, 17703BoundKind.TupleOperandPlaceholder => PipelinePhase.InitialBinding, 17704BoundKind.AwaitableValuePlaceholder => PipelinePhase.StateMachineRewriting, 17705BoundKind.DisposableValuePlaceholder => PipelinePhase.InitialBinding, 17706BoundKind.ImplicitIndexerReceiverPlaceholder => PipelinePhase.LocalRewriting, 17707BoundKind.ListPatternReceiverPlaceholder => PipelinePhase.LocalRewriting, 17708BoundKind.ListPatternIndexPlaceholder => PipelinePhase.LocalRewriting, 17709BoundKind.SlicePatternReceiverPlaceholder => PipelinePhase.LocalRewriting, 17710BoundKind.SlicePatternRangePlaceholder => PipelinePhase.LocalRewriting, 17711BoundKind.CollectionBuilderElementsPlaceholder => PipelinePhase.LocalRewriting, 17712BoundKind.TypeOrValueExpression => PipelinePhase.InitialBinding, 17713BoundKind.UnconvertedAddressOfOperator => PipelinePhase.InitialBinding, 17714BoundKind.UnconvertedConditionalOperator => PipelinePhase.InitialBinding, 17715BoundKind.AwaitableInfo => PipelinePhase.StateMachineRewriting, 17716BoundKind.AwaitExpression => PipelinePhase.StateMachineRewriting, 17717BoundKind.DefaultLiteral => PipelinePhase.LocalRewriting, 17718BoundKind.LocalFunctionStatement => PipelinePhase.ClosureConversion, 17719BoundKind.YieldReturnStatement => PipelinePhase.StateMachineRewriting, 17720BoundKind.YieldBreakStatement => PipelinePhase.StateMachineRewriting, 17721BoundKind.IfStatement => PipelinePhase.LocalRewriting, 17722BoundKind.UsingStatement => PipelinePhase.LocalRewriting, 17723BoundKind.UnconvertedSwitchExpression => PipelinePhase.InitialBinding, 17724BoundKind.SpillSequence => PipelinePhase.Spilling, 17725BoundKind.UnconvertedObjectCreationExpression => PipelinePhase.InitialBinding, 17726BoundKind.UnconvertedCollectionExpression => PipelinePhase.InitialBinding, 17727BoundKind.TupleLiteral => PipelinePhase.InitialBinding, 17728BoundKind.TypeOrInstanceInitializers => PipelinePhase.LocalRewriting, 17729BoundKind.UnconvertedInterpolatedString => PipelinePhase.InitialBinding, 17730BoundKind.InterpolatedStringHandlerPlaceholder => PipelinePhase.LocalRewriting, 17731BoundKind.InterpolatedStringArgumentPlaceholder => PipelinePhase.LocalRewriting, 17732BoundKind.PatternWithUnionMatching => PipelinePhase.InitialBinding, 17733BoundKind.DeconstructionVariablePendingInference => PipelinePhase.LocalRewriting, 17734BoundKind.ExpressionWithNullability => PipelinePhase.InitialBinding, 17735BoundKind.ValueForNullableAnalysis => PipelinePhase.InitialBinding,
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: 252case 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: 572case BoundKind.Parameter: 577case BoundKind.Local: 583case BoundKind.PassByCopy: 585case BoundKind.Conversion: 1626if (argument.Kind == BoundKind.Local) 1715if (argument.Kind == BoundKind.Local)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (40)
99if (node.Left.Kind == BoundKind.DynamicMemberAccess && 290Debug.Assert(receiverOpt.Kind != BoundKind.TypeExpression); 613Debug.Assert(receiver.Kind != BoundKind.TypeExpression); 725case BoundKind.PropertyAccess: 740case BoundKind.IndexerAccess: 752case BoundKind.ImplicitIndexerAccess: 765case BoundKind.FieldAccess: 782case BoundKind.ArrayAccess: 810case BoundKind.InlineArrayAccess: 814case BoundKind.DynamicMemberAccess: 817case BoundKind.DynamicIndexerAccess: 820case BoundKind.Local: 821case BoundKind.Parameter: 822case BoundKind.ThisReference: // a special kind of parameter 823case BoundKind.PseudoVariable: 831case BoundKind.Call: 835case BoundKind.FunctionPointerInvocation: 839case BoundKind.ConditionalOperator: 843case BoundKind.AssignmentOperator: 847case BoundKind.PointerElementAccess: 848case BoundKind.PointerIndirectionOperator: 849case BoundKind.RefValueOperator: 852case BoundKind.EventAccess: 975case BoundKind.ThisReference: 978case BoundKind.BaseReference: 981case BoundKind.Literal: 985case BoundKind.Parameter: 990case BoundKind.Local: 993case BoundKind.TypeExpression: 1017case BoundKind.Parameter: 1019goto case BoundKind.Local; 1020case BoundKind.Local: 1021case BoundKind.Lambda: 1022case BoundKind.ThisReference: 1023case BoundKind.BaseReference: 1024case BoundKind.Literal: 1027case BoundKind.Conversion: 1032case BoundKind.PassByCopy: 1035case BoundKind.ObjectCreationExpression: 1047case 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)) 618if (makeOffsetInput.ConstantValueOpt is null && lengthAccess.Kind is not BoundKind.ArrayLength) 879if (node.LengthOrCountAccess.Kind is not BoundKind.Local || receiver.Kind is not (BoundKind.Local or BoundKind.Parameter)) 1067if ((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 (44)
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.PropertyAccess: 1104case BoundKind.IndexerAccess: 1107case BoundKind.ImplicitIndexerAccess: 1110case BoundKind.ImplicitIndexerReceiverPlaceholder: 1114case BoundKind.InlineArrayAccess: 1117case BoundKind.ImplicitIndexerValuePlaceholder: 1122case BoundKind.ListPatternReceiverPlaceholder: 1123case BoundKind.SlicePatternReceiverPlaceholder: 1124case BoundKind.SlicePatternRangePlaceholder: 1125case BoundKind.ListPatternIndexPlaceholder: 1128case BoundKind.Conversion:
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: 886case BoundKind.Local: 887case BoundKind.Parameter: 891case BoundKind.FieldAccess: 900case BoundKind.ArrayAccess:
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
316if (node.ReceiverOpt != null && node.ReceiverOpt.Kind == BoundKind.ThisReference)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (3)
417if (statement.Kind == BoundKind.Block) 421if (rewrittenStatements.Length == 1 && rewrittenStatements[0].Kind == BoundKind.StateMachineScope) 620if (node.Left.Kind != BoundKind.Local)
Lowering\StateMachineRewriter\RefInitializationHoister.cs (8)
149case BoundKind.ArrayAccess: 186case BoundKind.FieldAccess: 216if (receiver.Kind != BoundKind.ThisReference && !isFieldOfStruct) 225case BoundKind.ThisReference: 226case BoundKind.BaseReference: 227case BoundKind.DefaultExpression: 230case BoundKind.Call: 251case BoundKind.ConditionalOperator:
Lowering\SyntheticBoundNodeFactory.cs (3)
591if (body.Kind != BoundKind.Block) 1747var discardsPresent = arguments.Any(static a => a.Kind == BoundKind.DiscardExpression); 1752(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) 1110Debug.Assert(boundOperand.Kind == BoundKind.BadExpression || 1112ExpressionOpt?.Kind == BoundKind.BadExpression); 1122if (boundOperand.Kind == BoundKind.ConvertedTupleLiteral && TypeSymbol.Equals(boundOperand.Type, boundConversion.Type, TypeCompareKind.ConsiderEverything2)) 1136if (boundConversion.ExplicitCastInCode && conversion.IsIdentity && boundOperand.Kind == BoundKind.Conversion) 1142nestedOperand.Kind == BoundKind.ConvertedTupleLiteral && 1158if ((boundOperand.Kind == BoundKind.Lambda || 1159boundOperand.Kind == BoundKind.UnboundLambda || 1160boundOperand.Kind == BoundKind.MethodGroup) && 1402boundAssignmentOperator.Right?.Kind == BoundKind.ObjectInitializerExpression || 1403boundAssignmentOperator.Right?.Kind == BoundKind.CollectionInitializerExpression; 1709if (boundIndexerAccess.LengthOrCountAccess.Kind == BoundKind.ArrayLength) 2346if (part.Kind == BoundKind.StringInsert) 2605if (variable == null && boundDeclarationPattern.VariableAccess?.Kind == BoundKind.DiscardExpression) 2819Debug.Assert(boundSwitchLabel.Pattern.Kind == BoundKind.DiscardPattern); 2823boundSwitchLabel.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 &&