diff --git a/src/expr.rs b/src/expr.rs index 332d1f5a2f3..2bcb1d6d727 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -1134,11 +1134,10 @@ fn rewrite_unary_op(context: &RewriteContext, ast::UnOp::UnNot => "!", ast::UnOp::UnNeg => "-", }; + let operator_len = operator_str.len(); - let subexpr = - try_opt!(expr.rewrite(context, try_opt!(width.checked_sub(operator_str.len())), offset)); - - Some(format!("{}{}", operator_str, subexpr)) + expr.rewrite(context, try_opt!(width.checked_sub(operator_len)), offset + operator_len) + .map(|r| format!("{}{}", operator_str, r)) } fn rewrite_assignment(context: &RewriteContext, diff --git a/tests/source/expr.rs b/tests/source/expr.rs index 85ee7727451..d5e98f959d1 100644 --- a/tests/source/expr.rs +++ b/tests/source/expr.rs @@ -105,3 +105,9 @@ fn qux() { // A block with a comment. } } + +fn issue227() { + { + let handler = box DocumentProgressHandler::new(addr, DocumentProgressTask::DOMContentLoaded); + } +} diff --git a/tests/target/expr.rs b/tests/target/expr.rs index 45c654b738f..afc152ac828 100644 --- a/tests/target/expr.rs +++ b/tests/target/expr.rs @@ -139,3 +139,10 @@ fn qux() { // A block with a comment. } } + +fn issue227() { + { + let handler = box DocumentProgressHandler::new(addr, + DocumentProgressTask::DOMContentLoaded); + } +}