The current rules are really unintuitive, see https://github.com/rust-lang/rust/pull/123590#issuecomment-2144348445. It'd make a good question