-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Suggest appropriate path when calling associated item on bare types #60045
Conversation
r? @varkor (rust_highfive has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
src/librustc_resolve/lib.rs
Outdated
span, | ||
CrateLint::No, | ||
) { | ||
PathResult::Module(_) | PathResult::NonModule(_) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if let
can be used here
Could you revert the changes to r=me after that |
@petrochenkov is it ok if I leave the reformatting of signatures to the current style? |
Rustfmt is going to do that anyway, but yeah, it's probably ok to leave them. |
@bors r=petrochenkov |
📌 Commit 94e5ec1 has been approved by |
Suggest appropriate path when calling associated item on bare types When looking at the documentation for `std::f32` or `std::str`, for example, it is easy to get confused and assume `std::f32` and `f32` are the same thing. Because of this, it is not uncommon to attempt writing `f32::consts::PI` instead of the correct `std::f32::consts::PI`. When encountering the former, which results in an access error due to it being an inexistent path, try to access the same path under `std`. If this succeeds, this information is stored for later tweaking of the final E0599 to provide an appropriate suggestion. Fix rust-lang#26760, fix rust-lang#46660.
Suggest appropriate path when calling associated item on bare types When looking at the documentation for `std::f32` or `std::str`, for example, it is easy to get confused and assume `std::f32` and `f32` are the same thing. Because of this, it is not uncommon to attempt writing `f32::consts::PI` instead of the correct `std::f32::consts::PI`. When encountering the former, which results in an access error due to it being an inexistent path, try to access the same path under `std`. If this succeeds, this information is stored for later tweaking of the final E0599 to provide an appropriate suggestion. Fix rust-lang#26760, fix rust-lang#46660.
Failed in #60100 (comment), @bors r- |
When looking at the documentation for `std::f32` or `std::str`, for example, it is easy to get confused and assume `std::f32` and `f32` are the same thing. Because of this, it is not uncommon to attempt writing `f32::consts::PI` instead of the correct `std::f32::consts::PI`. When encountering the former, which results in an access error due to it being an inexistent path, try to access the same path under `std`. If this succeeds, this information is stored for later tweaking of the final E0599 to provide an appropriate suggestion. This suggestion applies to both E0233 and E0599 and is only checked when the first ident of a path corresponds to a primitive type.
@bors r=petrochenkov rebased |
📌 Commit 6aa4c99 has been approved by |
Suggest appropriate path when calling associated item on bare types When looking at the documentation for `std::f32` or `std::str`, for example, it is easy to get confused and assume `std::f32` and `f32` are the same thing. Because of this, it is not uncommon to attempt writing `f32::consts::PI` instead of the correct `std::f32::consts::PI`. When encountering the former, which results in an access error due to it being an inexistent path, try to access the same path under `std`. If this succeeds, this information is stored for later tweaking of the final E0599 to provide an appropriate suggestion. Fix rust-lang#26760, fix rust-lang#46660.
Rollup of 16 pull requests Successful merges: - #59915 (Implement event filtering for self-profiler.) - #59933 (Make clear that format padding doesn't work for Debug) - #60023 (implement specialized nth_back() for Bytes, Fuse and Enumerate) - #60032 (Remove unwanted z-index change) - #60041 (Simplify the returning of a Result a bit) - #60045 (Suggest appropriate path when calling associated item on bare types) - #60052 (Correct unused parameter diagnostic) - #60056 (Update rustfmt to 1.2.1) - #60060 (whitelist RTM x86 target cpu feature) - #60061 (Change suggestion of field when not in self context) - #60064 (Point at try `?` on errors affecting the err match arm of the desugared code) - #60078 (Use more realistic example for thread builder) - #60080 (Fix small errors in docs for `rchunks_exact` and `rchunks_exact_mut`.) - #60082 (Update miri) - #60097 (Use -mergefunc-use-aliases for any LLVM >= 8) - #60098 (libcore: deny `elided_lifetimes_in_paths`) Failed merges: r? @ghost
When looking at the documentation for
std::f32
orstd::str
, forexample, it is easy to get confused and assume
std::f32
andf32
are the same thing. Because of this, it is not uncommon to attempt
writing
f32::consts::PI
instead of the correctstd::f32::consts::PI
. When encountering the former, which resultsin an access error due to it being an inexistent path, try to access
the same path under
std
. If this succeeds, this information isstored for later tweaking of the final E0599 to provide an
appropriate suggestion.
Fix #26760, fix #46660.