@@ -1276,41 +1276,43 @@ impl<'a> InferenceContext<'a> {
1276
1276
let ( name, lang_item) = match op {
1277
1277
BinaryOp :: LogicOp ( _) => return None ,
1278
1278
BinaryOp :: ArithOp ( aop) => match aop {
1279
- ArithOp :: Add => ( name ! ( add) , " add" ) ,
1280
- ArithOp :: Mul => ( name ! ( mul) , " mul" ) ,
1281
- ArithOp :: Sub => ( name ! ( sub) , " sub" ) ,
1282
- ArithOp :: Div => ( name ! ( div) , " div" ) ,
1283
- ArithOp :: Rem => ( name ! ( rem) , " rem" ) ,
1284
- ArithOp :: Shl => ( name ! ( shl) , " shl" ) ,
1285
- ArithOp :: Shr => ( name ! ( shr) , " shr" ) ,
1286
- ArithOp :: BitXor => ( name ! ( bitxor) , " bitxor" ) ,
1287
- ArithOp :: BitOr => ( name ! ( bitor) , " bitor" ) ,
1288
- ArithOp :: BitAnd => ( name ! ( bitand) , " bitand" ) ,
1279
+ ArithOp :: Add => ( name ! ( add) , name ! ( add) ) ,
1280
+ ArithOp :: Mul => ( name ! ( mul) , name ! ( mul) ) ,
1281
+ ArithOp :: Sub => ( name ! ( sub) , name ! ( sub) ) ,
1282
+ ArithOp :: Div => ( name ! ( div) , name ! ( div) ) ,
1283
+ ArithOp :: Rem => ( name ! ( rem) , name ! ( rem) ) ,
1284
+ ArithOp :: Shl => ( name ! ( shl) , name ! ( shl) ) ,
1285
+ ArithOp :: Shr => ( name ! ( shr) , name ! ( shr) ) ,
1286
+ ArithOp :: BitXor => ( name ! ( bitxor) , name ! ( bitxor) ) ,
1287
+ ArithOp :: BitOr => ( name ! ( bitor) , name ! ( bitor) ) ,
1288
+ ArithOp :: BitAnd => ( name ! ( bitand) , name ! ( bitand) ) ,
1289
1289
} ,
1290
1290
BinaryOp :: Assignment { op : Some ( aop) } => match aop {
1291
- ArithOp :: Add => ( name ! ( add_assign) , " add_assign" ) ,
1292
- ArithOp :: Mul => ( name ! ( mul_assign) , " mul_assign" ) ,
1293
- ArithOp :: Sub => ( name ! ( sub_assign) , " sub_assign" ) ,
1294
- ArithOp :: Div => ( name ! ( div_assign) , " div_assign" ) ,
1295
- ArithOp :: Rem => ( name ! ( rem_assign) , " rem_assign" ) ,
1296
- ArithOp :: Shl => ( name ! ( shl_assign) , " shl_assign" ) ,
1297
- ArithOp :: Shr => ( name ! ( shr_assign) , " shr_assign" ) ,
1298
- ArithOp :: BitXor => ( name ! ( bitxor_assign) , " bitxor_assign" ) ,
1299
- ArithOp :: BitOr => ( name ! ( bitor_assign) , " bitor_assign" ) ,
1300
- ArithOp :: BitAnd => ( name ! ( bitand_assign) , " bitand_assign" ) ,
1291
+ ArithOp :: Add => ( name ! ( add_assign) , name ! ( add_assign) ) ,
1292
+ ArithOp :: Mul => ( name ! ( mul_assign) , name ! ( mul_assign) ) ,
1293
+ ArithOp :: Sub => ( name ! ( sub_assign) , name ! ( sub_assign) ) ,
1294
+ ArithOp :: Div => ( name ! ( div_assign) , name ! ( div_assign) ) ,
1295
+ ArithOp :: Rem => ( name ! ( rem_assign) , name ! ( rem_assign) ) ,
1296
+ ArithOp :: Shl => ( name ! ( shl_assign) , name ! ( shl_assign) ) ,
1297
+ ArithOp :: Shr => ( name ! ( shr_assign) , name ! ( shr_assign) ) ,
1298
+ ArithOp :: BitXor => ( name ! ( bitxor_assign) , name ! ( bitxor_assign) ) ,
1299
+ ArithOp :: BitOr => ( name ! ( bitor_assign) , name ! ( bitor_assign) ) ,
1300
+ ArithOp :: BitAnd => ( name ! ( bitand_assign) , name ! ( bitand_assign) ) ,
1301
1301
} ,
1302
1302
BinaryOp :: CmpOp ( cop) => match cop {
1303
- CmpOp :: Eq { negated : false } => ( name ! ( eq) , "eq" ) ,
1304
- CmpOp :: Eq { negated : true } => ( name ! ( ne) , "eq" ) ,
1303
+ CmpOp :: Eq { negated : false } => ( name ! ( eq) , name ! ( eq ) ) ,
1304
+ CmpOp :: Eq { negated : true } => ( name ! ( ne) , name ! ( eq ) ) ,
1305
1305
CmpOp :: Ord { ordering : Ordering :: Less , strict : false } => {
1306
- ( name ! ( le) , "partial_ord" )
1306
+ ( name ! ( le) , name ! ( partial_ord) )
1307
+ }
1308
+ CmpOp :: Ord { ordering : Ordering :: Less , strict : true } => {
1309
+ ( name ! ( lt) , name ! ( partial_ord) )
1307
1310
}
1308
- CmpOp :: Ord { ordering : Ordering :: Less , strict : true } => ( name ! ( lt) , "partial_ord" ) ,
1309
1311
CmpOp :: Ord { ordering : Ordering :: Greater , strict : false } => {
1310
- ( name ! ( ge) , " partial_ord" )
1312
+ ( name ! ( ge) , name ! ( partial_ord) )
1311
1313
}
1312
1314
CmpOp :: Ord { ordering : Ordering :: Greater , strict : true } => {
1313
- ( name ! ( gt) , " partial_ord" )
1315
+ ( name ! ( gt) , name ! ( partial_ord) )
1314
1316
}
1315
1317
} ,
1316
1318
BinaryOp :: Assignment { op : None } => return None ,
0 commit comments