@@ -111,13 +111,13 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
111
111
fn stmt ( & mut self , stmt : & hir:: Stmt , pred : CFGIndex ) -> CFGIndex {
112
112
let hir_id = self . tcx . hir . node_to_hir_id ( stmt. node . id ( ) ) ;
113
113
match stmt. node {
114
- hir:: StmtDecl ( ref decl, _) => {
114
+ hir:: StmtKind :: Decl ( ref decl, _) => {
115
115
let exit = self . decl ( & decl, pred) ;
116
116
self . add_ast_node ( hir_id. local_id , & [ exit] )
117
117
}
118
118
119
- hir:: StmtExpr ( ref expr, _) |
120
- hir:: StmtSemi ( ref expr, _) => {
119
+ hir:: StmtKind :: Expr ( ref expr, _) |
120
+ hir:: StmtKind :: Semi ( ref expr, _) => {
121
121
let exit = self . expr ( & expr, pred) ;
122
122
self . add_ast_node ( hir_id. local_id , & [ exit] )
123
123
}
@@ -126,12 +126,12 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
126
126
127
127
fn decl ( & mut self , decl : & hir:: Decl , pred : CFGIndex ) -> CFGIndex {
128
128
match decl. node {
129
- hir:: DeclLocal ( ref local) => {
129
+ hir:: DeclKind :: Local ( ref local) => {
130
130
let init_exit = self . opt_expr ( & local. init , pred) ;
131
131
self . pat ( & local. pat , init_exit)
132
132
}
133
133
134
- hir:: DeclItem ( _) => pred,
134
+ hir:: DeclKind :: Item ( _) => pred,
135
135
}
136
136
}
137
137
@@ -179,12 +179,12 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
179
179
180
180
fn expr ( & mut self , expr : & hir:: Expr , pred : CFGIndex ) -> CFGIndex {
181
181
match expr. node {
182
- hir:: ExprBlock ( ref blk, _) => {
182
+ hir:: ExprKind :: Block ( ref blk, _) => {
183
183
let blk_exit = self . block ( & blk, pred) ;
184
184
self . add_ast_node ( expr. hir_id . local_id , & [ blk_exit] )
185
185
}
186
186
187
- hir:: ExprIf ( ref cond, ref then, None ) => {
187
+ hir:: ExprKind :: If ( ref cond, ref then, None ) => {
188
188
//
189
189
// [pred]
190
190
// |
@@ -204,7 +204,7 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
204
204
self . add_ast_node ( expr. hir_id . local_id , & [ cond_exit, then_exit] ) // 3,4
205
205
}
206
206
207
- hir:: ExprIf ( ref cond, ref then, Some ( ref otherwise) ) => {
207
+ hir:: ExprKind :: If ( ref cond, ref then, Some ( ref otherwise) ) => {
208
208
//
209
209
// [pred]
210
210
// |
@@ -225,7 +225,7 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
225
225
self . add_ast_node ( expr. hir_id . local_id , & [ then_exit, else_exit] ) // 4, 5
226
226
}
227
227
228
- hir:: ExprWhile ( ref cond, ref body, _) => {
228
+ hir:: ExprKind :: While ( ref cond, ref body, _) => {
229
229
//
230
230
// [pred]
231
231
// |
@@ -267,7 +267,7 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
267
267
expr_exit
268
268
}
269
269
270
- hir:: ExprLoop ( ref body, _, _) => {
270
+ hir:: ExprKind :: Loop ( ref body, _, _) => {
271
271
//
272
272
// [pred]
273
273
// |
@@ -295,11 +295,11 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
295
295
expr_exit
296
296
}
297
297
298
- hir:: ExprMatch ( ref discr, ref arms, _) => {
298
+ hir:: ExprKind :: Match ( ref discr, ref arms, _) => {
299
299
self . match_ ( expr. hir_id . local_id , & discr, & arms, pred)
300
300
}
301
301
302
- hir:: ExprBinary ( op, ref l, ref r) if op. node . is_lazy ( ) => {
302
+ hir:: ExprKind :: Binary ( op, ref l, ref r) if op. node . is_lazy ( ) => {
303
303
//
304
304
// [pred]
305
305
// |
@@ -319,14 +319,14 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
319
319
self . add_ast_node ( expr. hir_id . local_id , & [ l_exit, r_exit] ) // 3,4
320
320
}
321
321
322
- hir:: ExprRet ( ref v) => {
322
+ hir:: ExprKind :: Ret ( ref v) => {
323
323
let v_exit = self . opt_expr ( v, pred) ;
324
324
let b = self . add_ast_node ( expr. hir_id . local_id , & [ v_exit] ) ;
325
325
self . add_returning_edge ( expr, b) ;
326
326
self . add_unreachable_node ( )
327
327
}
328
328
329
- hir:: ExprBreak ( destination, ref opt_expr) => {
329
+ hir:: ExprKind :: Break ( destination, ref opt_expr) => {
330
330
let v = self . opt_expr ( opt_expr, pred) ;
331
331
let ( target_scope, break_dest) =
332
332
self . find_scope_edge ( expr, destination, ScopeCfKind :: Break ) ;
@@ -335,74 +335,74 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
335
335
self . add_unreachable_node ( )
336
336
}
337
337
338
- hir:: ExprContinue ( destination) => {
338
+ hir:: ExprKind :: Continue ( destination) => {
339
339
let ( target_scope, cont_dest) =
340
340
self . find_scope_edge ( expr, destination, ScopeCfKind :: Continue ) ;
341
341
let a = self . add_ast_node ( expr. hir_id . local_id , & [ pred] ) ;
342
342
self . add_exiting_edge ( expr, a, target_scope, cont_dest) ;
343
343
self . add_unreachable_node ( )
344
344
}
345
345
346
- hir:: ExprArray ( ref elems) => {
346
+ hir:: ExprKind :: Array ( ref elems) => {
347
347
self . straightline ( expr, pred, elems. iter ( ) . map ( |e| & * e) )
348
348
}
349
349
350
- hir:: ExprCall ( ref func, ref args) => {
350
+ hir:: ExprKind :: Call ( ref func, ref args) => {
351
351
self . call ( expr, pred, & func, args. iter ( ) . map ( |e| & * e) )
352
352
}
353
353
354
- hir:: ExprMethodCall ( .., ref args) => {
354
+ hir:: ExprKind :: MethodCall ( .., ref args) => {
355
355
self . call ( expr, pred, & args[ 0 ] , args[ 1 ..] . iter ( ) . map ( |e| & * e) )
356
356
}
357
357
358
- hir:: ExprIndex ( ref l, ref r) |
359
- hir:: ExprBinary ( _, ref l, ref r) if self . tables . is_method_call ( expr) => {
358
+ hir:: ExprKind :: Index ( ref l, ref r) |
359
+ hir:: ExprKind :: Binary ( _, ref l, ref r) if self . tables . is_method_call ( expr) => {
360
360
self . call ( expr, pred, & l, Some ( & * * r) . into_iter ( ) )
361
361
}
362
362
363
- hir:: ExprUnary ( _, ref e) if self . tables . is_method_call ( expr) => {
363
+ hir:: ExprKind :: Unary ( _, ref e) if self . tables . is_method_call ( expr) => {
364
364
self . call ( expr, pred, & e, None :: < hir:: Expr > . iter ( ) )
365
365
}
366
366
367
- hir:: ExprTup ( ref exprs) => {
367
+ hir:: ExprKind :: Tup ( ref exprs) => {
368
368
self . straightline ( expr, pred, exprs. iter ( ) . map ( |e| & * e) )
369
369
}
370
370
371
- hir:: ExprStruct ( _, ref fields, ref base) => {
371
+ hir:: ExprKind :: Struct ( _, ref fields, ref base) => {
372
372
let field_cfg = self . straightline ( expr, pred, fields. iter ( ) . map ( |f| & * f. expr ) ) ;
373
373
self . opt_expr ( base, field_cfg)
374
374
}
375
375
376
- hir:: ExprAssign ( ref l, ref r) |
377
- hir:: ExprAssignOp ( _, ref l, ref r) => {
376
+ hir:: ExprKind :: Assign ( ref l, ref r) |
377
+ hir:: ExprKind :: AssignOp ( _, ref l, ref r) => {
378
378
self . straightline ( expr, pred, [ r, l] . iter ( ) . map ( |& e| & * * e) )
379
379
}
380
380
381
- hir:: ExprIndex ( ref l, ref r) |
382
- hir:: ExprBinary ( _, ref l, ref r) => { // NB: && and || handled earlier
381
+ hir:: ExprKind :: Index ( ref l, ref r) |
382
+ hir:: ExprKind :: Binary ( _, ref l, ref r) => { // NB: && and || handled earlier
383
383
self . straightline ( expr, pred, [ l, r] . iter ( ) . map ( |& e| & * * e) )
384
384
}
385
385
386
- hir:: ExprBox ( ref e) |
387
- hir:: ExprAddrOf ( _, ref e) |
388
- hir:: ExprCast ( ref e, _) |
389
- hir:: ExprType ( ref e, _) |
390
- hir:: ExprUnary ( _, ref e) |
391
- hir:: ExprField ( ref e, _) |
392
- hir:: ExprYield ( ref e) |
393
- hir:: ExprRepeat ( ref e, _) => {
386
+ hir:: ExprKind :: Box ( ref e) |
387
+ hir:: ExprKind :: AddrOf ( _, ref e) |
388
+ hir:: ExprKind :: Cast ( ref e, _) |
389
+ hir:: ExprKind :: Type ( ref e, _) |
390
+ hir:: ExprKind :: Unary ( _, ref e) |
391
+ hir:: ExprKind :: Field ( ref e, _) |
392
+ hir:: ExprKind :: Yield ( ref e) |
393
+ hir:: ExprKind :: Repeat ( ref e, _) => {
394
394
self . straightline ( expr, pred, Some ( & * * e) . into_iter ( ) )
395
395
}
396
396
397
- hir:: ExprInlineAsm ( _, ref outputs, ref inputs) => {
397
+ hir:: ExprKind :: InlineAsm ( _, ref outputs, ref inputs) => {
398
398
let post_outputs = self . exprs ( outputs. iter ( ) . map ( |e| & * e) , pred) ;
399
399
let post_inputs = self . exprs ( inputs. iter ( ) . map ( |e| & * e) , post_outputs) ;
400
400
self . add_ast_node ( expr. hir_id . local_id , & [ post_inputs] )
401
401
}
402
402
403
- hir:: ExprClosure ( ..) |
404
- hir:: ExprLit ( ..) |
405
- hir:: ExprPath ( _) => {
403
+ hir:: ExprKind :: Closure ( ..) |
404
+ hir:: ExprKind :: Lit ( ..) |
405
+ hir:: ExprKind :: Path ( _) => {
406
406
self . straightline ( expr, pred, None :: < hir:: Expr > . iter ( ) )
407
407
}
408
408
}
0 commit comments