1
Fork 0

Bless all pretty printer tests and ui tests

This commit is contained in:
David Tolnay 2022-01-21 01:34:06 -08:00
parent 8ac05b9766
commit 402f322940
No known key found for this signature in database
GPG key ID: F9BA143B95FF6D82
19 changed files with 210 additions and 234 deletions

View file

@ -28,67 +28,67 @@ fn syntax() {
let _ = #[attr] (x as Y); let _ = #[attr] (x as Y);
let _ = let _ =
#[attr] while true { #[attr] while true {
#![attr] #![attr]
}; };
let _ = let _ =
#[attr] while let Some(false) = true { #[attr] while let Some(false) = true {
#![attr] #![attr]
}; };
let _ = let _ =
#[attr] for x in y { #[attr] for x in y {
#![attr] #![attr]
}; };
let _ = let _ =
#[attr] loop { #[attr] loop {
#![attr] #![attr]
}; };
let _ = let _ =
#[attr] match true { #[attr] match true {
#![attr] #![attr]
#[attr] #[attr]
_ => false, _ => false,
}; };
let _ = #[attr] || #[attr] foo; let _ = #[attr] || #[attr] foo;
let _ = #[attr] move || #[attr] foo; let _ = #[attr] move || #[attr] foo;
let _ = let _ =
#[attr] || #[attr] ||
#[attr] { #[attr] {
#![attr] #![attr]
foo foo
}; };
let _ = let _ =
#[attr] move || #[attr] move ||
#[attr] { #[attr] {
#![attr] #![attr]
foo foo
}; };
let _ = let _ =
#[attr] || #[attr] ||
{ {
#![attr] #![attr]
foo foo
}; };
let _ = let _ =
#[attr] move || #[attr] move ||
{ {
#![attr] #![attr]
foo foo
}; };
let _ = let _ =
#[attr] { #[attr] {
#![attr] #![attr]
}; };
let _ = let _ =
#[attr] { #[attr] {
#![attr] #![attr]
let _ = (); let _ = ();
}; };
let _ = let _ =
#[attr] { #[attr] {
#![attr] #![attr]
let _ = (); let _ = ();
foo foo
}; };
let _ = #[attr] x = y; let _ = #[attr] x = y;
let _ = #[attr] (x = y); let _ = #[attr] (x = y);
let _ = #[attr] x += y; let _ = #[attr] x += y;

View file

@ -2,7 +2,7 @@
// pp-exact // pp-exact
fn f() {} /* fn f() {} /*
The next line should not be indented. The next line should not be indented.
That one. It shouldn't have been indented. That one. It shouldn't have been indented.
*/ */

View file

@ -93,9 +93,9 @@ fn main() {
// Taken from https://www.unicode.org/Public/UNIDATA/PropList.txt // Taken from https://www.unicode.org/Public/UNIDATA/PropList.txt
let chars = let chars =
['\x0A', '\x0B', '\x0C', '\x0D', '\x20', '\u{85}', '\u{A0}', ['\x0A', '\x0B', '\x0C', '\x0D', '\x20', '\u{85}', '\u{A0}',
'\u{1680}', '\u{2000}', '\u{2001}', '\u{2002}', '\u{2003}', '\u{1680}', '\u{2000}', '\u{2001}', '\u{2002}', '\u{2003}',
'\u{2004}', '\u{2005}', '\u{2006}', '\u{2007}', '\u{2008}', '\u{2004}', '\u{2005}', '\u{2006}', '\u{2007}', '\u{2008}',
'\u{2009}', '\u{200A}', '\u{2028}', '\u{2029}', '\u{202F}', '\u{2009}', '\u{200A}', '\u{2028}', '\u{2029}', '\u{202F}',
'\u{205F}', '\u{3000}']; '\u{205F}', '\u{3000}'];
for c in &chars { let ws = c.is_whitespace(); println!("{} {}", c, ws); } for c in &chars { let ws = c.is_whitespace(); println!("{} {}", c, ws); }
} }

View file

@ -17,9 +17,9 @@ mac! {
mac! { mac! {
a(aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa a(aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa) a aaaaaaaa aaaaaaaa) a
[aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa [aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa] a aaaaaaaa aaaaaaaa] a
{ {
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
@ -27,22 +27,22 @@ mac! {
} }
mac!(aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa mac!(aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa); aaaaaaaa aaaaaaaa);
mac![aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa mac![aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa]; aaaaaaaa aaaaaaaa];
mac! { mac! {
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
} }
#[rustc_dummy(aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa #[rustc_dummy(aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa)] aaaaaaaa aaaaaaaa aaaaaaaa)]
#[rustc_dummy[aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa #[rustc_dummy[aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa]] aaaaaaaa aaaaaaaa aaaaaaaa]]
#[rustc_dummy { #[rustc_dummy {
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
}] }]
#[rustc_dummy = #[rustc_dummy =
"aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa"] "aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa"]
fn main() {} fn main() {}

View file

@ -11,15 +11,15 @@ extern crate std;
pub fn foo(_: [i32; (3 as usize)]) ({ } as ()) pub fn foo(_: [i32; (3 as usize)]) ({ } as ())
pub fn bar() ({ pub fn bar() ({
const FOO: usize = ((5 as usize) - (4 as usize) as usize); const FOO: usize = ((5 as usize) - (4 as usize) as usize);
let _: [(); (FOO as usize)] = ([(() as ())] as [(); 1]); let _: [(); (FOO as usize)] = ([(() as ())] as [(); 1]);
let _: [(); (1 as usize)] = ([(() as ())] as [(); 1]); let _: [(); (1 as usize)] = ([(() as ())] as [(); 1]);
let _ = let _ =
(((&([(1 as i32), (2 as i32), (3 as i32)] as [i32; 3]) (((&([(1 as i32), (2 as i32), (3 as i32)] as [i32; 3]) as
as &[i32; 3]) as *const _ as *const [i32; 3]) as &[i32; 3]) as *const _ as *const [i32; 3]) as
*const [i32; (3 as usize)] as *const [i32; 3]); *const [i32; (3 as usize)] as *const [i32; 3]);
@ -29,29 +29,19 @@ pub fn bar() ({
({ ({
let res = let res =
((::alloc::fmt::format as ((::alloc::fmt::format as
for<'r> fn(Arguments<'r>) -> String {format})(((::core::fmt::Arguments::new_v1 for<'r> fn(Arguments<'r>) -> String {format})(((::core::fmt::Arguments::new_v1
as as
fn(&[&'static str], &[ArgumentV1]) -> Arguments {Arguments::new_v1})((&([("test" fn(&[&'static str], &[ArgumentV1]) -> Arguments {Arguments::new_v1})((&([("test"
as as &str)] as [&str; 1]) as
&str)] &[&str; 1]),
as (&([] as [ArgumentV1; 0]) as &[ArgumentV1; 0])) as
[&str; 1]) Arguments)) as String);
as (res as String)
&[&str; 1]), } as String);
(&([] } as ())
as
[ArgumentV1; 0])
as
&[ArgumentV1; 0]))
as
Arguments))
as String);
(res as String)
} as String);
} as ())
pub type Foo = [i32; (3 as usize)]; pub type Foo = [i32; (3 as usize)];
pub struct Bar { pub struct Bar {
pub x: [i32; (3 as usize)], pub x: [i32; (3 as usize)],
@ -60,19 +50,9 @@ pub struct TupleBar([i32; (4 as usize)]);
pub enum Baz { BazVariant([i32; (5 as usize)]), } pub enum Baz { BazVariant([i32; (5 as usize)]), }
pub fn id<T>(x: T) -> T ({ (x as T) } as T) pub fn id<T>(x: T) -> T ({ (x as T) } as T)
pub fn use_id() ({ pub fn use_id() ({
let _ = let _ =
((id::<[i32; (3 as usize)]> as ((id::<[i32; (3 as usize)]> as
fn([i32; 3]) -> [i32; 3] {id::<[i32; 3]>})(([(1 fn([i32; 3]) -> [i32; 3] {id::<[i32; 3]>})(([(1 as i32),
as (2 as i32), (3 as i32)] as [i32; 3])) as [i32; 3]);
i32), } as ())
(2
as
i32),
(3
as
i32)]
as
[i32; 3]))
as [i32; 3]);
} as ())
fn main() ({ } as ()) fn main() ({ } as ())

View file

@ -9,8 +9,8 @@ struct C {
#[allow()] #[allow()]
const C: C = const C: C =
C{ C{
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
field: 0, field: 0,
#[cfg(not(debug_assertions))] #[cfg(not(debug_assertions))]
field: 1,}; field: 1,};

View file

@ -12,8 +12,8 @@ macro_rules! matcher_brackets {
macro_rules! all_fragments { macro_rules! all_fragments {
($b : block, $e : expr, $i : ident, $it : item, $l : lifetime, $lit : ($b : block, $e : expr, $i : ident, $it : item, $l : lifetime, $lit :
literal, $m : meta, $p : pat, $pth : path, $s : stmt, $tt : tt, $ty : ty, literal, $m : meta, $p : pat, $pth : path, $s : stmt, $tt : tt, $ty : ty,
$vis : vis) => {} ; $vis : vis) => {} ;
} }
fn main() {} fn main() {}

View file

@ -5,10 +5,10 @@ fn main() {
let _y = let _y =
match x { match x {
Some(_) => Some(_) =>
["some(_)".to_string(), "not".to_string(), "SO".to_string(), ["some(_)".to_string(), "not".to_string(), "SO".to_string(),
"long".to_string(), "string".to_string()], "long".to_string(), "string".to_string()],
None => None =>
["none".to_string(), "a".to_string(), "a".to_string(), ["none".to_string(), "a".to_string(), "a".to_string(),
"a".to_string(), "a".to_string()], "a".to_string(), "a".to_string()],
}; };
} }

View file

@ -48,9 +48,9 @@ fn _4() {
let _ = let _ =
#[rustc_dummy] match () { #[rustc_dummy] match () {
#![rustc_dummy] #![rustc_dummy]
() => (), () => (),
}; };
} }
fn _5() { fn _5() {
@ -156,56 +156,56 @@ fn _11() {
let _ = #[rustc_dummy] 0 as usize; let _ = #[rustc_dummy] 0 as usize;
let _ = let _ =
#[rustc_dummy] while false { #[rustc_dummy] while false {
#![rustc_dummy] #![rustc_dummy]
}; };
let _ = let _ =
#[rustc_dummy] while let None = Some(()) { #[rustc_dummy] while let None = Some(()) {
#![rustc_dummy] #![rustc_dummy]
}; };
let _ = let _ =
#[rustc_dummy] for _ in 0..0 { #[rustc_dummy] for _ in 0..0 {
#![rustc_dummy] #![rustc_dummy]
}; };
let _ = let _ =
#[rustc_dummy] loop { #[rustc_dummy] loop {
#![rustc_dummy] #![rustc_dummy]
}; };
let _ = let _ =
#[rustc_dummy] match false { #[rustc_dummy] match false {
#![rustc_dummy] #![rustc_dummy]
_ => (), _ => (),
}; };
let _ = #[rustc_dummy] || #[rustc_dummy] (); let _ = #[rustc_dummy] || #[rustc_dummy] ();
let _ = #[rustc_dummy] move || #[rustc_dummy] (); let _ = #[rustc_dummy] move || #[rustc_dummy] ();
let _ = let _ =
#[rustc_dummy] || #[rustc_dummy] ||
{ {
#![rustc_dummy] #![rustc_dummy]
#[rustc_dummy] #[rustc_dummy]
() ()
}; };
let _ = let _ =
#[rustc_dummy] move || #[rustc_dummy] move ||
{ {
#![rustc_dummy] #![rustc_dummy]
#[rustc_dummy] #[rustc_dummy]
() ()
}; };
let _ = let _ =
#[rustc_dummy] { #[rustc_dummy] {
#![rustc_dummy] #![rustc_dummy]
}; };
let _ = let _ =
#[rustc_dummy] { #[rustc_dummy] {
#![rustc_dummy] #![rustc_dummy]
let _ = (); let _ = ();
}; };
let _ = let _ =
#[rustc_dummy] { #[rustc_dummy] {
#![rustc_dummy] #![rustc_dummy]
let _ = (); let _ = ();
() ()
}; };
let mut x = 0; let mut x = 0;
let _ = #[rustc_dummy] x = 15; let _ = #[rustc_dummy] x = 15;
let _ = #[rustc_dummy] x += 15; let _ = #[rustc_dummy] x += 15;

View file

@ -4,26 +4,26 @@
fn main() { fn main() {
let _v1 = let _v1 =
[ [
// Comment // Comment
0, 0,
// Comment // Comment
1, 1,
// Comment // Comment
2]; 2];
let _v2 = let _v2 =
[0, // Comment [0, // Comment
1, // Comment 1, // Comment
2]; // Comment 2]; // Comment
let _v3 = let _v3 =
[ [
/* Comment */ /* Comment */
0, 0,
/* Comment */ /* Comment */
1, 1,
/* Comment */ /* Comment */
2]; 2];
let _v4 = let _v4 =
[0, /* Comment */ [0, /* Comment */
1, /* Comment */ 1, /* Comment */
2]; /* Comment */ 2]; /* Comment */
} }

View file

@ -16,11 +16,11 @@ LL | bug!();
= note: this error originates in the macro `bug` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the macro `bug` (in Nightly builds, run with -Z macro-backtrace for more info)
error: unexpected token: `{ error: unexpected token: `{
let res = let res =
::alloc::fmt::format(::core::fmt::Arguments::new_v1(&[""], ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&[""],
&[::core::fmt::ArgumentV1::new_display(&"u8")])); &[::core::fmt::ArgumentV1::new_display(&"u8")]));
res res
}.as_str()` }.as_str()`
--> $DIR/key-value-expansion.rs:48:23 --> $DIR/key-value-expansion.rs:48:23
| |
LL | doc_comment! {format!("{coor}", coor = stringify!($t1)).as_str()} LL | doc_comment! {format!("{coor}", coor = stringify!($t1)).as_str()}

View file

@ -15,4 +15,4 @@ trait Foo<const KIND : bool = true> {}
fn foo<const SIZE : usize = 5>() {} fn foo<const SIZE : usize = 5>() {}
struct Range<const FROM : usize = 0, const LEN : usize = 0, const TO : usize = struct Range<const FROM : usize = 0, const LEN : usize = 0, const TO : usize =
FROM>; FROM>;

View file

@ -7,13 +7,11 @@ extern crate std;
// check-pass // check-pass
pub fn main() ({ pub fn main() ({
(if (true as bool) (if (true as bool)
({ } as ({ } as
()) else if (let Some(a) = ()) else if (let Some(a) =
((Some as ((Some as
fn(i32) -> Option<i32> {Option::<i32>::Some})((3 fn(i32) -> Option<i32> {Option::<i32>::Some})((3
as as i32)) as Option<i32>) as bool) ({ } as ())
i32)) as ())
as Option<i32>) as bool) } as ())
({ } as ()) as ())
} as ())

View file

@ -1,9 +1,9 @@
PRINT-ATTR INPUT (DISPLAY): impl Foo < PRINT-ATTR INPUT (DISPLAY): impl Foo <
[u8 ; [u8 ;
{ {
#! [rustc_dummy(cursed_inner)] #! [allow(unused)] struct Inner #! [rustc_dummy(cursed_inner)] #! [allow(unused)] struct Inner
{ field : [u8 ; { #! [rustc_dummy(another_cursed_inner)] 1 }] } 0 { field : [u8 ; { #! [rustc_dummy(another_cursed_inner)] 1 }] } 0
}] > { #! [rustc_dummy(evaluated_attr)] fn bar() {} } }] > { #! [rustc_dummy(evaluated_attr)] fn bar() {} }
PRINT-ATTR INPUT (DEBUG): TokenStream [ PRINT-ATTR INPUT (DEBUG): TokenStream [
Ident { Ident {
ident: "impl", ident: "impl",

View file

@ -4,23 +4,23 @@ struct Foo < #[cfg(FALSE)] A, B >
#[cfg(FALSE)] first : String, #[cfg_attr(FALSE, deny(warnings))] second : #[cfg(FALSE)] first : String, #[cfg_attr(FALSE, deny(warnings))] second :
bool, third : bool, third :
[u8 ; [u8 ;
{ {
#[cfg(FALSE)] struct Bar ; #[cfg(not(FALSE))] struct Inner ; #[cfg(FALSE)] struct Bar ; #[cfg(not(FALSE))] struct Inner ;
#[cfg(FALSE)] let a = 25 ; match true #[cfg(FALSE)] let a = 25 ; match true
{ {
#[cfg(FALSE)] true => {}, #[cfg(FALSE)] true => {}, #[cfg_attr(not(FALSE), allow(warnings))]
#[cfg_attr(not(FALSE), allow(warnings))] false => {}, _ => {} false => {}, _ => {}
} ; #[print_helper(should_be_removed)] fn removed_fn() } ; #[print_helper(should_be_removed)] fn removed_fn()
{ #! [cfg(FALSE)] } #[print_helper(c)] #[cfg(not(FALSE))] fn { #! [cfg(FALSE)] } #[print_helper(c)] #[cfg(not(FALSE))] fn kept_fn()
kept_fn() { #! [cfg(not(FALSE))] let my_val = true ; } enum TupleEnum { #! [cfg(not(FALSE))] let my_val = true ; } enum TupleEnum
{ {
Foo(#[cfg(FALSE)] u8, #[cfg(FALSE)] bool, #[cfg(not(FALSE))] i32, Foo(#[cfg(FALSE)] u8, #[cfg(FALSE)] bool, #[cfg(not(FALSE))] i32,
#[cfg(FALSE)] String, u8) #[cfg(FALSE)] String, u8)
} struct } struct
TupleStruct(#[cfg(FALSE)] String, #[cfg(not(FALSE))] i32, TupleStruct(#[cfg(FALSE)] String, #[cfg(not(FALSE))] i32,
#[cfg(FALSE)] bool, u8) ; fn plain_removed_fn() #[cfg(FALSE)] bool, u8) ; fn plain_removed_fn()
{ #! [cfg_attr(not(FALSE), cfg(FALSE))] } 0 { #! [cfg_attr(not(FALSE), cfg(FALSE))] } 0
}], #[print_helper(d)] fourth : B }], #[print_helper(d)] fourth : B
} }
PRINT-ATTR INPUT (DEBUG): TokenStream [ PRINT-ATTR INPUT (DEBUG): TokenStream [
Punct { Punct {
@ -1276,14 +1276,14 @@ PRINT-DERIVE INPUT (DISPLAY): #[print_helper(a)] #[allow(dead_code)] #[print_hel
{ {
second : bool, third : second : bool, third :
[u8 ; [u8 ;
{ {
#[cfg(not(FALSE))] struct Inner ; match true #[cfg(not(FALSE))] struct Inner ; match true
{ #[allow(warnings)] false => {}, _ => {} } ; #[print_helper(c)] { #[allow(warnings)] false => {}, _ => {} } ; #[print_helper(c)]
#[cfg(not(FALSE))] fn kept_fn() #[cfg(not(FALSE))] fn kept_fn()
{ #! [cfg(not(FALSE))] let my_val = true ; } enum TupleEnum { #! [cfg(not(FALSE))] let my_val = true ; } enum TupleEnum
{ Foo(#[cfg(not(FALSE))] i32, u8) } struct { Foo(#[cfg(not(FALSE))] i32, u8) } struct
TupleStruct(#[cfg(not(FALSE))] i32, u8) ; 0 TupleStruct(#[cfg(not(FALSE))] i32, u8) ; 0
}], #[print_helper(d)] fourth : B }], #[print_helper(d)] fourth : B
} }
PRINT-DERIVE INPUT (DEBUG): TokenStream [ PRINT-DERIVE INPUT (DEBUG): TokenStream [
Punct { Punct {

View file

@ -2,10 +2,10 @@ PRINT-DERIVE INPUT (DISPLAY): struct Foo
{ {
val : val :
[bool ; [bool ;
{ {
let a = #[rustc_dummy(first)] #[rustc_dummy(second)] let a = #[rustc_dummy(first)] #[rustc_dummy(second)]
{ #! [allow(unused)] 30 } ; 0 { #! [allow(unused)] 30 } ; 0
}] }]
} }
PRINT-DERIVE INPUT (DEBUG): TokenStream [ PRINT-DERIVE INPUT (DEBUG): TokenStream [
Ident { Ident {

View file

@ -19,29 +19,27 @@ extern crate proc_macro;
fn main() { fn main() {
[crate::TokenStream::from(crate::TokenTree::Ident(crate::Ident::new("let", [crate::TokenStream::from(crate::TokenTree::Ident(crate::Ident::new("let",
crate::Span::recover_proc_macro_span(0)))), crate::Span::recover_proc_macro_span(0)))),
crate::TokenStream::from(crate::TokenTree::Ident(crate::Ident::new("hello", crate::TokenStream::from(crate::TokenTree::Ident(crate::Ident::new("hello",
crate::Span::recover_proc_macro_span(1)))), crate::Span::recover_proc_macro_span(1)))),
crate::TokenStream::from(crate::TokenTree::Punct(crate::Punct::new('\u{3d}', crate::TokenStream::from(crate::TokenTree::Punct(crate::Punct::new('\u{3d}',
crate::Spacing::Alone))), crate::Spacing::Alone))),
crate::TokenStream::from(crate::TokenTree::Literal({ crate::TokenStream::from(crate::TokenTree::Literal({
let mut iter = let mut iter =
"\"world\"".parse::<crate::TokenStream>().unwrap().into_iter(); "\"world\"".parse::<crate::TokenStream>().unwrap().into_iter();
if let (Some(crate::TokenTree::Literal(mut lit)), if let (Some(crate::TokenTree::Literal(mut lit)),
None) = None) =
(iter.next(), (iter.next(), iter.next()) {
iter.next()) lit.set_span(crate::Span::recover_proc_macro_span(2));
{ lit
lit.set_span(crate::Span::recover_proc_macro_span(2)); } else {
lit {
} else { ::core::panicking::panic("internal error: entered unreachable code")
{ }
::core::panicking::panic("internal error: entered unreachable code") }
} })),
} crate::TokenStream::from(crate::TokenTree::Punct(crate::Punct::new('\u{3b}',
})), crate::Spacing::Alone)))].iter().cloned().collect::<crate::TokenStream>()
crate::TokenStream::from(crate::TokenTree::Punct(crate::Punct::new('\u{3b}',
crate::Spacing::Alone)))].iter().cloned().collect::<crate::TokenStream>()
} }
const _: () = const _: () =
{ {

View file

@ -37,7 +37,7 @@ checker!(rename_params, r#"impl Foo
fn hello(#[angery(true)] a : i32, #[a2] b : i32, #[what = "how"] c : u32) fn hello(#[angery(true)] a : i32, #[a2] b : i32, #[what = "how"] c : u32)
{} fn {} fn
hello2(#[a1] #[a2] a : i32, #[what = "how"] b : i32, #[angery(true)] c : hello2(#[a1] #[a2] a : i32, #[what = "how"] b : i32, #[angery(true)] c :
u32) {} fn u32) {} fn
hello_self(#[a1] #[a2] & self, #[a1] #[a2] a : i32, #[what = "how"] b : hello_self(#[a1] #[a2] & self, #[a1] #[a2] a : i32, #[what = "how"] b :
i32, #[angery(true)] c : u32) {} i32, #[angery(true)] c : u32) {}
}"#); }"#);

View file

@ -10,5 +10,5 @@ extern crate std;
trait Animal { } trait Animal { }
fn main() { fn main() {
pub type ServeFut = /*impl Trait*/; pub type ServeFut = /*impl Trait*/;
} }