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
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:
NonNull
Weak
- Raw pointers
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