Skip to content

Add explanation for &mut self method call when expecting -> Self #75613

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 18, 2020

Conversation

estebank
Copy link
Contributor

When a user tries to use a method as if it returned a new value of the
same type as its receiver, we will emit a type error. Try to detect this
and provide extra explanation that the method modifies the receiver
in-place.

This has confused people in the wild, like in
https://users.rust-lang.org/t/newbie-why-the-commented-line-stops-the-snippet-from-compiling/47322

When a user tries to use a method as if it returned a new value of the
same type as its receiver, we will emit a type error. Try to detect this
and provide extra explanation that the method modifies the receiver
in-place.

This has confused people in the wild, like in
https://users.rust-lang.org/t/newbie-why-the-commented-line-stops-the-snippet-from-compiling/47322
@rust-highfive
Copy link
Contributor

r? @petrochenkov

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 17, 2020
@petrochenkov
Copy link
Contributor

If rustc_typeck had a diagnostics.rs, then I'd suggest to move it there, but unfortunately it doesn't.
@bors r+

@bors
Copy link
Collaborator

bors commented Aug 17, 2020

📌 Commit ac73474 has been approved by petrochenkov

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 17, 2020
bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 18, 2020
Rollup of 8 pull requests

Successful merges:

 - rust-lang#75389 (attempt to improve span_label docs)
 - rust-lang#75392 (Add `as_uninit`-like methods to pointer types and unify documentation of `as_ref` methods)
 - rust-lang#75464 (Move to intra doc links for ascii.rs and panic.rs)
 - rust-lang#75578 (Allowing raw ptr dereference in const fn)
 - rust-lang#75613 (Add explanation for `&mut self` method call when expecting `-> Self`)
 - rust-lang#75626 (Clean up E0754 explanation)
 - rust-lang#75629 (Use intra-doc links in `std::env`, `std::alloc` and `std::error`)
 - rust-lang#75634 (Mark x86_64-linux-kernel as *)

Failed merges:

r? @ghost
@bors bors merged commit 48da675 into rust-lang:master Aug 18, 2020
@estebank estebank deleted the explain-mut-method branch November 9, 2023 05:16
@cuviper cuviper added this to the 1.47.0 milestone May 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants