76 references to ExprContext
Microsoft.CodeAnalysis.CSharp (76)
CodeGen\Optimizer.cs (76)
398private readonly ArrayBuilder<(BoundExpression, ExprContext)> _evalStack; 401private ExprContext _context; 419ArrayBuilder<ValueTuple<BoundExpression, ExprContext>> evalStack, 436var evalStack = ArrayBuilder<ValueTuple<BoundExpression, ExprContext>>.GetInstance(); 452result = VisitExpression(expr, ExprContext.Value); 462private BoundExpression VisitExpressionCore(BoundExpression node, ExprContext context) 464var prevContext = _context; 478case ExprContext.Sideeffects: 482case ExprContext.AssignmentTarget: 485case ExprContext.Value: 486case ExprContext.Address: 487case ExprContext.Box: 499private BoundExpression VisitExpression(BoundExpression node, ExprContext context) 519private BoundExpression VisitExpressionCoreWithStackGuard(BoundExpression node, ExprContext context) 540private void PushEvalStack(BoundExpression result, ExprContext context) 542Debug.Assert(result != null || context == ExprContext.None); 575var prevContext = _context; 595var context = _context == ExprContext.Sideeffects && !node.ConversionHasSideEffects() ? 596ExprContext.Sideeffects : 597ExprContext.Value; 604var context = _context == ExprContext.Sideeffects ? 605ExprContext.Sideeffects : 606ExprContext.Value; 694if (_context == ExprContext.Sideeffects) 717var origContext = _context; 726var rewrittenSideeffect = this.VisitExpression(sideeffect, ExprContext.Sideeffects); 847this.VisitExpression(node.Expression, ExprContext.Sideeffects)); 856case ExprContext.Address: 867case ExprContext.AssignmentTarget: 876case ExprContext.Sideeffects: 885case ExprContext.Value: 886case ExprContext.Box: 921ExprContext.Address : 922ExprContext.AssignmentTarget); 928Debug.Assert(_context != ExprContext.AssignmentTarget, "assignment expression cannot be a target of another assignment"); 930ExprContext rhsContext; 931if (node.IsRef || _context == ExprContext.Address) 934rhsContext = ExprContext.Address; 938Debug.Assert(_context == ExprContext.Value || 939_context == ExprContext.Box || 940_context == ExprContext.Sideeffects, "assignment expression cannot be a target of another assignment"); 942rhsContext = ExprContext.Value; 956PushEvalStack(null, ExprContext.None); 986(_context == ExprContext.Address || _context == ExprContext.Value)) 1163ExprContext context; 1170context = ExprContext.Box; 1175context = ExprContext.Value; 1181context = ExprContext.Address; 1207ExprContext context = (argRefKind == RefKind.None) ? ExprContext.Value : ExprContext.Address; 1245var rewrittenOperand = VisitExpression(node.Operand, ExprContext.Address); 1263var oldContext = _context; 1264_context = ExprContext.Value; 1284receiver = VisitExpression(receiver, ExprContext.Box); 1291_context == ExprContext.AssignmentTarget || 1292_context == ExprContext.Address || 1295receiver = VisitExpression(receiver, ExprContext.Address); 1299receiver = VisitExpression(receiver, ExprContext.Value); 1387BoundExpression condition = this.VisitExpression(node.Condition, ExprContext.Value); 1391var context = node.IsRef ? ExprContext.Address : ExprContext.Value; 1434var prevContext = _context; 1470PushEvalStack(binary, ExprContext.Value); 1555PushEvalStack(null, ExprContext.None); 1591PushEvalStack(new BoundDefaultExpression(node.Syntax, node.Operand.Type), ExprContext.Value); 1626PushEvalStack(null, ExprContext.None); 1637exceptionSourceOpt = VisitExpression(exceptionSourceOpt, ExprContext.AssignmentTarget); 1702var rewrittenInitializer = this.VisitExpression(initializer, ExprContext.Value); 1724BoundExpression visitedOperand = this.VisitExpression(node.Operand, ExprContext.Address); 1868return top.Item2 == (local.RefKind == RefKind.None ? ExprContext.Value : ExprContext.Address) &&