@@ -47,6 +47,7 @@ use rustc_ast::ptr::P;
47
47
use rustc_ast_pretty:: pprust;
48
48
use rustc_span:: edition:: Edition ;
49
49
use std:: fs;
50
+ use std:: mem;
50
51
use std:: path:: Path ;
51
52
use std:: process;
52
53
use std:: sync:: atomic:: { AtomicUsize , Ordering } ;
@@ -206,7 +207,7 @@ fn librustc_parenthesize(mut librustc_expr: P<ast::Expr>) -> P<ast::Expr> {
206
207
ExprKind , GenericArg , GenericBound , Local , LocalKind , Pat , PolyTraitRef , Stmt , StmtKind ,
207
208
StructExpr , StructRest , TraitBoundModifiers , Ty ,
208
209
} ;
209
- use rustc_ast:: mut_visit:: { visit_clobber , walk_flat_map_assoc_item, MutVisitor } ;
210
+ use rustc_ast:: mut_visit:: { walk_flat_map_assoc_item, MutVisitor } ;
210
211
use rustc_ast:: visit:: { AssocCtxt , BoundKind } ;
211
212
use rustc_data_structures:: flat_map_in_place:: FlatMapInPlace ;
212
213
use rustc_span:: DUMMY_SP ;
@@ -280,13 +281,16 @@ fn librustc_parenthesize(mut librustc_expr: P<ast::Expr>) -> P<ast::Expr> {
280
281
match e. kind {
281
282
ExprKind :: Block ( ..) | ExprKind :: If ( ..) | ExprKind :: Let ( ..) => { }
282
283
ExprKind :: Binary ( ..) if contains_let_chain ( e) => { }
283
- _ => visit_clobber ( & mut * * e, |inner| Expr {
284
- id : ast:: DUMMY_NODE_ID ,
285
- kind : ExprKind :: Paren ( P ( inner) ) ,
286
- span : DUMMY_SP ,
287
- attrs : ThinVec :: new ( ) ,
288
- tokens : None ,
289
- } ) ,
284
+ _ => {
285
+ let inner = mem:: replace ( e, Expr :: dummy ( ) ) ;
286
+ * * e = Expr {
287
+ id : ast:: DUMMY_NODE_ID ,
288
+ kind : ExprKind :: Paren ( inner) ,
289
+ span : DUMMY_SP ,
290
+ attrs : ThinVec :: new ( ) ,
291
+ tokens : None ,
292
+ } ;
293
+ }
290
294
}
291
295
}
292
296
@@ -319,15 +323,15 @@ fn librustc_parenthesize(mut librustc_expr: P<ast::Expr>) -> P<ast::Expr> {
319
323
}
320
324
}
321
325
322
- fn visit_block ( & mut self , block : & mut P < Block > ) {
326
+ fn visit_block ( & mut self , block : & mut Block ) {
323
327
self . visit_id ( & mut block. id ) ;
324
328
block
325
329
. stmts
326
330
. flat_map_in_place ( |stmt| flat_map_stmt ( stmt, self ) ) ;
327
331
self . visit_span ( & mut block. span ) ;
328
332
}
329
333
330
- fn visit_local ( & mut self , local : & mut P < Local > ) {
334
+ fn visit_local ( & mut self , local : & mut Local ) {
331
335
match & mut local. kind {
332
336
LocalKind :: Decl => { }
333
337
LocalKind :: Init ( init) => {
0 commit comments