Skip to content

Commit d7fe47d

Browse files
committed
Preserve box syntax
1 parent 609e621 commit d7fe47d

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

src/expr.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,11 +378,13 @@ fn rewrite_unary_op(context: &RewriteContext,
378378
-> Option<String> {
379379
// For some reason, an UnOp is not spanned like BinOp!
380380
let operator_str = match *op {
381-
ast::UnOp::UnUniq => "&",
381+
ast::UnOp::UnUniq => "box ",
382382
ast::UnOp::UnDeref => "*",
383383
ast::UnOp::UnNot => "!",
384384
ast::UnOp::UnNeg => "-"
385385
};
386386

387-
Some(format!("{}{}", operator_str, try_opt!(expr.rewrite(context, width - 1, offset))))
387+
let subexpr = try_opt!(expr.rewrite(context, width - operator_str.len(), offset));
388+
389+
Some(format!("{}{}", operator_str, subexpr))
388390
}

tests/source/expr.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// Test expressions
22

33
fn foo() -> bool {
4+
let boxed: Box<i32> = box 5;
5+
let referenced = &5;
6+
47
let very_long_variable_name = ( a + first + simple + test );
58
let very_long_variable_name = (a + first + simple + test + AAAAAAAAAAAAA + BBBBBBBBBBBBBBBBB + b + c);
69

tests/target/expr.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// Test expressions
22

33
fn foo() -> bool {
4+
let boxed: Box<i32> = box 5;
5+
let referenced = &5;
6+
47
let very_long_variable_name = (a + first + simple + test);
58
let very_long_variable_name = (a + first + simple + test + AAAAAAAAAAAAA + BBBBBBBBBBBBBBBBB +
69
b + c);

0 commit comments

Comments
 (0)