-
Couldn't load subscription status.
- Fork 13.9k
rustdoc: use text-based doctest parsing if a macro is wrapping main #57417
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: use text-based doctest parsing if a macro is wrapping main #57417
Conversation
|
(rust_highfive has picked a reviewer for you, use r? to override) |
|
r? @rust-lang/rustdoc (purposefully unsetting the reviewer) |
|
Thanks! @bors: r+ rollup |
|
📌 Commit dac6eec has been approved by |
|
⌛ Testing commit dac6eec with merge a9a3599fdfe7c5f18ecc4dfb5de8682f9938736d... |
|
💔 Test failed - status-appveyor |
|
@bors retry |
…-parsing, r=GuillaumeGomez rustdoc: use text-based doctest parsing if a macro is wrapping main This is a "forward-port" of rust-lang#57019, intended to get rust-lang#56898 on nightly, since it's now fixed on beta (and already worked on stable). To recap: * The libsyntax-based doctest parsing now checks to see whether there is a top-level macro invocation in the doctest while it's checking for `fn main` and an `extern crate` statement. * If it finds a macro invocation and *didn't* find `fn main`, then it performs the older text-based scan to allow doctests like the ones in `allocator_api` to still compile. A "proper" fix will involve changing how `make_test` works to call it later in the `run_test` function, after the initial steps of compilation have completed. I've filed [a separate issue](rust-lang#57415) for that, though.
Rollup of 26 pull requests Successful merges: - #56425 (Redo the docs for Vec::set_len) - #56906 (Issue #56905) - #57042 (Don't call `FieldPlacement::count` when count is too large) - #57175 (Stabilize `let` bindings and destructuring in constants and const fn) - #57192 (Change std::error::Error trait documentation to talk about `source` instead of `cause`) - #57296 (Fixed the link to the ? operator) - #57368 (Use CMAKE_{C,CXX}_COMPILER_LAUNCHER for ccache) - #57400 (Rustdoc: update Source Serif Pro and replace Heuristica italic) - #57417 (rustdoc: use text-based doctest parsing if a macro is wrapping main) - #57433 (Add link destination for `read-ownership`) - #57434 (Remove `CrateNum::Invalid`.) - #57441 (Supporting backtrace for x86_64-fortanix-unknown-sgx.) - #57450 (actually take a slice in this example) - #57459 (Reference tracking issue for inherent associated types in diagnostic) - #57463 (docs: Fix some 'second-edition' links) - #57466 (Remove outdated comment) - #57493 (use structured suggestion when casting a reference) - #57498 (make note of one more normalization that Paths do) - #57499 (note that FromStr does not work for borrowed types) - #57505 (Remove submodule step from README) - #57510 (Add a profiles section to the manifest) - #57511 (Fix undefined behavior) - #57519 (Correct RELEASES.md for 1.32.0) - #57522 (don't unwrap unexpected tokens in `format!`) - #57530 (Fixing a typographical error.) - #57535 (Stabilise irrefutable if-let and while-let patterns) Failed merges: r? @ghost
This is a "forward-port" of #57019, intended to get #56898 on nightly, since it's now fixed on beta (and already worked on stable).
To recap:
fn mainand anextern cratestatement.fn main, then it performs the older text-based scan to allow doctests like the ones inallocator_apito still compile.A "proper" fix will involve changing how
make_testworks to call it later in therun_testfunction, after the initial steps of compilation have completed. I've filed a separate issue for that, though.