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-3Lines changed: 4 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -142,19 +142,20 @@ requirement of 2.
142
142
143
143
A *place* (called "lvalue" in C and "glvalue" in C++) is the result of computing a [*place expression*][place-value-expr].
144
144
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).
145
-
A place has a type.
146
-
Places cannot be "stored" in memory, only [values](#value) can.
145
+
A place has a type, indicating the type of [values](#value) that it stores.
146
+
Places cannot be "stored" in memory, only values can.
147
147
148
148
The key operations on a place are:
149
149
* storing a [value](#value) of the same type in it (when it is used on the left-hand side of an assignment),
150
-
* turning it into a [pointer value](#value) (when it is used inside `&expr`),
150
+
* turning it into a [pointer value](#value) (when it is used inside `&expr`), which is also the only way to "store" a place,
151
151
* and loading a [value](#value) of the same type from it (through the place-to-value coercion).
152
152
153
153
154
154
#### Value
155
155
156
156
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].
157
157
A value has a type, and it denotes the abstract mathematical concept that is represented by data in our programs.
158
+
158
159
For example, a value of type `u8` is a mathematical integer in the range `0..256`.
159
160
Values can be (according to their type) turned into a list of bytes, which is called a [representation](#representation) of the value.
160
161
Values are ephemeral; they arise during the computation of an instruction but are only ever persisted in memory through their representation.
0 commit comments