@@ -334,7 +334,7 @@ The Rust type system is primarily structural, and contains the standard
334
334
assortment of useful ``algebraic'' type constructors from functional
335
335
languages, such as function types, tuples, record types, vectors, and
336
336
nominally-tagged disjoint unions. Such values may be @emph {pattern-matched } in
337
- an @code {alt } statement .
337
+ an @code {alt } expression .
338
338
339
339
@sp 1
340
340
@item Generic code
@@ -394,8 +394,8 @@ the surrounding text by skipping over the bracketed ``extension text''.
394
394
@sp 1
395
395
@item Idempotent failure
396
396
397
- If a task fails due to a signal, or if it executes the special @code {fail }
398
- statement , it enters the @emph {failing } state. A failing task unwinds its
397
+ If a task fails due to a signal, or if it evaluates the special @code {fail }
398
+ expression , it enters the @emph {failing } state. A failing task unwinds its
399
399
control stack, frees all of its owned resources (executing destructors) and
400
400
enters the @emph {dead } state. Failure is idempotent and non-recoverable.
401
401
@@ -1486,8 +1486,8 @@ operating-system processes.
1486
1486
@cindex Port
1487
1487
@cindex Channel
1488
1488
@cindex Message passing
1489
- @cindex Send statement
1490
- @cindex Receive statement
1489
+ @cindex Send expression
1490
+ @cindex Receive expression
1491
1491
1492
1492
With the exception of @emph {unsafe } constructs, Rust tasks are isolated from
1493
1493
interfering with one another's memory directly. Instead of manipulating shared
@@ -1563,14 +1563,14 @@ A task begins its lifecycle -- once it has been spawned -- in the
1563
1563
function, and any functions called by the entry function.
1564
1564
1565
1565
A task may transition from the @emph {running } state to the @emph {blocked }
1566
- state any time it executes a communication statement on a port or channel that
1567
- cannot be immediately completed. When the communication statement can be
1566
+ state any time it evaluates a communication expression on a port or channel that
1567
+ cannot be immediately completed. When the communication expression can be
1568
1568
completed -- when a message arrives at a sender, or a queue drains
1569
1569
sufficiently to complete a semi-synchronous send -- then the blocked task will
1570
1570
unblock and transition back to @emph {running }.
1571
1571
1572
1572
A task may transition to the @emph {failing } state at any time, due to an
1573
- un-trapped signal or the execution of a @code {fail } statement . Once
1573
+ un-trapped signal or the evaluation of a @code {fail } expression . Once
1574
1574
@emph {failing }, a task unwinds its stack and transitions to the @emph {dead }
1575
1575
state. Unwinding the stack of a task is done by the task itself, on its own
1576
1576
control stack. If a value with a destructor is freed during unwinding, the
0 commit comments