]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_mir/interpret/operand.rs
Revert const_eval call to use const_eval_raw to avoid const validation cycles
[rust.git] / src / librustc_mir / interpret / operand.rs
index ddd9776e89383e485d406f8f8150d992e57483ad..94a774d646a7584d67aacbada6a7ab4e9c04ca24 100644 (file)
@@ -542,7 +542,12 @@ pub(super) fn eval_operands(
                 // happening.
                 // FIXME(oli-obk): eliminate all the `const_eval_raw` usages when we get rid of
                 // `StaticKind` once and for all.
-                return self.const_eval(GlobalId { instance, promoted: None });
+                // FIXME the following line should have been:
+                // return self.const_eval(GlobalId { instance, promoted });
+                // but since the addition of Promoteds being Constants is causing const validation
+                // cycles. Promoteds being Constants exercise const validation more often and it
+                // may have made show up a pre-existing bug.
+                return Ok(OpTy::from(self.const_eval_raw(GlobalId { instance, promoted })?));
             }
             ty::ConstKind::Infer(..)
             | ty::ConstKind::Bound(..)