External Publication
Visit Post

Pre-RFC: Unsafe traits conditionally depending on safe trait behaviour

Rust Internals [Unofficial] May 27, 2026
Source

My problem with this is that #[unsafe(has_preconditions(Allocator))] introduces an obligation, but is too close of a syntax to #[unsafe(satisfies_preconditions(Allocator))] which discharges an obligation (opposite polarity).

unsafe fn and unsafe { .. } is the more frequent confusion, but at least one has braces and the other doesn't, and one is applied to an item and the other is an expression.. so it feels different in a way that #[unsafe(..something)] doesn't.

But I guess this ship sailed. (unsafe trait / unsafe impl is just as confusable)

Discussion in the ATmosphere

Loading comments...