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) &&