2 types derived from BoundTupleExpression
Microsoft.CodeAnalysis.CSharp (2)
Generated\BoundNodes.xml.Generated.cs (2)
6563internal sealed partial class BoundTupleLiteral : BoundTupleExpression 6590internal sealed partial class BoundConvertedTupleLiteral : BoundTupleExpression
61 references to BoundTupleExpression
Microsoft.CodeAnalysis.CSharp (61)
Binder\Binder.ValueChecks.cs (6)
3994internal SafeContext GetBroadestValEscape(BoundTupleExpression expr, SafeContext scopeOfTheContainingExpression) 4000if (element is BoundTupleExpression te) 4068var tupleLiteral = (BoundTupleExpression)expr; 4755var tupleLiteral = (BoundTupleExpression)expr;
Binder\Binder_Deconstruct.cs (3)
157var lhsTuple = DeconstructionVariablesAsTuple(left, checkedVariables, diagnostics, ignoreDiagnosticsFromTuple: diagnostics.HasAnyErrors() || !resultIsUsed); 545private BoundTupleExpression DeconstructionVariablesAsTuple(CSharpSyntaxNode syntax, ArrayBuilder<DeconstructionVariable> variables, 591return (BoundTupleExpression)BindToNaturalType(new BoundTupleLiteral(syntax, arguments, tupleNames, inferredPositions, type), diagnostics);
Binder\Binder_TupleOperators.cs (7)
268bool leftIsTupleLiteral = left is BoundTupleExpression; 269bool rightIsTupleLiteral = right is BoundTupleExpression; 286ImmutableArray<bool> leftInferred = leftIsTupleLiteral ? ((BoundTupleExpression)left).InferredNamesOpt : default; 289ImmutableArray<bool> rightInferred = rightIsTupleLiteral ? ((BoundTupleExpression)right).InferredNamesOpt : default; 318Location location = ((BoundTupleExpression)(useRight ? right : left)).Arguments[i].Syntax.Parent.Location; 351if (expr is BoundTupleExpression tuple) 377if (expr is BoundTupleExpression tuple)
Binder\RefSafetyAnalysis.cs (4)
913var left = node.Left; 1005private ArrayBuilder<DeconstructionVariable> GetDeconstructionAssignmentVariables(BoundTupleExpression tuple) 1017return expr is BoundTupleExpression tuple 1027case BoundTupleExpression tuple:
BoundTree\BoundExpression.cs (1)
733((BoundTupleExpression)argument).VisitAllElements(action, args);
Compilation\MemberSemanticModel.cs (1)
1144return (bound as BoundTupleExpression)?.Type as NamedTypeSymbol;
FlowAnalysis\AbstractFlowPass.cs (2)
601((BoundTupleExpression)node).VisitAllElements((x, self) => self.VisitLvalue(x), this); 1130private BoundNode VisitTupleExpression(BoundTupleExpression node)
FlowAnalysis\DefiniteAssignment.cs (1)
1674((BoundTupleExpression)node).VisitAllElements(static (x, arg) => arg.self.Assign(x, value: null, isRef: arg.isRef), (self: this, isRef));
FlowAnalysis\NullableWalker.cs (5)
8417private void VisitTupleExpression(BoundTupleExpression node) 10105var left = node.Left; 10348private ArrayBuilder<DeconstructionVariable> GetDeconstructionAssignmentVariables(BoundTupleExpression tuple) 10364return new DeconstructionVariable(expr, GetDeconstructionAssignmentVariables((BoundTupleExpression)expr)); 10382return ((BoundTupleExpression)expr).Arguments;
FlowAnalysis\NullableWalker_Patterns.cs (3)
402var originalInputElementSlots = expression is BoundTupleExpression tuple 514((BoundTupleExpression)expression).Arguments[originalTupleElement.TupleElementIndex]); 518Debug.Assert(originalInputMap[outputSlot] == ((BoundTupleExpression)expression).Arguments[originalTupleElement.TupleElementIndex]);
FlowAnalysis\VariablesDeclaredWalker.cs (1)
139((BoundTupleExpression)deconstructionAssignment.Left).VisitAllElements((x, self) => self.Visit(x), this);
Generated\BoundNodes.xml.Generated.cs (7)
1859public BoundDeconstructionAssignmentOperator(SyntaxNode syntax, BoundTupleExpression left, BoundConversion right, bool isUsed, TypeSymbol type, bool hasErrors = false) 1873public BoundTupleExpression Left { get; } 1880public BoundDeconstructionAssignmentOperator Update(BoundTupleExpression left, BoundConversion right, bool isUsed, TypeSymbol type) 11059BoundTupleExpression left = (BoundTupleExpression)this.Visit(node.Left); 12807BoundTupleExpression left = (BoundTupleExpression)this.Visit(node.Left);
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
243CheckForDeconstructionAssignmentToSelf((BoundTupleExpression)node.Left, node.Right);
Lowering\DiagnosticsPass_Warnings.cs (4)
887private void CheckForDeconstructionAssignmentToSelf(BoundTupleExpression leftTuple, BoundExpression right) 909var rightTuple = (BoundTupleExpression)right; 919if (leftArgument is BoundTupleExpression tupleExpression)
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (6)
37private BoundExpression? RewriteDeconstruction(BoundTupleExpression left, Conversion conversion, BoundExpression right, bool isUsed) 298return ((BoundTupleExpression)right).Arguments; 310return ((BoundTupleExpression)tupleConversion.Operand).Arguments; 443private ArrayBuilder<Binder.DeconstructionVariable> GetAssignmentTargetsAndSideEffects(BoundTupleExpression variables, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> effects) 457var tuple = (BoundTupleExpression)variable;
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (5)
42private bool IsLikeTupleExpression(BoundExpression expr, [NotNullWhen(true)] out BoundTupleExpression? tuple) 46case BoundTupleExpression t: 147if (IsLikeTupleExpression(expr, out BoundTupleExpression? tuple)) 356isNullable = !(expr is BoundTupleExpression) && expr.Type is { } && expr.Type.IsNullableType(); 519if (tuple is BoundTupleExpression tupleExpression)
Lowering\LocalRewriter\LocalRewriter_TupleCreationExpression.cs (2)
25private BoundNode VisitTupleExpression(BoundTupleExpression node) 37private BoundExpression RewriteTupleCreationExpression(BoundTupleExpression node, ImmutableArray<BoundExpression> rewrittenArguments)
Operations\CSharpOperationFactory.cs (2)
215return CreateBoundTupleOperation((BoundTupleExpression)boundNode); 2226internal IOperation CreateBoundTupleOperation(BoundTupleExpression boundTupleExpression, bool createDeclaration = true)