Auto merge of #13615 - GnomedDev:document-constevalctx-point, r=Alexendoo

Explain why clippy's HIR const eval exists

When I initially found this, I was wondering why clippy wasn't just using miri, but after some discussion with some rustc folks let's document why.

changelog: none
This commit is contained in:
bors 2024-11-01 13:39:21 +00:00
commit c782988378

View File

@ -1,3 +1,7 @@
//! A simple const eval API, for use on arbitrary HIR expressions.
//!
//! This cannot use rustc's const eval, aka miri, as arbitrary HIR expressions cannot be lowered to
//! executable MIR bodies, so we have to do this instead.
#![allow(clippy::float_cmp)] #![allow(clippy::float_cmp)]
use crate::macros::HirNode; use crate::macros::HirNode;
@ -379,6 +383,8 @@ fn cmp_s_u(s: i128, u: u128) -> Ordering {
/// The context required to evaluate a constant expression. /// The context required to evaluate a constant expression.
/// ///
/// This is currently limited to constant folding and reading the value of named constants. /// This is currently limited to constant folding and reading the value of named constants.
///
/// See the module level documentation for some context.
pub struct ConstEvalCtxt<'tcx> { pub struct ConstEvalCtxt<'tcx> {
tcx: TyCtxt<'tcx>, tcx: TyCtxt<'tcx>,
param_env: ParamEnv<'tcx>, param_env: ParamEnv<'tcx>,