Print unsafety of attribute in AST unpretty

This commit is contained in:
Urgau 2024-10-26 13:33:36 +02:00
parent f249fdd962
commit f5b6f938ce
2 changed files with 12 additions and 1 deletions

View File

@ -627,6 +627,13 @@ pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::ops::Dere
fn print_attr_item(&mut self, item: &ast::AttrItem, span: Span) {
self.ibox(0);
match item.unsafety {
ast::Safety::Unsafe(_) => {
self.word("unsafe");
self.popen();
}
ast::Safety::Default | ast::Safety::Safe(_) => {}
}
match &item.args {
AttrArgs::Delimited(DelimArgs { dspan: _, delim, tokens }) => self.print_mac_common(
Some(MacHeader::Path(&item.path)),
@ -655,6 +662,10 @@ pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::ops::Dere
self.word(token_str);
}
}
match item.unsafety {
ast::Safety::Unsafe(_) => self.pclose(),
ast::Safety::Default | ast::Safety::Safe(_) => {}
}
self.end();
}

View File

@ -4,7 +4,7 @@
#[no_mangle]
extern "C" fn foo() {}
#[no_mangle]
#[unsafe(no_mangle)]
extern "C" fn bar() {}
#[cfg_attr(FALSE, unsafe(no_mangle))]