Skip to content

Commit 9453803

Browse files
committed
Eliminate rustc_hir_pretty's print_expr_maybe_paren
1 parent c5abbb3 commit 9453803

File tree

1 file changed

+17
-21
lines changed
  • compiler/rustc_hir_pretty/src

1 file changed

+17
-21
lines changed

compiler/rustc_hir_pretty/src/lib.rs

+17-21
Original file line numberDiff line numberDiff line change
@@ -1010,10 +1010,6 @@ impl<'a> State<'a> {
10101010
self.pclose()
10111011
}
10121012

1013-
fn print_expr_maybe_paren(&mut self, expr: &hir::Expr<'_>, prec: i8) {
1014-
self.print_expr_cond_paren(expr, expr.precedence() < prec)
1015-
}
1016-
10171013
/// Prints an expr using syntax that's acceptable in a condition position, such as the `cond` in
10181014
/// `if cond { ... }`.
10191015
fn print_expr_as_cond(&mut self, expr: &hir::Expr<'_>) {
@@ -1141,7 +1137,7 @@ impl<'a> State<'a> {
11411137
_ => parser::PREC_UNAMBIGUOUS,
11421138
};
11431139

1144-
self.print_expr_maybe_paren(func, prec);
1140+
self.print_expr_cond_paren(func, func.precedence() < prec);
11451141
self.print_call_post(args)
11461142
}
11471143

@@ -1152,7 +1148,7 @@ impl<'a> State<'a> {
11521148
args: &[hir::Expr<'_>],
11531149
) {
11541150
let base_args = args;
1155-
self.print_expr_maybe_paren(receiver, parser::PREC_UNAMBIGUOUS);
1151+
self.print_expr_cond_paren(receiver, receiver.precedence() < parser::PREC_UNAMBIGUOUS);
11561152
self.word(".");
11571153
self.print_ident(segment.ident);
11581154

@@ -1188,15 +1184,15 @@ impl<'a> State<'a> {
11881184
_ => left_prec,
11891185
};
11901186

1191-
self.print_expr_maybe_paren(lhs, left_prec);
1187+
self.print_expr_cond_paren(lhs, lhs.precedence() < left_prec);
11921188
self.space();
11931189
self.word_space(op.node.as_str());
1194-
self.print_expr_maybe_paren(rhs, right_prec)
1190+
self.print_expr_cond_paren(rhs, rhs.precedence() < right_prec)
11951191
}
11961192

11971193
fn print_expr_unary(&mut self, op: hir::UnOp, expr: &hir::Expr<'_>) {
11981194
self.word(op.as_str());
1199-
self.print_expr_maybe_paren(expr, parser::PREC_PREFIX)
1195+
self.print_expr_cond_paren(expr, expr.precedence() < parser::PREC_PREFIX)
12001196
}
12011197

12021198
fn print_expr_addr_of(
@@ -1213,7 +1209,7 @@ impl<'a> State<'a> {
12131209
self.print_mutability(mutability, true);
12141210
}
12151211
}
1216-
self.print_expr_maybe_paren(expr, parser::PREC_PREFIX)
1212+
self.print_expr_cond_paren(expr, expr.precedence() < parser::PREC_PREFIX)
12171213
}
12181214

12191215
fn print_literal(&mut self, lit: &hir::Lit) {
@@ -1352,7 +1348,7 @@ impl<'a> State<'a> {
13521348
}
13531349
hir::ExprKind::Cast(expr, ty) => {
13541350
let prec = AssocOp::As.precedence() as i8;
1355-
self.print_expr_maybe_paren(expr, prec);
1351+
self.print_expr_cond_paren(expr, expr.precedence() < prec);
13561352
self.space();
13571353
self.word_space("as");
13581354
self.print_type(ty);
@@ -1454,26 +1450,26 @@ impl<'a> State<'a> {
14541450
}
14551451
hir::ExprKind::Assign(lhs, rhs, _) => {
14561452
let prec = AssocOp::Assign.precedence() as i8;
1457-
self.print_expr_maybe_paren(lhs, prec + 1);
1453+
self.print_expr_cond_paren(lhs, lhs.precedence() <= prec);
14581454
self.space();
14591455
self.word_space("=");
1460-
self.print_expr_maybe_paren(rhs, prec);
1456+
self.print_expr_cond_paren(rhs, rhs.precedence() < prec);
14611457
}
14621458
hir::ExprKind::AssignOp(op, lhs, rhs) => {
14631459
let prec = AssocOp::Assign.precedence() as i8;
1464-
self.print_expr_maybe_paren(lhs, prec + 1);
1460+
self.print_expr_cond_paren(lhs, lhs.precedence() <= prec);
14651461
self.space();
14661462
self.word(op.node.as_str());
14671463
self.word_space("=");
1468-
self.print_expr_maybe_paren(rhs, prec);
1464+
self.print_expr_cond_paren(rhs, rhs.precedence() < prec);
14691465
}
14701466
hir::ExprKind::Field(expr, ident) => {
1471-
self.print_expr_maybe_paren(expr, parser::PREC_UNAMBIGUOUS);
1467+
self.print_expr_cond_paren(expr, expr.precedence() < parser::PREC_UNAMBIGUOUS);
14721468
self.word(".");
14731469
self.print_ident(ident);
14741470
}
14751471
hir::ExprKind::Index(expr, index, _) => {
1476-
self.print_expr_maybe_paren(expr, parser::PREC_UNAMBIGUOUS);
1472+
self.print_expr_cond_paren(expr, expr.precedence() < parser::PREC_UNAMBIGUOUS);
14771473
self.word("[");
14781474
self.print_expr(index);
14791475
self.word("]");
@@ -1487,7 +1483,7 @@ impl<'a> State<'a> {
14871483
}
14881484
if let Some(expr) = opt_expr {
14891485
self.space();
1490-
self.print_expr_maybe_paren(expr, parser::PREC_JUMP);
1486+
self.print_expr_cond_paren(expr, expr.precedence() < parser::PREC_JUMP);
14911487
}
14921488
}
14931489
hir::ExprKind::Continue(destination) => {
@@ -1501,13 +1497,13 @@ impl<'a> State<'a> {
15011497
self.word("return");
15021498
if let Some(expr) = result {
15031499
self.word(" ");
1504-
self.print_expr_maybe_paren(expr, parser::PREC_JUMP);
1500+
self.print_expr_cond_paren(expr, expr.precedence() < parser::PREC_JUMP);
15051501
}
15061502
}
15071503
hir::ExprKind::Become(result) => {
15081504
self.word("become");
15091505
self.word(" ");
1510-
self.print_expr_maybe_paren(result, parser::PREC_JUMP);
1506+
self.print_expr_cond_paren(result, result.precedence() < parser::PREC_JUMP);
15111507
}
15121508
hir::ExprKind::InlineAsm(asm) => {
15131509
self.word("asm!");
@@ -1532,7 +1528,7 @@ impl<'a> State<'a> {
15321528
}
15331529
hir::ExprKind::Yield(expr, _) => {
15341530
self.word_space("yield");
1535-
self.print_expr_maybe_paren(expr, parser::PREC_JUMP);
1531+
self.print_expr_cond_paren(expr, expr.precedence() < parser::PREC_JUMP);
15361532
}
15371533
hir::ExprKind::Err(_) => {
15381534
self.popen();

0 commit comments

Comments
 (0)