-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
rustdoc: generate implementors for all auto traits #60293
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
☔ The latest upstream changes (presumably #60317) made this pull request unmergeable. Please resolve the merge conflicts. |
60a1ef8
to
a5f06e6
Compare
It seems like @eddyb’s changes which landed recently resolved the issue with |
Looks good! Can you add a test that includes a crate-local auto trait to make sure it shows up properly on other types within that crate? |
a5f06e6
to
edc5758
Compare
@QuietMisdreavus updated. Please confirm the added test makes sense. |
☔ The latest upstream changes (presumably #60462) made this pull request unmergeable. Please resolve the merge conflicts. |
edc5758
to
67aa915
Compare
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
67aa915
to
4a5e4da
Compare
ping @QuietMisdreavus ^ |
☔ The latest upstream changes (presumably #60630) made this pull request unmergeable. Please resolve the merge conflicts. |
4a5e4da
to
963184b
Compare
Rebased. Also GitHub is being weird and auto-closing stuff??? |
☔ The latest upstream changes (presumably #61105) made this pull request unmergeable. Please resolve the merge conflicts. |
Please ping me once you have rebased so I can review. :) |
5c07ac9
to
40c9a0a
Compare
Rebased, @GuillaumeGomez. |
Looks all good to me. Considering that it's using rustc internals, I guess someone from the @rust-lang/compiler team should take a look as well? Otherwise r=me. |
@bors r+ |
📌 Commit 40c9a0a0ac470f0fef5fd749bd5279aa54034a2d has been approved by |
Wow, this genuinely looks like a case of a type so composed that a recursion depth of 64 is insufficient. It is feasible to go ahead and "just" increase the limit, however it is not impossible for this to rear its end in the wild either… in which case it would be a regression. Is it possible to do a crater run for a |
⌛ Trying commit 40c9a0a0ac470f0fef5fd749bd5279aa54034a2d with merge 5ee7357c1e9b359a616859f22af499161b68bae2... |
💔 Test failed - checks-travis |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Note that there are currently pending changes (see #61472 / #60444) that seemingly will force crates to increase their recursion limit to be able to run rustdoc, so this might be generally allowed. |
A-ha. I guess all I have to do is to wait for @nikomatsakis to fix it then. (I could not easily get documentation to get built locally for some reason…) |
☔ The latest upstream changes (presumably #61722) made this pull request unmergeable. Please resolve the merge conflicts. |
Previously we would only generate a list of synthetic implementations for two well known traits – Send and Sync. With this patch all the auto traits known to rustc are considered. This includes such traits like Unpin and user’s own traits. Sadly the implementation still iterates through the list of crate items and checks them against the traits, which for non-std crates containing their own auto-traits will still not include types defined in std/core. It is an improvement nontheless.
40c9a0a
to
4c8d00a
Compare
@bors try |
rustdoc: generate implementors for all auto traits Previously we would only generate a list of synthetic implementations for two well known traits – Send and Sync. With this patch all the auto traits known to rustc are considered. This includes such traits like Unpin and user’s own traits. Sadly the implementation still iterates through the list of crate items and checks them against the traits, which for non-std crates containing their own auto-traits will still not include types defined in std/core. It is an improvement nontheless.
☀️ Try build successful - checks-travis |
@bors r=eddyb |
📌 Commit 4c8d00a has been approved by |
rustdoc: generate implementors for all auto traits Previously we would only generate a list of synthetic implementations for two well known traits – Send and Sync. With this patch all the auto traits known to rustc are considered. This includes such traits like Unpin and user’s own traits. Sadly the implementation still iterates through the list of crate items and checks them against the traits, which for non-std crates containing their own auto-traits will still not include types defined in std/core. It is an improvement nontheless.
☀️ Test successful - checks-travis, status-appveyor |
Previously we would only generate a list of synthetic implementations
for two well known traits – Send and Sync. With this patch all the auto
traits known to rustc are considered. This includes such traits like
Unpin and user’s own traits.
Sadly the implementation still iterates through the list of crate items
and checks them against the traits, which for non-std crates containing
their own auto-traits will still not include types defined in std/core.
It is an improvement nontheless.