Skip to content

rustdoc: use text-based doctest parsing if a macro is wrapping main - #57417

Merged
bors merged 1 commit into
rust-lang:masterfrom
QuietMisdreavus:semi-revert-doctest-parsing
Jan 12, 2019
Merged

rustdoc: use text-based doctest parsing if a macro is wrapping main#57417
bors merged 1 commit into
rust-lang:masterfrom
QuietMisdreavus:semi-revert-doctest-parsing

Conversation

@QuietMisdreavus

@QuietMisdreavusQuietMisdreavus commented Jan 7, 2019

Copy link
Copy Markdown
Contributor

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:

  • 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 for that, though.

@rust-highfive

Copy link
Copy Markdown
Contributor

r? @steveklabnik

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

@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 7, 2019
@QuietMisdreavus

Copy link
Copy Markdown
ContributorAuthor

r? @rust-lang/rustdoc

(purposefully unsetting the reviewer)

@GuillaumeGomez

Copy link
Copy Markdown
Member

Thanks!

@bors: r+ rollup

@bors

bors commented Jan 8, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit dac6eec has been approved by GuillaumeGomez

@borsbors 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 Jan 8, 2019
@bors

bors commented Jan 10, 2019

Copy link
Copy Markdown
Collaborator

⌛ Testing commit dac6eec with merge a9a3599fdfe7c5f18ecc4dfb5de8682f9938736d...

@bors

bors commented Jan 10, 2019

Copy link
Copy Markdown
Collaborator

💔 Test failed - status-appveyor

@borsbors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 10, 2019
@emilyalbini

Copy link
Copy Markdown
Member

@bors retry
AppVeyor... what's wrong with you today?

@borsbors 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 Jan 10, 2019
@CentrilCentril mentioned this pull request Jan 10, 2019
Centril added a commit to Centril/rust that referenced this pull request Jan 12, 2019
…-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.
@CentrilCentril mentioned this pull request Jan 12, 2019
bors added a commit that referenced this pull request Jan 12, 2019
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
@bors
bors merged commit dac6eec into rust-lang:masterJan 12, 2019
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: 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.

6 participants

@QuietMisdreavus@rust-highfive@GuillaumeGomez@bors@emilyalbini@steveklabnik