Auto merge of #96094 - Elliot-Roberts:fix_doctests, r=compiler-errors
Begin fixing all the broken doctests in `compiler/` Begins to fix #95994. All of them pass now but 24 of them I've marked with `ignore HELP (<explanation>)` (asking for help) as I'm unsure how to get them to work / if we should leave them as they are. There are also a few that I marked `ignore` that could maybe be made to work but seem less important. Each `ignore` has a rough "reason" for ignoring after it parentheses, with - `(pseudo-rust)` meaning "mostly rust-like but contains foreign syntax" - `(illustrative)` a somewhat catchall for either a fragment of rust that doesn't stand on its own (like a lone type), or abbreviated rust with ellipses and undeclared types that would get too cluttered if made compile-worthy. - `(not-rust)` stuff that isn't rust but benefits from the syntax highlighting, like MIR. - `(internal)` uses `rustc_*` code which would be difficult to make work with the testing setup. Those reason notes are a bit inconsistently applied and messy though. If that's important I can go through them again and try a more principled approach. When I run `rg '```ignore \(' .` on the repo, there look to be lots of different conventions other people have used for this sort of thing. I could try unifying them all if that would be helpful. I'm not sure if there was a better existing way to do this but I wrote my own script to help me run all the doctests and wade through the output. If that would be useful to anyone else, I put it here: https://github.com/Elliot-Roberts/rust_doctest_fixing_tool
This commit is contained in:
commit
574830f573
116 changed files with 668 additions and 609 deletions
|
@ -686,7 +686,7 @@ impl SyntaxContext {
|
|||
/// context up one macro definition level. That is, if we have a nested macro
|
||||
/// definition as follows:
|
||||
///
|
||||
/// ```rust
|
||||
/// ```ignore (illustrative)
|
||||
/// macro_rules! f {
|
||||
/// macro_rules! g {
|
||||
/// ...
|
||||
|
@ -710,6 +710,7 @@ impl SyntaxContext {
|
|||
/// For example, consider the following three resolutions of `f`:
|
||||
///
|
||||
/// ```rust
|
||||
/// #![feature(decl_macro)]
|
||||
/// mod foo { pub fn f() {} } // `f`'s `SyntaxContext` is empty.
|
||||
/// m!(f);
|
||||
/// macro m($f:ident) {
|
||||
|
@ -746,7 +747,8 @@ impl SyntaxContext {
|
|||
/// via a glob import with the given `SyntaxContext`.
|
||||
/// For example:
|
||||
///
|
||||
/// ```rust
|
||||
/// ```compile_fail,E0425
|
||||
/// #![feature(decl_macro)]
|
||||
/// m!(f);
|
||||
/// macro m($i:ident) {
|
||||
/// mod foo {
|
||||
|
@ -786,7 +788,7 @@ impl SyntaxContext {
|
|||
|
||||
/// Undo `glob_adjust` if possible:
|
||||
///
|
||||
/// ```rust
|
||||
/// ```ignore (illustrative)
|
||||
/// if let Some(privacy_checking_scope) = self.reverse_glob_adjust(expansion, glob_ctxt) {
|
||||
/// assert!(self.glob_adjust(expansion, glob_ctxt) == Some(privacy_checking_scope));
|
||||
/// }
|
||||
|
|
|
@ -1058,10 +1058,11 @@ impl SourceMap {
|
|||
|
||||
/// Tries to find the span of the semicolon of a macro call statement.
|
||||
/// The input must be the *call site* span of a statement from macro expansion.
|
||||
///
|
||||
/// v output
|
||||
/// mac!();
|
||||
/// ^^^^^^ input
|
||||
/// ```ignore (illustrative)
|
||||
/// // v output
|
||||
/// mac!();
|
||||
/// // ^^^^^^ input
|
||||
/// ```
|
||||
pub fn mac_call_stmt_semi_span(&self, mac_call: Span) -> Option<Span> {
|
||||
let span = self.span_extend_while(mac_call, char::is_whitespace).ok()?;
|
||||
let span = span.shrink_to_hi().with_hi(BytePos(span.hi().0.checked_add(1)?));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue