78 references to ExprContext
Microsoft.CodeAnalysis.CSharp (78)
CodeGen\Optimizer.cs (78)
397private readonly ArrayBuilder<(BoundExpression, ExprContext)> _evalStack; 400private ExprContext _context; 418ArrayBuilder<ValueTuple<BoundExpression, ExprContext>> evalStack, 435var evalStack = ArrayBuilder<ValueTuple<BoundExpression, ExprContext>>.GetInstance(); 451result = VisitExpression(expr, ExprContext.Value); 461private BoundExpression VisitExpressionCore(BoundExpression node, ExprContext context) 463var prevContext = _context; 477case ExprContext.Sideeffects: 481case ExprContext.AssignmentTarget: 484case ExprContext.Value: 485case ExprContext.Address: 486case ExprContext.Box: 498private BoundExpression VisitExpression(BoundExpression node, ExprContext context) 518private BoundExpression VisitExpressionCoreWithStackGuard(BoundExpression node, ExprContext context) 539private void PushEvalStack(BoundExpression result, ExprContext context) 541Debug.Assert(result != null || context == ExprContext.None); 574var prevContext = _context; 594var context = _context == ExprContext.Sideeffects && !node.ConversionHasSideEffects() ? 595ExprContext.Sideeffects : 596ExprContext.Value; 603var context = _context == ExprContext.Sideeffects ? 604ExprContext.Sideeffects : 605ExprContext.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)) 1201ExprContext context = GetReceiverContext(receiver); 1227private static ExprContext GetReceiverContext(BoundExpression receiver) 1230ExprContext context; 1237context = ExprContext.Box; 1242context = ExprContext.Value; 1248context = ExprContext.Address; 1273ExprContext context = (argRefKind == RefKind.None) ? ExprContext.Value : ExprContext.Address; 1311var rewrittenOperand = VisitExpression(node.Operand, ExprContext.Address); 1329var oldContext = _context; 1330_context = ExprContext.Value; 1350receiver = VisitExpression(receiver, ExprContext.Box); 1357_context == ExprContext.AssignmentTarget || 1358_context == ExprContext.Address || 1361receiver = VisitExpression(receiver, ExprContext.Address); 1365receiver = VisitExpression(receiver, ExprContext.Value); 1453BoundExpression condition = this.VisitExpression(node.Condition, ExprContext.Value); 1457var context = node.IsRef ? ExprContext.Address : ExprContext.Value; 1500var prevContext = _context; 1536PushEvalStack(binary, ExprContext.Value); 1621PushEvalStack(null, ExprContext.None); 1657PushEvalStack(new BoundDefaultExpression(node.Syntax, node.Operand.Type), ExprContext.Value); 1692PushEvalStack(null, ExprContext.None); 1703exceptionSourceOpt = VisitExpression(exceptionSourceOpt, ExprContext.AssignmentTarget); 1768var rewrittenInitializer = this.VisitExpression(initializer, ExprContext.Value); 1790BoundExpression visitedOperand = this.VisitExpression(node.Operand, ExprContext.Address); 1934return top.Item2 == (local.RefKind == RefKind.None ? ExprContext.Value : ExprContext.Address) &&