Skip to content
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

Rollup of 11 pull requests #73599

Closed
wants to merge 26 commits into from

Conversation

Manishearth
Copy link
Member

Successful merges:

Failed merges:

r? @ghost

GuillaumeGomez and others added 26 commits June 18, 2020 13:10
This commit fixes typos in the doc comments of 'librustc_mir/monomorphize/collector.rs'
typo fix

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
This fixes an issue with the following sample:

    mod foo {
	mod inaccessible {
	    pub struct X;
	}
	pub mod avail {
	    pub struct X;
	}
    }

    fn main() { X; }

Instead of suggesting both `use crate::foo::inaccessible::X;` and `use
crate::foo::avail::X;`, it should only suggest the latter.

It is done by trimming the list of suggestions from inaccessible paths
if accessible paths are present.

Visibility is checked with `is_accessible_from` now instead of being
hard-coded.

-

Some tests fixes are trivial, and others require a bit more explaining,
here are my comments:

src/test/ui/issues/issue-35675.stderr: Only needs to make the enum
public to have the suggestion make sense.

src/test/ui/issues/issue-42944.stderr: Importing the tuple struct won't
help because its constructor is not visible, so the attempted
constructor does not work. In that case, it's better not to suggest it.
The case where the constructor is public is covered in `issue-26545.rs`.
…elf-msg, r=nikomatsakis"

This reverts commit 372cb9b, reversing
changes made to 5c61a8d.
Improve compiler error message for wrong generic parameter order

- Added optional "help" parameter that shows a help message on the compiler error if required.
- Added a simple ordered parameter as a sample help.

@varkor will make more changes as required. Let me know if I'm heading in the right direction.

Fixes rust-lang#68437

r? @varkor
…rochenkov

Prefer accessible paths in 'use' suggestions

This PR addresses issue rust-lang#26454, where `use` suggestions are made for paths that don't work. For example:

```rust
mod foo {
    mod bar {
        struct X;
    }
}

fn main() { X; } // suggests `use foo::bar::X;`
```
Fix typos in doc comments

Hello 🦀 ,

This commit fixes typos in the doc comments of 'librustc_mir/monomorphize/collector.rs'

Thank you for reviewing this PR 👍
Make is_freeze and is_copy_modulo_regions take TyCtxtAt

Make is_freeze and is_copy_modulo_regions take TyCtxtAt instead of separately taking TyCtxt and Span. This is consistent with is_sized.
…from, r=Amanieu

deprecate wrapping_offset_from

As per rust-lang#41079 (comment) which seems like a consensus.

r? @Amanieu
…r=petrochenkov

Revert PR rust-lang#72389 - "Explain move errors that occur due to method calls involving `self"

r? @petrochenkov
@Manishearth
Copy link
Member Author

@bors r+ p=10 rollup=never

@bors
Copy link
Contributor

bors commented Jun 21, 2020

📌 Commit 8cabd20 has been approved by Manishearth

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jun 21, 2020
@bors
Copy link
Contributor

bors commented Jun 22, 2020

⌛ Testing commit 8cabd20 with merge 7177d33cb3b28553f364fb03ed4a39a4fa3327cd...

@bors
Copy link
Contributor

bors commented Jun 22, 2020

💔 Test failed - checks-azure

@bors bors 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 Jun 22, 2020
@Manishearth
Copy link
Member Author

failures:

failures:
    [ui] ui/empty_line_after_outer_attribute.rs

test result: FAILED. 467 passed; 1 failed; 3 ignored; 0 measured; 0 filtered out

test compile_test ... FAILED

failures:

---- compile_test stdout ----
thread 'compile_test' panicked at 'Some tests failed', /cargo/registry/src/git.luolix.top-1ecc6299db9ec823/compiletest_rs-0.5.0/src/lib.rs:105:22
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    compile_test

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out

error: test failed, to rerun pass '--test compile-test'

@Manishearth
Copy link
Member Author

Oh, I bet that reenabling clippy tests has caused some issues

@Manishearth
Copy link
Member Author

Hmm, that test passes when run locally against the rustc built in this rollup

@Manishearth
Copy link
Member Author

Aha

stderr:
------------------------------------------
{"message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code example:\n\n```compile_fail,E0308\nlet x: i32 = \"I am not a number!\";\n//     ~~~   ~~~~~~~~~~~~~~~~~~~~\n//      |             |\n//      |    initializing expression;\n//      |    compiler infers type `&str`\n//      |\n//    type `i32` assigned to variable `x`\n```\n\nThis error occurs when the compiler is unable to infer the concrete type of a\nvariable. It can occur in several cases, the most common being a mismatch\nbetween two types: the type the author explicitly assigned, and the type the\ncompiler inferred.\n"},"level":"error","spans":[{"file_name":"tests/ui/auxiliary/proc_macro_attr.rs","byte_start":819,"byte_end":829,"line_start":26,"line_end":26,"column_start":48,"column_end":58,"is_primary":true,"text":[{"text":"                let my_block = quote_spanned!( brace.span => {","highlight_start":48,"highlight_end":58}],"label":"expected struct `quote::__rt::Span`, found struct `syn::export::Span`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":16981,"byte_end":16999,"line_start":570,"line_end":570,"column_start":20,"column_end":38,"is_primary":false,"text":[{"text":"        let _span: $crate::__rt::Span = $span;","highlight_start":20,"highlight_end":38}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"tests/ui/auxiliary/proc_macro_attr.rs","byte_start":803,"byte_end":1030,"line_start":26,"line_end":31,"column_start":32,"column_end":19,"is_primary":false,"text":[{"text":"                let my_block = quote_spanned!( brace.span => {","highlight_start":32,"highlight_end":63},{"text":"                    // Should not trigger `empty_line_after_outer_attr`","highlight_start":1,"highlight_end":72},{"text":"                    #[crate_type = \"lib\"]","highlight_start":1,"highlight_end":42},{"text":"                    #sig #block","highlight_start":1,"highlight_end":32},{"text":"                    Vec::new()","highlight_start":1,"highlight_end":31},{"text":"                });","highlight_start":1,"highlight_end":19}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"quote_spanned!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":16842,"byte_end":17082,"line_start":567,"line_end":574,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_spanned {","highlight_start":1,"highlight_end":1},{"text":"    ($span:expr=> $($tt:tt)*) => {{","highlight_start":1,"highlight_end":1},{"text":"        let mut _s = $crate::__rt::TokenStream::new();","highlight_start":1,"highlight_end":1},{"text":"        let _span: $crate::__rt::Span = $span;","highlight_start":1,"highlight_end":1},{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":1,"highlight_end":1},{"text":"        _s","highlight_start":1,"highlight_end":1},{"text":"    }};","highlight_start":1,"highlight_end":1},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"perhaps two different versions of crate `proc_macro2` are being used?","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0308]: mismatched types\n  --> tests/ui/auxiliary/proc_macro_attr.rs:26:48\n   |\nLL |                   let my_block = quote_spanned!( brace.span => {\n   |                                  -               ^^^^^^^^^^ expected struct `quote::__rt::Span`, found struct `syn::export::Span`\n   |  ________________________________|\n   | |\nLL | |                     // Should not trigger `empty_line_after_outer_attr`\nLL | |                     #[crate_type = \"lib\"]\nLL | |                     #sig #block\nLL | |                     Vec::new()\nLL | |                 });\n   | |__________________- expected due to this\n   |\n   = note: perhaps two different versions of crate `proc_macro2` are being used?\n\n"}
{"message":"the trait bound `syn::MethodSig: quote::ToTokens` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T:***@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":17017,"byte_end":17061,"line_start":571,"line_end":571,"column_start":9,"column_end":53,"is_primary":false,"text":[{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":9,"highlight_end":53}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":23499,"byte_end":23541,"line_start":762,"line_end":762,"column_start":17,"column_end":59,"is_primary":false,"text":[{"text":"                $crate::quote_spanned!($span=> $($inner)*),","highlight_start":17,"highlight_end":59}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":22476,"byte_end":22518,"line_start":729,"line_end":729,"column_start":9,"column_end":51,"is_primary":false,"text":[{"text":"        $crate::quote_token!($tokens $span $curr);","highlight_start":9,"highlight_end":51}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19624,"byte_end":19703,"line_start":672,"line_end":672,"column_start":13,"column_end":92,"is_primary":false,"text":[{"text":"            $crate::quote_token_with_context!($tokens $span $b3 $b2 $b1 $curr $a1 $a2 $a3);","highlight_start":13,"highlight_end":92}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19053,"byte_end":19359,"line_start":651,"line_end":659,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        $crate::quote_tokens_with_context!($tokens $span","highlight_start":9,"highlight_end":57},{"text":"            (@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":17017,"byte_end":17061,"line_start":571,"line_end":571,"column_start":9,"column_end":53,"is_primary":false,"text":[{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":9,"highlight_end":53}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"tests/ui/auxiliary/proc_macro_attr.rs","byte_start":803,"byte_end":1030,"line_start":26,"line_end":31,"column_start":32,"column_end":19,"is_primary":false,"text":[{"text":"                let my_block = quote_spanned!( brace.span => {","highlight_start":32,"highlight_end":63},{"text":"                    // Should not trigger `empty_line_after_outer_attr`","highlight_start":***@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_tokens_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19401,"byte_end":19723,"line_start":665,"line_end":675,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_tokens_with_context {","highlight_start":1,"highlight_end":41},{"text":"    ($tokens:ident $span:ident","highlight_start":1,"highlight_end":31},{"text":"        ($($b3:tt)*) ($($b2:tt)*) ($($b1:tt)*)","highlight_start":1,"highlight_end":47},{"text":"        ($($curr:tt)*)","highlight_start":1,"highlight_end":23},{"text":"        ($($a1:tt)*) ($($a2:tt)*) ($($a3:tt)*)","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            $crate::quote_token_with_context!($tokens $span $b3 $b2 $b1 $curr $a1 $a2 $a3);","highlight_start":1,"highlight_end":92},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_token_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19756,"byte_end":22527,"line_start":679,"line_end":731,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_token_with_context {","highlight_start":1,"highlight_end":40},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt @ $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":83},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) ( $($inner:tt)* ) * $a3:tt) => {{","highlight_start":1,"highlight_end":90},{"text":"        use $crate::__rt::ext::*;","highlight_start":1,"highlight_end":34},{"text":"        let has_iter = $crate::__rt::ThereIsNoIteratorInRepetition;","highlight_start":1,"highlight_end":68},{"text":"        $crate::pounded_var_names!(quote_bind_into_iter!(has_iter) () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"        let _: $crate::__rt::HasIterator = has_iter;","highlight_start":1,"highlight_end":53},{"text":"        // This is `while true` instead of `loop` because if there are no","highlight_start":***@) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_at(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident !) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_bang(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ^) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_caret(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ^=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_caret_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":58},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident :) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_colon(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ::) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_colon2(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ,) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_comma(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident /) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_div(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident /=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_div_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident .) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_dot(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ..) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_dot2(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ...) => {","highlight_start":1,"highlight_end":41},{"text":"        $crate::__rt::push_dot3(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ..=) => {","highlight_start":1,"highlight_end":41},{"text":"        $crate::__rt::push_dot_dot_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":60},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident =) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ==) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_eq_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_ge(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_gt(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_le(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_lt(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident *=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_mul_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident !=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_ne(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident |) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_or(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident |=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_or_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ||) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_or_or(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident #) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_pound(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ?) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_question(&mut $tokens, $span);","highlight_start":1,"highlight_end":58},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ->) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_rarrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <-) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_larrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident %) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_rem(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident %=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_rem_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident =>) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_fat_arrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":59},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ;) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_semi(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <<) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_shl(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <<=) => {","highlight_start":1,"highlight_end":41},{"text":"        $crate::__rt::push_shl_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >>) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_shr(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >>=) => {","highlight_start":1,"highlight_end":41},{"text":"        $crate::__rt::push_shr_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident *) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_star(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident -) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_sub(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident -=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_sub_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $other:tt) => {","highlight_start":1,"highlight_end":47},{"text":"        $crate::__rt::parse(&mut $tokens, $span, stringify!($other));","highlight_start":1,"highlight_end":70},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_spanned!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":16842,"byte_end":17082,"line_start":567,"line_end":574,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_spanned {","highlight_start":1,"highlight_end":29},{"text":"    ($span:expr=> $($tt:tt)*) => {{","highlight_start":1,"highlight_end":36},{"text":"        let mut _s = $crate::__rt::TokenStream::new();","highlight_start":1,"highlight_end":55},{"text":"        let _span: $crate::__rt::Span = $span;","highlight_start":1,"highlight_end":47},{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":1,"highlight_end":53},{"text":"        _s","highlight_start":1,"highlight_end":11},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_each_token!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":18964,"byte_end":19368,"line_start":649,"line_end":661,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_each_token {","highlight_start":1,"highlight_end":32},{"text":"    ($tokens:ident $span:ident $($tts:tt)*) => {","highlight_start":1,"highlight_end":49},{"text":"        $crate::quote_tokens_with_context!($tokens $span","highlight_start":1,"highlight_end":57},{"text":"            (@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_tokens_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19401,"byte_end":19723,"line_start":665,"line_end":675,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_tokens_with_context {","highlight_start":1,"highlight_end":41},{"text":"    ($tokens:ident $span:ident","highlight_start":1,"highlight_end":31},{"text":"        ($($b3:tt)*) ($($b2:tt)*) ($($b1:tt)*)","highlight_start":1,"highlight_end":47},{"text":"        ($($curr:tt)*)","highlight_start":1,"highlight_end":23},{"text":"        ($($a1:tt)*) ($($a2:tt)*) ($($a3:tt)*)","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            $crate::quote_token_with_context!($tokens $span $b3 $b2 $b1 $curr $a1 $a2 $a3);","highlight_start":1,"highlight_end":92},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_token_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19756,"byte_end":22527,"line_start":679,"line_end":731,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_token_with_context {","highlight_start":1,"highlight_end":40},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt @ $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":83},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) ( $($inner:tt)* ) * $a3:tt) => {{","highlight_start":1,"highlight_end":90},{"text":"        use $crate::__rt::ext::*;","highlight_start":1,"highlight_end":34},{"text":"        let has_iter = $crate::__rt::ThereIsNoIteratorInRepetition;","highlight_start":1,"highlight_end":68},{"text":"        $crate::pounded_var_names!(quote_bind_into_iter!(has_iter) () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"        let _: $crate::__rt::HasIterator = has_iter;","highlight_start":1,"highlight_end":53},{"text":"        // This is `while true` instead of `loop` because if there are no","highlight_start":1,"highlight_end":74},{"text":"        // iterators used inside of this repetition then the body would not","highlight_start":1,"highlight_end":76},{"text":"        // contain any `break`, so the compiler would emit unreachable code","highlight_start":1,"highlight_end":76},{"text":"        // warnings on anything below the loop. We use has_iter to detect and","highlight_start":1,"highlight_end":78},{"text":"        // fail to compile when there are no iterators, so here we just work","highlight_start":1,"highlight_end":77},{"text":"        // around the unneeded extra warning.","highlight_start":1,"highlight_end":46},{"text":"        while true {","highlight_start":1,"highlight_end":21},{"text":"            $crate::pounded_var_names!(quote_bind_next_or_break!() () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"            $crate::quote_each_token!($tokens $span $($inner)*);","highlight_start":1,"highlight_end":65},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # (( $($inner:tt)* )) * $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":91},{"text":"    ($tokens:ident $span:ident $b3:tt # ( $($inner:tt)* ) (*) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":91},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) ( $($inner:tt)* ) $sep:tt *) => {{","highlight_start":1,"highlight_end":91},{"text":"        use $crate::__rt::ext::*;","highlight_start":1,"highlight_end":34},{"text":"        let mut _i = 0usize;","highlight_start":1,"highlight_end":29},{"text":"        let has_iter = $crate::__rt::ThereIsNoIteratorInRepetition;","highlight_start":1,"highlight_end":68},{"text":"        $crate::pounded_var_names!(quote_bind_into_iter!(has_iter) () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"        let _: $crate::__rt::HasIterator = has_iter;","highlight_start":1,"highlight_end":53},{"text":"        while true {","highlight_start":1,"highlight_end":21},{"text":"            $crate::pounded_var_names!(quote_bind_next_or_break!() () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"            if _i > 0 {","highlight_start":1,"highlight_end":24},{"text":"                $crate::quote_token!($tokens $span $sep);","highlight_start":1,"highlight_end":58},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            _i += 1;","highlight_start":1,"highlight_end":21},{"text":"            $crate::quote_each_token!($tokens $span $($inner)*);","highlight_start":1,"highlight_end":65},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # (( $($inner:tt)* )) $sep:tt * $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"    ($tokens:ident $span:ident $b3:tt # ( $($inner:tt)* ) ($sep:tt) * $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"    ($tokens:ident $span:ident # ( $($inner:tt)* ) * (*) $a1:tt $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":84},{"text":"        // https://github.com/dtolnay/quote/issues/130","highlight_start":1,"highlight_end":55},{"text":"        $crate::quote_token!($tokens $span *);","highlight_start":1,"highlight_end":47},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    ($tokens:ident $span:ident # ( $($inner:tt)* ) $sep:tt (*) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) $var:ident $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":87},{"text":"        $crate::ToTokens::to_tokens(&$var, &mut $tokens);","highlight_start":1,"highlight_end":58},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # ($var:ident) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":89},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt ($curr:tt) $a1:tt $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":90},{"text":"        $crate::quote_token!($tokens $span $curr);","highlight_start":1,"highlight_end":51},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"required because of the requirements on the impl of `quote::ToTokens` for `&syn::MethodSig`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by `quote::ToTokens::to_tokens`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0277]: the trait bound `syn::MethodSig: quote::ToTokens` is not satisfied\n  --> tests/ui/auxiliary/proc_macro_attr.rs:26:32\n   |\nLL |                   let my_block = quote_spanned!( brace.span => {\n   |  ________________________________^\nLL | |                     // Should not trigger `empty_line_after_outer_attr`\nLL | |                     #[crate_type = \"lib\"]\nLL | |                     #sig #block\nLL | |                     Vec::new()\nLL | |                 });\n   | |__________________^ the trait `quote::ToTokens` is not implemented for `syn::MethodSig`\n   |\n   = note: required because of the requirements on the impl of `quote::ToTokens` for `&syn::MethodSig`\n   = note: required by `quote::ToTokens::to_tokens`\n   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)\n\n"}
{"message":"the trait bound `syn::Block: quote::ToTokens` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T:***@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":17017,"byte_end":17061,"line_start":571,"line_end":571,"column_start":9,"column_end":53,"is_primary":false,"text":[{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":9,"highlight_end":53}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":23499,"byte_end":23541,"line_start":762,"line_end":762,"column_start":17,"column_end":59,"is_primary":false,"text":[{"text":"                $crate::quote_spanned!($span=> $($inner)*),","highlight_start":17,"highlight_end":59}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":22476,"byte_end":22518,"line_start":729,"line_end":729,"column_start":9,"column_end":51,"is_primary":false,"text":[{"text":"        $crate::quote_token!($tokens $span $curr);","highlight_start":9,"highlight_end":51}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19624,"byte_end":19703,"line_start":672,"line_end":672,"column_start":13,"column_end":92,"is_primary":false,"text":[{"text":"            $crate::quote_token_with_context!($tokens $span $b3 $b2 $b1 $curr $a1 $a2 $a3);","highlight_start":13,"highlight_end":92}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19053,"byte_end":19359,"line_start":651,"line_end":659,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":"        $crate::quote_tokens_with_context!($tokens $span","highlight_start":9,"highlight_end":57},{"text":"            (@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":17017,"byte_end":17061,"line_start":571,"line_end":571,"column_start":9,"column_end":53,"is_primary":false,"text":[{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":9,"highlight_end":53}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"tests/ui/auxiliary/proc_macro_attr.rs","byte_start":803,"byte_end":1030,"line_start":26,"line_end":31,"column_start":32,"column_end":19,"is_primary":false,"text":[{"text":"                let my_block = quote_spanned!( brace.span => {","highlight_start":32,"highlight_end":63},{"text":"                    // Should not trigger `empty_line_after_outer_attr`","highlight_start":***@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_tokens_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19401,"byte_end":19723,"line_start":665,"line_end":675,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_tokens_with_context {","highlight_start":1,"highlight_end":41},{"text":"    ($tokens:ident $span:ident","highlight_start":1,"highlight_end":31},{"text":"        ($($b3:tt)*) ($($b2:tt)*) ($($b1:tt)*)","highlight_start":1,"highlight_end":47},{"text":"        ($($curr:tt)*)","highlight_start":1,"highlight_end":23},{"text":"        ($($a1:tt)*) ($($a2:tt)*) ($($a3:tt)*)","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            $crate::quote_token_with_context!($tokens $span $b3 $b2 $b1 $curr $a1 $a2 $a3);","highlight_start":1,"highlight_end":92},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_token_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19756,"byte_end":22527,"line_start":679,"line_end":731,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_token_with_context {","highlight_start":1,"highlight_end":40},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt @ $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":83},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) ( $($inner:tt)* ) * $a3:tt) => {{","highlight_start":1,"highlight_end":90},{"text":"        use $crate::__rt::ext::*;","highlight_start":1,"highlight_end":34},{"text":"        let has_iter = $crate::__rt::ThereIsNoIteratorInRepetition;","highlight_start":1,"highlight_end":68},{"text":"        $crate::pounded_var_names!(quote_bind_into_iter!(has_iter) () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"        let _: $crate::__rt::HasIterator = has_iter;","highlight_start":1,"highlight_end":53},{"text":"        // This is `while true` instead of `loop` because if there are no","highlight_start":***@) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_at(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident !) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_bang(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ^) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_caret(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ^=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_caret_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":58},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident :) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_colon(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ::) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_colon2(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ,) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_comma(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident /) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_div(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident /=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_div_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident .) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_dot(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ..) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_dot2(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ...) => {","highlight_start":1,"highlight_end":41},{"text":"        $crate::__rt::push_dot3(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ..=) => {","highlight_start":1,"highlight_end":41},{"text":"        $crate::__rt::push_dot_dot_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":60},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident =) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ==) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_eq_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_ge(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_gt(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_le(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_lt(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident *=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_mul_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident !=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_ne(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident |) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_or(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident |=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_or_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ||) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_or_or(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident #) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_pound(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ?) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_question(&mut $tokens, $span);","highlight_start":1,"highlight_end":58},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ->) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_rarrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <-) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_larrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident %) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_rem(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident %=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_rem_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident =>) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_fat_arrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":59},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ;) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_semi(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <<) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_shl(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <<=) => {","highlight_start":1,"highlight_end":41},{"text":"        $crate::__rt::push_shl_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >>) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_shr(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >>=) => {","highlight_start":1,"highlight_end":41},{"text":"        $crate::__rt::push_shr_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident *) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_star(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident -) => {","highlight_start":1,"highlight_end":39},{"text":"        $crate::__rt::push_sub(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident -=) => {","highlight_start":1,"highlight_end":40},{"text":"        $crate::__rt::push_sub_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $other:tt) => {","highlight_start":1,"highlight_end":47},{"text":"        $crate::__rt::parse(&mut $tokens, $span, stringify!($other));","highlight_start":1,"highlight_end":70},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_spanned!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":16842,"byte_end":17082,"line_start":567,"line_end":574,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_spanned {","highlight_start":1,"highlight_end":29},{"text":"    ($span:expr=> $($tt:tt)*) => {{","highlight_start":1,"highlight_end":36},{"text":"        let mut _s = $crate::__rt::TokenStream::new();","highlight_start":1,"highlight_end":55},{"text":"        let _span: $crate::__rt::Span = $span;","highlight_start":1,"highlight_end":47},{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":1,"highlight_end":53},{"text":"        _s","highlight_start":1,"highlight_end":11},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_each_token!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":18964,"byte_end":19368,"line_start":649,"line_end":661,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_each_token {","highlight_start":1,"highlight_end":32},{"text":"    ($tokens:ident $span:ident $($tts:tt)*) => {","highlight_start":1,"highlight_end":49},{"text":"        $crate::quote_tokens_with_context!($tokens $span","highlight_start":1,"highlight_end":57},{"text":"            (@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_tokens_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19401,"byte_end":19723,"line_start":665,"line_end":675,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_tokens_with_context {","highlight_start":1,"highlight_end":41},{"text":"    ($tokens:ident $span:ident","highlight_start":1,"highlight_end":31},{"text":"        ($($b3:tt)*) ($($b2:tt)*) ($($b1:tt)*)","highlight_start":1,"highlight_end":47},{"text":"        ($($curr:tt)*)","highlight_start":1,"highlight_end":23},{"text":"        ($($a1:tt)*) ($($a2:tt)*) ($($a3:tt)*)","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            $crate::quote_token_with_context!($tokens $span $b3 $b2 $b1 $curr $a1 $a2 $a3);","highlight_start":1,"highlight_end":92},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_token_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19756,"byte_end":22527,"line_start":679,"line_end":731,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_token_with_context {","highlight_start":1,"highlight_end":40},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt @ $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":83},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) ( $($inner:tt)* ) * $a3:tt) => {{","highlight_start":1,"highlight_end":90},{"text":"        use $crate::__rt::ext::*;","highlight_start":1,"highlight_end":34},{"text":"        let has_iter = $crate::__rt::ThereIsNoIteratorInRepetition;","highlight_start":1,"highlight_end":68},{"text":"        $crate::pounded_var_names!(quote_bind_into_iter!(has_iter) () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"        let _: $crate::__rt::HasIterator = has_iter;","highlight_start":1,"highlight_end":53},{"text":"        // This is `while true` instead of `loop` because if there are no","highlight_start":1,"highlight_end":74},{"text":"        // iterators used inside of this repetition then the body would not","highlight_start":1,"highlight_end":76},{"text":"        // contain any `break`, so the compiler would emit unreachable code","highlight_start":1,"highlight_end":76},{"text":"        // warnings on anything below the loop. We use has_iter to detect and","highlight_start":1,"highlight_end":78},{"text":"        // fail to compile when there are no iterators, so here we just work","highlight_start":1,"highlight_end":77},{"text":"        // around the unneeded extra warning.","highlight_start":1,"highlight_end":46},{"text":"        while true {","highlight_start":1,"highlight_end":21},{"text":"            $crate::pounded_var_names!(quote_bind_next_or_break!() () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"            $crate::quote_each_token!($tokens $span $($inner)*);","highlight_start":1,"highlight_end":65},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # (( $($inner:tt)* )) * $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":91},{"text":"    ($tokens:ident $span:ident $b3:tt # ( $($inner:tt)* ) (*) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":91},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) ( $($inner:tt)* ) $sep:tt *) => {{","highlight_start":1,"highlight_end":91},{"text":"        use $crate::__rt::ext::*;","highlight_start":1,"highlight_end":34},{"text":"        let mut _i = 0usize;","highlight_start":1,"highlight_end":29},{"text":"        let has_iter = $crate::__rt::ThereIsNoIteratorInRepetition;","highlight_start":1,"highlight_end":68},{"text":"        $crate::pounded_var_names!(quote_bind_into_iter!(has_iter) () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"        let _: $crate::__rt::HasIterator = has_iter;","highlight_start":1,"highlight_end":53},{"text":"        while true {","highlight_start":1,"highlight_end":21},{"text":"            $crate::pounded_var_names!(quote_bind_next_or_break!() () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"            if _i > 0 {","highlight_start":1,"highlight_end":24},{"text":"                $crate::quote_token!($tokens $span $sep);","highlight_start":1,"highlight_end":58},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            _i += 1;","highlight_start":1,"highlight_end":21},{"text":"            $crate::quote_each_token!($tokens $span $($inner)*);","highlight_start":1,"highlight_end":65},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # (( $($inner:tt)* )) $sep:tt * $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"    ($tokens:ident $span:ident $b3:tt # ( $($inner:tt)* ) ($sep:tt) * $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"    ($tokens:ident $span:ident # ( $($inner:tt)* ) * (*) $a1:tt $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":84},{"text":"        // https://github.com/dtolnay/quote/issues/130","highlight_start":1,"highlight_end":55},{"text":"        $crate::quote_token!($tokens $span *);","highlight_start":1,"highlight_end":47},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    ($tokens:ident $span:ident # ( $($inner:tt)* ) $sep:tt (*) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) $var:ident $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":87},{"text":"        $crate::ToTokens::to_tokens(&$var, &mut $tokens);","highlight_start":1,"highlight_end":58},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # ($var:ident) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":89},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt ($curr:tt) $a1:tt $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":90},{"text":"        $crate::quote_token!($tokens $span $curr);","highlight_start":1,"highlight_end":51},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"required because of the requirements on the impl of `quote::ToTokens` for `&mut syn::Block`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by `quote::ToTokens::to_tokens`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0277]: the trait bound `syn::Block: quote::ToTokens` is not satisfied\n  --> tests/ui/auxiliary/proc_macro_attr.rs:26:32\n   |\nLL |                   let my_block = quote_spanned!( brace.span => {\n   |  ________________________________^\nLL | |                     // Should not trigger `empty_line_after_outer_attr`\nLL | |                     #[crate_type = \"lib\"]\nLL | |                     #sig #block\nLL | |                     Vec::new()\nLL | |                 });\n   | |__________________^ the trait `quote::ToTokens` is not implemented for `syn::Block`\n   |\n   = note: required because of the requirements on the impl of `quote::ToTokens` for `&mut syn::Block`\n   = note: required by `quote::ToTokens::to_tokens`\n   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)\n\n"}
{"message":"the trait bound `quote::__rt::TokenStream: syn::export::ToTokens` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T:***@ $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_at(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ! $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_bang(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ^ $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_caret(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ^= $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_caret_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":58},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident : $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_colon(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident :: $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_colon2(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident , $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_comma(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident / $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_div(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident /= $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_div_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident . $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_dot(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident .. $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_dot2(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ... $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":"        $crate::__rt::push_dot3(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ..= $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":"        $crate::__rt::push_dot_dot_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":60},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident = $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident == $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_eq_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >= $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_ge(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident > $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_gt(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <= $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_le(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident < $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_lt(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident *= $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_mul_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident != $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_ne(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident | $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_or(&mut $tokens, $span);","highlight_start":1,"highlight_end":52},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident |= $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_or_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident || $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_or_or(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident # $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_pound(&mut $tokens, $span);","highlight_start":1,"highlight_end":55},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ? $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_question(&mut $tokens, $span);","highlight_start":1,"highlight_end":58},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident -> $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_rarrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <- $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_larrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident % $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_rem(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident %= $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_rem_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident => $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_fat_arrow(&mut $tokens, $span);","highlight_start":1,"highlight_end":59},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident ; $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_semi(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident << $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_shl(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident <<= $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":"        $crate::__rt::push_shl_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >> $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_shr(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident >>= $($rest:tt)*) => {","highlight_start":1,"highlight_end":54},{"text":"        $crate::__rt::push_shr_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident * $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_star(&mut $tokens, $span);","highlight_start":1,"highlight_end":54},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident - $($rest:tt)*) => {","highlight_start":1,"highlight_end":52},{"text":"        $crate::__rt::push_sub(&mut $tokens, $span);","highlight_start":1,"highlight_end":53},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident -= $($rest:tt)*) => {","highlight_start":1,"highlight_end":53},{"text":"        $crate::__rt::push_sub_eq(&mut $tokens, $span);","highlight_start":1,"highlight_end":56},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $first:tt $($rest:tt)*) => {","highlight_start":1,"highlight_end":60},{"text":"        $crate::__rt::parse(&mut $tokens, $span, quote_stringify!($first));","highlight_start":1,"highlight_end":76},{"text":"        quote_each_token!($tokens $span $($rest)*);","highlight_start":1,"highlight_end":52},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"required by `syn::export::ToTokens::to_tokens`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0277]: the trait bound `quote::__rt::TokenStream: syn::export::ToTokens` is not satisfied\n  --> tests/ui/auxiliary/proc_macro_attr.rs:32:26\n   |\nLL |                 *block = parse_quote!(#my_block);\n   |                          ^^^^^^^^^^^^^^^^^^^^^^^ the trait `syn::export::ToTokens` is not implemented for `quote::__rt::TokenStream`\n   |\n   = note: required by `syn::export::ToTokens::to_tokens`\n   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)\n\n"}
{"message":"the trait bound `syn::ItemTrait: quote::ToTokens` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T:***@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":17017,"byte_end":17061,"line_start":571,"line_end":571,"column_start":9,"column_end":53,"is_primary":false,"text":[{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":9,"highlight_end":53}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":13672,"byte_end":13737,"line_start":466,"line_end":466,"column_start":9,"column_end":74,"is_primary":false,"text":[{"text":"        $crate::quote_spanned!($crate::__rt::Span::call_site()=> $($tt)*)","highlight_start":9,"highlight_end":74}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"tests/ui/auxiliary/proc_macro_attr.rs","byte_start":1134,"byte_end":1147,"line_start":36,"line_end":36,"column_start":23,"column_end":36,"is_primary":false,"text":[{"text":"    TokenStream::from(quote!(#item))","highlight_start":23,"highlight_end":36}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"quote!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":13621,"byte_end":13746,"line_start":464,"line_end":468,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote {","highlight_start":1,"highlight_end":21},{"text":"    ($($tt:tt)*) => {","highlight_start":1,"highlight_end":22},{"text":"        $crate::quote_spanned!($crate::__rt::Span::call_site()=> $($tt)*)","highlight_start":1,"highlight_end":74},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_spanned!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":16842,"byte_end":17082,"line_start":567,"line_end":574,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_spanned {","highlight_start":1,"highlight_end":29},{"text":"    ($span:expr=> $($tt:tt)*) => {{","highlight_start":1,"highlight_end":36},{"text":"        let mut _s = $crate::__rt::TokenStream::new();","highlight_start":1,"highlight_end":55},{"text":"        let _span: $crate::__rt::Span = $span;","highlight_start":1,"highlight_end":47},{"text":"        $crate::quote_each_token!(_s _span $($tt)*);","highlight_start":1,"highlight_end":53},{"text":"        _s","highlight_start":1,"highlight_end":11},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_each_token!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":18964,"byte_end":19368,"line_start":649,"line_end":661,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_each_token {","highlight_start":1,"highlight_end":32},{"text":"    ($tokens:ident $span:ident $($tts:tt)*) => {","highlight_start":1,"highlight_end":49},{"text":"        $crate::quote_tokens_with_context!($tokens $span","highlight_start":1,"highlight_end":57},{"text":"            (@ @ @ @ @ @ $($tts)*)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ @ $($tts)* @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ @ $($tts)* @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ @ @ $(($tts))* @ @ @)","highlight_start":1,"highlight_end":37},{"text":"            (@ @ $($tts)* @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            (@ $($tts)* @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"            ($($tts)* @ @ @ @ @ @)","highlight_start":1,"highlight_end":35},{"text":"        );","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_tokens_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19401,"byte_end":19723,"line_start":665,"line_end":675,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_tokens_with_context {","highlight_start":1,"highlight_end":41},{"text":"    ($tokens:ident $span:ident","highlight_start":1,"highlight_end":31},{"text":"        ($($b3:tt)*) ($($b2:tt)*) ($($b1:tt)*)","highlight_start":1,"highlight_end":47},{"text":"        ($($curr:tt)*)","highlight_start":1,"highlight_end":23},{"text":"        ($($a1:tt)*) ($($a2:tt)*) ($($a3:tt)*)","highlight_start":1,"highlight_end":47},{"text":"    ) => {","highlight_start":1,"highlight_end":11},{"text":"        $(","highlight_start":1,"highlight_end":11},{"text":"            $crate::quote_token_with_context!($tokens $span $b3 $b2 $b1 $curr $a1 $a2 $a3);","highlight_start":1,"highlight_end":92},{"text":"        )*","highlight_start":1,"highlight_end":11},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"$crate::quote_token_with_context!","def_site_span":{"file_name":"/cargo/registry/src/git.luolix.top-1ecc6299db9ec823/quote-1.0.2/src/lib.rs","byte_start":19756,"byte_end":22527,"line_start":679,"line_end":731,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quote_token_with_context {","highlight_start":1,"highlight_end":40},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt @ $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":83},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) ( $($inner:tt)* ) * $a3:tt) => {{","highlight_start":1,"highlight_end":90},{"text":"        use $crate::__rt::ext::*;","highlight_start":1,"highlight_end":34},{"text":"        let has_iter = $crate::__rt::ThereIsNoIteratorInRepetition;","highlight_start":1,"highlight_end":68},{"text":"        $crate::pounded_var_names!(quote_bind_into_iter!(has_iter) () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"        let _: $crate::__rt::HasIterator = has_iter;","highlight_start":1,"highlight_end":53},{"text":"        // This is `while true` instead of `loop` because if there are no","highlight_start":1,"highlight_end":74},{"text":"        // iterators used inside of this repetition then the body would not","highlight_start":1,"highlight_end":76},{"text":"        // contain any `break`, so the compiler would emit unreachable code","highlight_start":1,"highlight_end":76},{"text":"        // warnings on anything below the loop. We use has_iter to detect and","highlight_start":1,"highlight_end":78},{"text":"        // fail to compile when there are no iterators, so here we just work","highlight_start":1,"highlight_end":77},{"text":"        // around the unneeded extra warning.","highlight_start":1,"highlight_end":46},{"text":"        while true {","highlight_start":1,"highlight_end":21},{"text":"            $crate::pounded_var_names!(quote_bind_next_or_break!() () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"            $crate::quote_each_token!($tokens $span $($inner)*);","highlight_start":1,"highlight_end":65},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # (( $($inner:tt)* )) * $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":91},{"text":"    ($tokens:ident $span:ident $b3:tt # ( $($inner:tt)* ) (*) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":91},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) ( $($inner:tt)* ) $sep:tt *) => {{","highlight_start":1,"highlight_end":91},{"text":"        use $crate::__rt::ext::*;","highlight_start":1,"highlight_end":34},{"text":"        let mut _i = 0usize;","highlight_start":1,"highlight_end":29},{"text":"        let has_iter = $crate::__rt::ThereIsNoIteratorInRepetition;","highlight_start":1,"highlight_end":68},{"text":"        $crate::pounded_var_names!(quote_bind_into_iter!(has_iter) () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"        let _: $crate::__rt::HasIterator = has_iter;","highlight_start":1,"highlight_end":53},{"text":"        while true {","highlight_start":1,"highlight_end":21},{"text":"            $crate::pounded_var_names!(quote_bind_next_or_break!() () $($inner)*);","highlight_start":1,"highlight_end":83},{"text":"            if _i > 0 {","highlight_start":1,"highlight_end":24},{"text":"                $crate::quote_token!($tokens $span $sep);","highlight_start":1,"highlight_end":58},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            _i += 1;","highlight_start":1,"highlight_end":21},{"text":"            $crate::quote_each_token!($tokens $span $($inner)*);","highlight_start":1,"highlight_end":65},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    }};","highlight_start":1,"highlight_end":8},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # (( $($inner:tt)* )) $sep:tt * $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"    ($tokens:ident $span:ident $b3:tt # ( $($inner:tt)* ) ($sep:tt) * $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"    ($tokens:ident $span:ident # ( $($inner:tt)* ) * (*) $a1:tt $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":84},{"text":"        // https://github.com/dtolnay/quote/issues/130","highlight_start":1,"highlight_end":55},{"text":"        $crate::quote_token!($tokens $span *);","highlight_start":1,"highlight_end":47},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    ($tokens:ident $span:ident # ( $($inner:tt)* ) $sep:tt (*) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":92},{"text":"","highlight_start":1,"highlight_end":1},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt (#) $var:ident $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":87},{"text":"        $crate::ToTokens::to_tokens(&$var, &mut $tokens);","highlight_start":1,"highlight_end":58},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt # ($var:ident) $a1:tt $a2:tt $a3:tt) => {};","highlight_start":1,"highlight_end":89},{"text":"    ($tokens:ident $span:ident $b3:tt $b2:tt $b1:tt ($curr:tt) $a1:tt $a2:tt $a3:tt) => {","highlight_start":1,"highlight_end":90},{"text":"        $crate::quote_token!($tokens $span $curr);","highlight_start":1,"highlight_end":51},{"text":"    };","highlight_start":1,"highlight_end":7},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"required by `quote::ToTokens::to_tokens`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error[E0277]: the trait bound `syn::ItemTrait: quote::ToTokens` is not satisfied\n  --> tests/ui/auxiliary/proc_macro_attr.rs:36:23\n   |\nLL |     TokenStream::from(quote!(#item))\n   |                       ^^^^^^^^^^^^^ the trait `quote::ToTokens` is not implemented for `syn::ItemTrait`\n   |\n   = note: required by `quote::ToTokens::to_tokens`\n   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)\n\n"}
{"message":"aborting due to 5 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 5 previous errors\n\n"}
{"message":"Some errors have detailed explanations: E0277, E0308.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"Some errors have detailed explanations: E0277, E0308.\n"}
{"message":"For more information about an error, try `rustc --explain E0277`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"For more information about an error, try `rustc --explain E0277`.\n"}

@Manishearth
Copy link
Member Author

I can't repro that using RTIM + the in-tree clippy. Hmm.

@Manishearth Manishearth deleted the rollup-1p6b5s0 branch June 22, 2020 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.