Merge branch master into next
diff --git a/src/expr.rs b/src/expr.rs
index 1f4e1bd..2be23fd 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -2416,12 +2416,23 @@
#[cfg(feature = "full")]
impl Synom for ExprUnsafe {
named!(parse -> Self, do_parse!(
+ outer_attrs: many0!(Attribute::old_parse_outer) >>
unsafe_: keyword!(unsafe) >>
- b: syn!(Block) >>
+ block: braces!(tuple!(
+ many0!(Attribute::old_parse_inner),
+ call!(Block::parse_within),
+ )) >>
(ExprUnsafe {
- attrs: Vec::new(),
+ attrs: {
+ let mut attrs = outer_attrs;
+ attrs.extend((block.1).0);
+ attrs
+ },
unsafe_token: unsafe_,
- block: b,
+ block: Block {
+ brace_token: block.0,
+ stmts: (block.1).1,
+ },
})
));
@@ -3455,7 +3466,10 @@
fn to_tokens(&self, tokens: &mut TokenStream) {
outer_attrs_to_tokens(&self.attrs, tokens);
self.unsafe_token.to_tokens(tokens);
- self.block.to_tokens(tokens);
+ self.block.brace_token.surround(tokens, |tokens| {
+ inner_attrs_to_tokens(&self.attrs, tokens);
+ tokens.append_all(&self.block.stmts);
+ });
}
}