Skip to content

Commit e257f39

Browse files
committed
manual: add section for unary move expressions.
1 parent 009cf53 commit e257f39

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

doc/rust.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1919,6 +1919,20 @@ mutate(copy v); // Pass a copy
19191919
assert v[0] == 1; // Original was not modified
19201920
~~~~
19211921

1922+
### Unary move expressions
1923+
1924+
~~~~~~~~{.ebnf .gram}
1925+
move_expr : "move" expr ;
1926+
~~~~~~~~
1927+
1928+
A _unary move expression_ is similar to a [unary copy](#unary-copy-expressions) expression,
1929+
except that it can only be applied to an [lvalue](#lvalues-rvalues-and-temporaries),
1930+
and it performs a _move_ on its operand, rather than a copy.
1931+
That is, the memory location denoted by its operand is de-initialized after evaluation,
1932+
and the resulting value is a shallow copy of the operand,
1933+
even if the operand is an [owning type](#type-kinds).
1934+
1935+
19221936
### Call expressions
19231937

19241938
~~~~~~~~ {.abnf .gram}

0 commit comments

Comments
 (0)