@@ -7,9 +7,8 @@ extern crate syntax;
7
7
use std:: borrow:: ToOwned ;
8
8
use std:: rc:: Rc ;
9
9
use syntax:: ast:: {
10
- BinOp_ , BiAdd , BiSub , BiMul , BiDiv , BiRem , BiShl , BiShr , UnNeg ,
11
- Delimited , Expr , ExprAssign , ExprAssignOp , ExprBinary , ExprUnary ,
12
- Ident , Mac , TokenTree
10
+ BinOpKind , Delimited , Expr , ExprKind ,
11
+ Ident , Mac , TokenTree , UnOp
13
12
} ;
14
13
use rustc_plugin:: Registry ;
15
14
use syntax:: codemap:: { DUMMY_SP , Span } ;
@@ -33,15 +32,15 @@ impl<'cx> Folder for WrappingFolder<'cx> {
33
32
34
33
fn fold_expr ( & mut self , expr : P < Expr > ) -> P < Expr > {
35
34
expr. map ( |expr| { match expr. node {
36
- ExprUnary ( UnNeg , inner) => {
35
+ ExprKind :: Unary ( UnOp :: Neg , inner) => {
37
36
// Recurse in sub-expressions
38
37
let inner = self . fold_expr ( inner) ;
39
38
// Rewrite `-a` to `a.wrapping_neg()`
40
39
let method = token:: str_to_ident ( "wrapping_neg" ) ;
41
40
self . cx . expr_method_call ( expr. span , inner, method, vec ! [ ] )
42
41
. and_then ( |e| e)
43
42
}
44
- ExprBinary ( op, left, right) => {
43
+ ExprKind :: Binary ( op, left, right) => {
45
44
// Recurse in sub-expressions
46
45
let left = self . fold_expr ( left) ;
47
46
let right = self . fold_expr ( right) ;
@@ -51,12 +50,12 @@ impl<'cx> Folder for WrappingFolder<'cx> {
51
50
expr. span , left, method, vec ! [ right] ) . and_then ( |e| e) ,
52
51
None =>
53
52
Expr {
54
- node : ExprBinary ( op, left, right) ,
53
+ node : ExprKind :: Binary ( op, left, right) ,
55
54
..expr
56
55
} ,
57
56
}
58
57
} ,
59
- ExprAssignOp ( op, target, source) => {
58
+ ExprKind :: AssignOp ( op, target, source) => {
60
59
// Recurse in sub-expressions
61
60
let source = self . fold_expr ( source) ;
62
61
// Rewrite e.g. `a += b` to `a = a.wrapping_add(b)`
@@ -65,9 +64,9 @@ impl<'cx> Folder for WrappingFolder<'cx> {
65
64
Some ( method) => {
66
65
let call = self . cx . expr_method_call (
67
66
expr. span , target. clone ( ) , method, vec ! [ source] ) ;
68
- ExprAssign ( target, call)
67
+ ExprKind :: Assign ( target, call)
69
68
} ,
70
- None => ExprAssignOp ( op, target, source) ,
69
+ None => ExprKind :: AssignOp ( op, target, source) ,
71
70
} ,
72
71
..expr
73
72
}
@@ -78,15 +77,15 @@ impl<'cx> Folder for WrappingFolder<'cx> {
78
77
}
79
78
80
79
/// Returns the wrapping version of an operator, if applicable.
81
- fn wrapping_method ( op : BinOp_ ) -> Option < Ident > {
80
+ fn wrapping_method ( op : BinOpKind ) -> Option < Ident > {
82
81
Some ( token:: str_to_ident ( match op {
83
- BiAdd => "wrapping_add" ,
84
- BiSub => "wrapping_sub" ,
85
- BiMul => "wrapping_mul" ,
86
- BiDiv => "wrapping_div" ,
87
- BiRem => "wrapping_rem" ,
88
- BiShl => "wrapping_shl" ,
89
- BiShr => "wrapping_shr" ,
82
+ BinOpKind :: Add => "wrapping_add" ,
83
+ BinOpKind :: Sub => "wrapping_sub" ,
84
+ BinOpKind :: Mul => "wrapping_mul" ,
85
+ BinOpKind :: Div => "wrapping_div" ,
86
+ BinOpKind :: Rem => "wrapping_rem" ,
87
+ BinOpKind :: Shl => "wrapping_shl" ,
88
+ BinOpKind :: Shr => "wrapping_shr" ,
90
89
_ => return None ,
91
90
} ) )
92
91
}
0 commit comments