@@ -242,6 +242,7 @@ pub trait Drop {
242
242
/// [std::time::SystemTime]: ../../std/time/struct.SystemTime.html
243
243
#[ lang = "add" ]
244
244
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
245
+ #[ rustc_on_unimplemented = "no implementation for `{Self} + {RHS}`" ]
245
246
pub trait Add < RHS =Self > {
246
247
/// The resulting type after applying the `+` operator
247
248
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -315,6 +316,7 @@ add_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
315
316
/// [std::time::SystemTime]: ../../std/time/struct.SystemTime.html
316
317
#[ lang = "sub" ]
317
318
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
319
+ #[ rustc_on_unimplemented = "no implementation for `{Self} - {RHS}`" ]
318
320
pub trait Sub < RHS =Self > {
319
321
/// The resulting type after applying the `-` operator
320
322
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -437,6 +439,7 @@ sub_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
437
439
/// ```
438
440
#[ lang = "mul" ]
439
441
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
442
+ #[ rustc_on_unimplemented = "no implementation for `{Self} * {RHS}`" ]
440
443
pub trait Mul < RHS =Self > {
441
444
/// The resulting type after applying the `*` operator
442
445
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -565,6 +568,7 @@ mul_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
565
568
/// ```
566
569
#[ lang = "div" ]
567
570
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
571
+ #[ rustc_on_unimplemented = "no implementation for `{Self} / {RHS}`" ]
568
572
pub trait Div < RHS =Self > {
569
573
/// The resulting type after applying the `/` operator
570
574
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -644,6 +648,7 @@ div_impl_float! { f32 f64 }
644
648
/// ```
645
649
#[ lang = "rem" ]
646
650
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
651
+ #[ rustc_on_unimplemented = "no implementation for `{Self} % {RHS}`" ]
647
652
pub trait Rem < RHS =Self > {
648
653
/// The resulting type after applying the `%` operator
649
654
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -883,6 +888,7 @@ not_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
883
888
/// ```
884
889
#[ lang = "bitand" ]
885
890
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
891
+ #[ rustc_on_unimplemented = "no implementation for `{Self} & {RHS}`" ]
886
892
pub trait BitAnd < RHS =Self > {
887
893
/// The resulting type after applying the `&` operator
888
894
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -966,6 +972,7 @@ bitand_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
966
972
/// ```
967
973
#[ lang = "bitor" ]
968
974
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
975
+ #[ rustc_on_unimplemented = "no implementation for `{Self} | {RHS}`" ]
969
976
pub trait BitOr < RHS =Self > {
970
977
/// The resulting type after applying the `|` operator
971
978
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -1052,6 +1059,7 @@ bitor_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
1052
1059
/// ```
1053
1060
#[ lang = "bitxor" ]
1054
1061
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1062
+ #[ rustc_on_unimplemented = "no implementation for `{Self} ^ {RHS}`" ]
1055
1063
pub trait BitXor < RHS =Self > {
1056
1064
/// The resulting type after applying the `^` operator
1057
1065
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -1134,6 +1142,7 @@ bitxor_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
1134
1142
/// ```
1135
1143
#[ lang = "shl" ]
1136
1144
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1145
+ #[ rustc_on_unimplemented = "no implementation for `{Self} << {RHS}`" ]
1137
1146
pub trait Shl < RHS > {
1138
1147
/// The resulting type after applying the `<<` operator
1139
1148
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -1237,6 +1246,7 @@ shl_impl_all! { u8 u16 u32 u64 u128 usize i8 i16 i32 i64 isize i128 }
1237
1246
/// ```
1238
1247
#[ lang = "shr" ]
1239
1248
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
1249
+ #[ rustc_on_unimplemented = "no implementation for `{Self} >> {RHS}`" ]
1240
1250
pub trait Shr < RHS > {
1241
1251
/// The resulting type after applying the `>>` operator
1242
1252
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -1321,6 +1331,7 @@ shr_impl_all! { u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize }
1321
1331
/// ```
1322
1332
#[ lang = "add_assign" ]
1323
1333
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1334
+ #[ rustc_on_unimplemented = "no implementation for `{Self} += {Rhs}`" ]
1324
1335
pub trait AddAssign < Rhs =Self > {
1325
1336
/// The method for the `+=` operator
1326
1337
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1377,6 +1388,7 @@ add_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
1377
1388
/// ```
1378
1389
#[ lang = "sub_assign" ]
1379
1390
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1391
+ #[ rustc_on_unimplemented = "no implementation for `{Self} -= {Rhs}`" ]
1380
1392
pub trait SubAssign < Rhs =Self > {
1381
1393
/// The method for the `-=` operator
1382
1394
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1422,6 +1434,7 @@ sub_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
1422
1434
/// ```
1423
1435
#[ lang = "mul_assign" ]
1424
1436
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1437
+ #[ rustc_on_unimplemented = "no implementation for `{Self} *= {Rhs}`" ]
1425
1438
pub trait MulAssign < Rhs =Self > {
1426
1439
/// The method for the `*=` operator
1427
1440
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1467,6 +1480,7 @@ mul_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
1467
1480
/// ```
1468
1481
#[ lang = "div_assign" ]
1469
1482
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1483
+ #[ rustc_on_unimplemented = "no implementation for `{Self} /= {Rhs}`" ]
1470
1484
pub trait DivAssign < Rhs =Self > {
1471
1485
/// The method for the `/=` operator
1472
1486
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1511,6 +1525,7 @@ div_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
1511
1525
/// ```
1512
1526
#[ lang = "rem_assign" ]
1513
1527
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1528
+ #[ rustc_on_unimplemented = "no implementation for `{Self} %= {Rhs}`" ]
1514
1529
pub trait RemAssign < Rhs =Self > {
1515
1530
/// The method for the `%=` operator
1516
1531
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1597,6 +1612,7 @@ rem_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
1597
1612
/// ```
1598
1613
#[ lang = "bitand_assign" ]
1599
1614
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1615
+ #[ rustc_on_unimplemented = "no implementation for `{Self} &= {Rhs}`" ]
1600
1616
pub trait BitAndAssign < Rhs =Self > {
1601
1617
/// The method for the `&=` operator
1602
1618
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1641,6 +1657,7 @@ bitand_assign_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
1641
1657
/// ```
1642
1658
#[ lang = "bitor_assign" ]
1643
1659
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1660
+ #[ rustc_on_unimplemented = "no implementation for `{Self} |= {Rhs}`" ]
1644
1661
pub trait BitOrAssign < Rhs =Self > {
1645
1662
/// The method for the `|=` operator
1646
1663
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1685,6 +1702,7 @@ bitor_assign_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
1685
1702
/// ```
1686
1703
#[ lang = "bitxor_assign" ]
1687
1704
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1705
+ #[ rustc_on_unimplemented = "no implementation for `{Self} ^= {Rhs}`" ]
1688
1706
pub trait BitXorAssign < Rhs =Self > {
1689
1707
/// The method for the `^=` operator
1690
1708
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1729,6 +1747,7 @@ bitxor_assign_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
1729
1747
/// ```
1730
1748
#[ lang = "shl_assign" ]
1731
1749
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1750
+ #[ rustc_on_unimplemented = "no implementation for `{Self} <<= {Rhs}`" ]
1732
1751
pub trait ShlAssign < Rhs > {
1733
1752
/// The method for the `<<=` operator
1734
1753
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
@@ -1794,6 +1813,7 @@ shl_assign_impl_all! { u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize }
1794
1813
/// ```
1795
1814
#[ lang = "shr_assign" ]
1796
1815
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
1816
+ #[ rustc_on_unimplemented = "no implementation for `{Self} >>= {Rhs}`" ]
1797
1817
pub trait ShrAssign < Rhs =Self > {
1798
1818
/// The method for the `>>=` operator
1799
1819
#[ stable( feature = "op_assign_traits" , since = "1.8.0" ) ]
0 commit comments