rust/compiler/rustc_trait_selection/src
Matthias Krüger 2fd3007cbc
Rollup merge of #130514 - compiler-errors:unsafe-binders, r=oli-obk
Implement MIR lowering for unsafe binders

This is the final bit of the unsafe binders puzzle. It implements MIR, CTFE, and codegen for unsafe binders, and enforces that (for now) they are `Copy`. Later on, I'll introduce a new trait that relaxes this requirement to being "is `Copy` or `ManuallyDrop<T>`" which more closely models how we treat union fields.

Namely, wrapping unsafe binders is now `Rvalue::WrapUnsafeBinder`, which acts much like an `Rvalue::Aggregate`. Unwrapping unsafe binders are implemented as a MIR projection `ProjectionElem::UnwrapUnsafeBinder`, which acts much like `ProjectionElem::Field`.

Tracking:
- https://github.com/rust-lang/rust/issues/130516
2025-02-01 16:41:03 +01:00
..
error_reporting Auto merge of #136350 - matthiaskrgr:rollup-6eqfyvh, r=matthiaskrgr 2025-01-31 20:16:46 +00:00
errors introduce LateParamRegionKind 2024-12-18 16:05:44 +01:00
solve Manually walk into WF obligations in BestObligation proof tree visitor 2025-01-31 18:21:58 +00:00
traits Rollup merge of #130514 - compiler-errors:unsafe-binders, r=oli-obk 2025-02-01 16:41:03 +01:00
errors.rs Rework rustc_dump_vtable 2025-01-30 15:30:04 +00:00
infer.rs Suggest Semicolon in Incorrect Repeat Expressions 2024-12-21 02:30:50 +00:00
lib.rs consistently handle global where-bounds 2024-12-17 08:50:47 +01:00
regions.rs Move param env bound deep normalization to OutlivesEnvironment building 2025-01-28 19:11:05 +00:00
solve.rs impossible obligations check fast path 2024-10-10 06:09:50 -04:00