Arbitrary self types v2: adjust diagnostic. by adetaylor · Pull Request #134262 · rust-lang/rust (original) (raw)

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request

Dec 15, 2024

@rust-timer

Rollup merge of rust-lang#134264 - adetaylor:weak-and-nonnull, r=compiler-errors

Arbitrary self types v2: Weak & NonNull diagnostics

This builds on top of rust-lang#134262 which is more urgent to review and merge first. I'll likely rebase this PR once that lands.

This is the first part of the diagnostic enhancements planned for Arbitrary Self Types v2.

Various types can be used as method receivers, such as Rc<>, Box<> and Arc<>. The arbitrary self types v2 work allows further types to be made method receivers by implementing the Receiver trait.

With that in mind, it may come as a surprise to people when certain common types do not implement Receiver and thus cannot be used as a method receiver.

The RFC for arbitrary self types v2 therefore proposes emitting specific lint hints for these cases:

The code already emits a hint for this third case, in that it advises folks that the arbitrary_self_types_pointers feature may meet their need. This PR adds diagnostic hints for the Weak and NonNull cases.

Tracking issue rust-lang#44874

r? @wesleywiser