]> git.lizzy.rs Git - rust.git/commitdiff
Move the explanation why adjust_global_const is called for all constants.
authorVytautas Astrauskas <astrauv@amazon.com>
Thu, 16 Apr 2020 15:09:42 +0000 (08:09 -0700)
committerVytautas Astrauskas <astrauv@amazon.com>
Thu, 16 Apr 2020 15:09:42 +0000 (08:09 -0700)
src/librustc_mir/interpret/operand.rs

index 450d5500cfd5694d559ee4d2d1cdd825d0c8f9fe..678a81bc534fcfb9f3b9ae77eb7fba2aefae027e 100644 (file)
@@ -528,6 +528,10 @@ pub(super) fn eval_operands(
                 // potentially requiring the current static to be evaluated again. This is not a
                 // problem here, because we are building an operand which means an actual read is
                 // happening.
+                //
+                // The machine callback `adjust_global_const` below is guaranteed to
+                // be called for all constants because `const_eval` calls
+                // `eval_const_to_op` recursively.
                 return Ok(self.const_eval(GlobalId { instance, promoted }, val.ty)?);
             }
             ty::ConstKind::Infer(..)
@@ -539,9 +543,7 @@ pub(super) fn eval_operands(
         };
         // This call allows the machine to create fresh allocation ids for
         // thread-local statics (see the `adjust_global_const` function
-        // documentation). Please note that the `const_eval` call in the early
-        // return above calls `eval_const_to_op` again, so `adjust_global_const`
-        // is guaranteed to be called for all constants.
+        // documentation).
         let val_val = M::adjust_global_const(self, val_val)?;
         // Other cases need layout.
         let layout = from_known_layout(self.tcx, layout, || self.layout_of(val.ty))?;