| 
1 | 1 | # Destructors  | 
2 | 2 | 
 
  | 
3 | 3 | When an [initialized] [variable] or [temporary] goes out of  | 
4 |  | -[scope](#drop-scopes) its *destructor* is run, or it is *dropped*. [Assignment]  | 
 | 4 | +[scope](#drop-scopes), its *destructor* is run, or it is *dropped*. [Assignment]  | 
5 | 5 | also runs the destructor of its left-hand operand, if it's initialized. If a  | 
6 | 6 | variable has been partially initialized, only its initialized fields are  | 
7 | 7 | dropped.  | 
@@ -154,7 +154,7 @@ temporary variable that holds the result of that expression when used in a  | 
154 | 154 | [place context], unless it is [promoted].  | 
155 | 155 | 
 
  | 
156 | 156 | Apart from lifetime extension, the temporary scope of an expression is the  | 
157 |  | -smallest scope that contains the expression and is for one of the following:  | 
 | 157 | +smallest scope that contains the expression and is one of the following:  | 
158 | 158 | 
 
  | 
159 | 159 | * The entire function body.  | 
160 | 160 | * A statement.  | 
@@ -246,7 +246,8 @@ loop {  | 
246 | 246 | ### Constant promotion  | 
247 | 247 | 
 
  | 
248 | 248 | Promotion of a value expression to a `'static` slot occurs when the expression  | 
249 |  | -could be written in a constant, borrowed, and dereferencing that borrow where  | 
 | 249 | +could be written in a constant and borrowed, and that borrow could be dereferenced  | 
 | 250 | +where  | 
250 | 251 | the expression was originally written, without changing the runtime behavior.  | 
251 | 252 | That is, the promoted expression can be evaluated at compile-time and the  | 
252 | 253 | resulting value does not contain [interior mutability] or [destructors] (these  | 
 | 
0 commit comments