@@ -185,7 +185,7 @@ features of Rust, relative to other languages.
185
185
The initialization state of every slot is statically computed as part of the
186
186
typestate system (see below), and requires that all slots are initialized
187
187
before use. There is no @code {null } value; uninitialized slots are
188
- uninitialized, and can only be written to, not read.
188
+ uninitialized and can only be written to, not read.
189
189
190
190
The common use for @code {null } in other languages -- as a sentinel value -- is
191
191
subsumed into the more general facility of disjoint union types. A program
@@ -197,10 +197,10 @@ must explicitly model its use of such types.
197
197
Like many @emph {actor } languages, Rust provides an isolation (and concurrency)
198
198
model based on lightweight tasks scheduled by the language runtime. These
199
199
tasks are very inexpensive and statically unable to manipulate one another's
200
- local memory. Breaking the rule of task isolation is only possible by calling
200
+ local memory. Breaking the rule of task isolation is possible only by calling
201
201
external (C/C++) code.
202
202
203
- Inter-task communication is typed, asynchronous and simplex, based on passing
203
+ Inter-task communication is typed, asynchronous, and simplex, based on passing
204
204
messages over channels to ports.
205
205
206
206
@sp 1
@@ -1136,7 +1136,7 @@ module bar @{
1136
1136
@end example
1137
1137
1138
1138
In future versions of Rust, user-provided extensions to the compiler will be able
1139
- to use interpret attributes. When this facility is provided, a distinction will be
1139
+ to interpret attributes. When this facility is provided, a distinction will be
1140
1140
made between language-reserved and user-available attributes.
1141
1141
1142
1142
At present, only the Rust compiler interprets attributes, so all attribute
@@ -1328,13 +1328,13 @@ Local slots are always implicitly mutable.
1328
1328
Local slots are not initialized when allocated; the entire frame worth of
1329
1329
local slots are allocated at once, on frame-entry, in an uninitialized
1330
1330
state. Subsequent statements within a function may or may not initialize the
1331
- local slots. Local slots can only be used after they have been initialized;
1331
+ local slots. Local slots can be used only after they have been initialized;
1332
1332
this condition is guaranteed by the typestate system.
1333
1333
1334
1334
References are created for function arguments. If the compiler can not prove
1335
1335
that the referred-to value will outlive the reference, it will try to set
1336
1336
aside a copy of that value to refer to. If this is not sematically safe (for
1337
- example, if the referred-to value contains mutable fields), it reject the
1337
+ example, if the referred-to value contains mutable fields), it will reject the
1338
1338
program. If the compiler deems copying the value expensive, it will warn.
1339
1339
1340
1340
A function can be declared to take an argument by mutable reference. This
@@ -1996,7 +1996,7 @@ The output type of an iterator is the type of value that the function will
1996
1996
@code {put }, before it eventually evaluates a @code {ret } or @code {be } expression
1997
1997
of type @code {() } and completes its execution.
1998
1998
1999
- An iterator can only be called in the loop header of a matching @code {for
1999
+ An iterator can be called only in the loop header of a matching @code {for
2000
2000
each } loop or as the argument in a @code {put each } expression.
2001
2001
@xref {Ref.Expr.Foreach }.
2002
2002
@@ -2108,10 +2108,10 @@ The constructors of a @code{tag} type may be recursive: that is, each constructo
2108
2108
may take an argument that refers, directly or indirectly, to the tag type the constructor
2109
2109
is a member of. Such recursion has restrictions:
2110
2110
@itemize
2111
- @item Recursive types can only be introduced through @code {tag } constructors.
2111
+ @item Recursive types can be introduced only through @code {tag } constructors.
2112
2112
@item A recursive @code {tag } item must have at least one non-recursive
2113
2113
constructor (in order to give the recursion a basis case).
2114
- @item The recursively argument of recursive tag constructors must be @emph {box }
2114
+ @item The recursive argument of recursive tag constructors must be @emph {box }
2115
2115
values (in order to bound the in-memory size of the constructor).
2116
2116
@item Recursive type definitions can cross module boundaries, but not module
2117
2117
@emph {visibility } boundaries, nor crate boundaries (in order to simplify the
@@ -2360,7 +2360,7 @@ values similar to the record type-constructor. The differences are as follows:
2360
2360
2361
2361
@itemize
2362
2362
@item tuple elements cannot be mutable, unlike record fields
2363
- @item tuple elements are not named, and can only be accessed by pattern-matching
2363
+ @item tuple elements are not named and can be accessed only by pattern-matching
2364
2364
@end itemize
2365
2365
2366
2366
Tuple types and values are denoted by listing the types or values of
0 commit comments