rust/compiler/rustc_hir_analysis/src
Stuart Cook 380ad1b5d4
Rollup merge of #138374 - celinval:issue-136925-const-contract, r=compiler-errors,oli-obk,RalfJung
Enable contracts for const functions

Use `const_eval_select!()` macro to enable contract checking only at runtime. The existing contract logic relies on closures, which are not supported in constant functions.

This commit also removes one level of indirection for ensures clauses since we no longer build a closure around the ensures predicate.

Resolves #136925

**Call-out:** This is still a draft PR since CI is broken due to a new warning message for unreachable code when the bottom of the function is indeed unreachable. It's not clear to me why the warning wasn't triggered before.

r? ```@compiler-errors```
2025-04-15 15:47:24 +10:00
..
check Rollup merge of #138374 - celinval:issue-136925-const-contract, r=compiler-errors,oli-obk,RalfJung 2025-04-15 15:47:24 +10:00
coherence clean code: remove Deref<Target=RegionKind> impl for Region and use .kind() 2025-04-08 10:51:41 +08:00
collect Rollup merge of #139510 - nnethercote:name-to-ident, r=fee1-dead 2025-04-10 17:27:14 +02:00
errors Remove the Option part of range ends in the HIR 2025-03-06 10:47:40 +00:00
hir_ty_lowering Rename some name variables as ident. 2025-04-10 09:30:55 +10:00
impl_wf_check Fix a comment typo. 2025-01-31 08:28:14 +11:00
outlives Rollup merge of #139509 - xizheyin:issue-139359, r=lcnr 2025-04-08 18:05:34 +02:00
variance Auto merge of #139552 - matthiaskrgr:rollup-b194mk8, r=matthiaskrgr 2025-04-09 05:39:18 +00:00
autoderef.rs Rename structurally_normalize to structurally_normalize_ty 2025-01-22 07:04:53 +00:00
check_unused.rs Move methods from Map to TyCtxt, part 4. 2025-03-12 08:55:37 +11:00
collect.rs Rollup merge of #139510 - nnethercote:name-to-ident, r=fee1-dead 2025-04-10 17:27:14 +02:00
constrained_generic_params.rs clean code: remove Deref<Target=RegionKind> impl for Region and use .kind() 2025-04-08 10:51:41 +08:00
delegation.rs Stop relying on rustc_type_ir in non-type-system crates 2025-03-15 06:42:48 +00:00
errors.rs Rename some name variables as ident. 2025-04-10 09:30:55 +10:00
hir_wf_check.rs Don't construct preds w escaping bound vars in diagnostic_hir_wf_check 2025-04-04 21:09:32 +00:00
impl_wf_check.rs Rename tcx.ensure() to tcx.ensure_ok() 2025-02-01 12:38:54 +11:00
lib.rs Remove recursion_limit increases. 2025-04-02 16:25:27 +11:00