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
1 changed files with 5 additions and 1 deletions

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_. 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. 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. All other expressions are rvalues.
The left operand of an [assignment](#assignment-expressions), The left operand of an [assignment](#assignment-expressions),