You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: reference/src/glossary.md
+4-3
Original file line number
Diff line number
Diff line change
@@ -181,19 +181,20 @@ requirement of 2.
181
181
182
182
A *place* (called "lvalue" in C and "glvalue" in C++) is the result of computing a [*place expression*][place-value-expr].
183
183
A place is basically a pointer (pointing to some location in memory, potentially carrying [provenance](#pointer-provenance)), but might contain more information such as size or alignment (the details will have to be determined as the Rust Abstract Machine gets specified more precisely).
184
-
A place has a type.
185
-
Places cannot be "stored" in memory, only [values](#value) can.
184
+
A place has a type, indicating the type of [values](#value) that it stores.
185
+
Places cannot be "stored" in memory, only values can.
186
186
187
187
The key operations on a place are:
188
188
* storing a [value](#value) of the same type in it (when it is used on the left-hand side of an assignment),
189
-
* turning it into a [pointer value](#value) (when it is used inside `&expr`),
189
+
* turning it into a [pointer value](#value) (when it is used inside `&expr`), which is also the only way to "store" a place,
190
190
* and loading a [value](#value) of the same type from it (through the place-to-value coercion).
191
191
192
192
193
193
#### Value
194
194
195
195
A *value* (called "value of the expression" or "rvalue" in C and "prvalue" in C++) is what gets stored in a [place](#place), and also the result of computing a [*value expression*][place-value-expr].
196
196
A value has a type, and it denotes the abstract mathematical concept that is represented by data in our programs.
197
+
197
198
For example, a value of type `u8` is a mathematical integer in the range `0..256`.
198
199
Values can be (according to their type) turned into a list of bytes, which is called a [representation](#representation) of the value.
199
200
Values are ephemeral; they arise during the computation of an instruction but are only ever persisted in memory through their representation.
0 commit comments