Merge pull request #3260 from topecongiro/issue-3004
Do not modify original source code inside macro call
This commit is contained in:
commit
2c204c11d1
4 changed files with 19 additions and 2 deletions
|
|
@ -59,7 +59,7 @@ pub fn rewrite_closure(
|
|||
}
|
||||
|
||||
let result = match fn_decl.output {
|
||||
ast::FunctionRetTy::Default(_) => {
|
||||
ast::FunctionRetTy::Default(_) if !context.inside_macro() => {
|
||||
try_rewrite_without_block(body, &prefix, context, shape, body_shape)
|
||||
}
|
||||
_ => None,
|
||||
|
|
@ -306,6 +306,7 @@ pub fn rewrite_last_closure(
|
|||
let body = match body.node {
|
||||
ast::ExprKind::Block(ref block, _)
|
||||
if !is_unsafe_block(block)
|
||||
&& !context.inside_macro()
|
||||
&& is_simple_block(block, Some(&body.attrs), context.source_map) =>
|
||||
{
|
||||
stmt_expr(&block.stmts[0]).unwrap_or(body)
|
||||
|
|
|
|||
|
|
@ -583,7 +583,13 @@ impl Rewrite for ast::Ty {
|
|||
let is_dyn = tobj_syntax == ast::TraitObjectSyntax::Dyn;
|
||||
// 4 is length of 'dyn '
|
||||
let shape = if is_dyn { shape.offset_left(4)? } else { shape };
|
||||
let res = bounds.rewrite(context, shape)?;
|
||||
let mut res = bounds.rewrite(context, shape)?;
|
||||
// We may have falsely removed a trailing `+` inside macro call.
|
||||
if context.inside_macro() && bounds.len() == 1 {
|
||||
if context.snippet(self.span).ends_with('+') && !res.ends_with('+') {
|
||||
res.push('+');
|
||||
}
|
||||
}
|
||||
if is_dyn {
|
||||
Some(format!("dyn {}", res))
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -466,3 +466,8 @@ static ROOTED_TRACEABLES: RefCell<RootedTraceableSet> =
|
|||
RefCell::new(RootedTraceableSet::new(1234)) ;
|
||||
|
||||
] ;
|
||||
|
||||
fn issue3004() {
|
||||
foo!(|_| { ( ) });
|
||||
stringify!(( foo+ ));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1043,3 +1043,8 @@ thread_local![
|
|||
static ROOTED_TRACEABLES: RefCell<RootedTraceableSet> =
|
||||
RefCell::new(RootedTraceableSet::new(1234));
|
||||
];
|
||||
|
||||
fn issue3004() {
|
||||
foo!(|_| { () });
|
||||
stringify!((foo+));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue