auto merge of #10982 : ezyang/rust/lvalue-def, r=pcwalton

Based off of Niko's proposed definition of lvalues.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
This commit is contained in:
bors 2013-12-15 15:16:28 -08:00
commit 9eb89a6c6e

View file

@ -2177,7 +2177,11 @@ Expressions are divided into two main categories: _lvalues_ and _rvalues_.
Likewise within each expression, sub-expressions may occur in _lvalue context_ or _rvalue context_.
The evaluation of an expression depends both on its own category and the context it occurs within.
[Path](#path-expressions), [field](#field-expressions) and [index](#index-expressions) expressions are lvalues.
An lvalue is an expression that represents a memory location. These
expressions are [paths](#path-expressions) (which refer to local
variables, function and method arguments, or static variables),
dereferences (`*expr`), [indexing expressions](#index-expressions)
(`expr[expr]`), and [field references](#field-expressions) (`expr.f`).
All other expressions are rvalues.
The left operand of an [assignment](#assignment-expressions),