@@ -1114,6 +1114,66 @@ impl<T, E> Result<T, E> {
1114
1114
}
1115
1115
}
1116
1116
1117
+ /// Returns the contained [`Err`] value, consuming the `self` value.
1118
+ ///
1119
+ /// # Panics
1120
+ ///
1121
+ /// Panics if the value is an [`Ok`], with a panic message including the
1122
+ /// passed message, and the content of the [`Ok`].
1123
+ ///
1124
+ ///
1125
+ /// # Examples
1126
+ ///
1127
+ /// Basic usage:
1128
+ ///
1129
+ /// ```should_panic
1130
+ /// let x: Result<u32, &str> = Ok(10);
1131
+ /// x.expect_err("Testing expect_err"); // panics with `Testing expect_err: 10`
1132
+ /// ```
1133
+ #[ inline]
1134
+ #[ track_caller]
1135
+ #[ stable( feature = "result_expect_err" , since = "1.17.0" ) ]
1136
+ pub fn expect_err ( self , msg : & str ) -> E
1137
+ where
1138
+ T : fmt:: Debug ,
1139
+ {
1140
+ match self {
1141
+ Ok ( t) => unwrap_failed ( msg, & t) ,
1142
+ Err ( e) => e,
1143
+ }
1144
+ }
1145
+
1146
+ /// Returns the contained [`Err`] value, consuming the `self` value.
1147
+ ///
1148
+ /// # Panics
1149
+ ///
1150
+ /// Panics if the value is an [`Ok`], with a custom panic message provided
1151
+ /// by the [`Ok`]'s value.
1152
+ ///
1153
+ /// # Examples
1154
+ ///
1155
+ /// ```should_panic
1156
+ /// let x: Result<u32, &str> = Ok(2);
1157
+ /// x.unwrap_err(); // panics with `2`
1158
+ /// ```
1159
+ ///
1160
+ /// ```
1161
+ /// let x: Result<u32, &str> = Err("emergency failure");
1162
+ /// assert_eq!(x.unwrap_err(), "emergency failure");
1163
+ /// ```
1164
+ #[ inline]
1165
+ #[ track_caller]
1166
+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1167
+ pub fn unwrap_err ( self ) -> E
1168
+ where
1169
+ T : fmt:: Debug ,
1170
+ {
1171
+ match self {
1172
+ Ok ( t) => unwrap_failed ( "called `Result::unwrap_err()` on an `Ok` value" , & t) ,
1173
+ Err ( e) => e,
1174
+ }
1175
+ }
1176
+
1117
1177
////////////////////////////////////////////////////////////////////////
1118
1178
// Boolean operations on the values, eager and lazy
1119
1179
/////////////////////////////////////////////////////////////////////////
@@ -1439,62 +1499,6 @@ impl<T: Clone, E> Result<&mut T, E> {
1439
1499
}
1440
1500
}
1441
1501
1442
- impl < T : fmt:: Debug , E > Result < T , E > {
1443
- /// Returns the contained [`Err`] value, consuming the `self` value.
1444
- ///
1445
- /// # Panics
1446
- ///
1447
- /// Panics if the value is an [`Ok`], with a panic message including the
1448
- /// passed message, and the content of the [`Ok`].
1449
- ///
1450
- ///
1451
- /// # Examples
1452
- ///
1453
- /// Basic usage:
1454
- ///
1455
- /// ```should_panic
1456
- /// let x: Result<u32, &str> = Ok(10);
1457
- /// x.expect_err("Testing expect_err"); // panics with `Testing expect_err: 10`
1458
- /// ```
1459
- #[ inline]
1460
- #[ track_caller]
1461
- #[ stable( feature = "result_expect_err" , since = "1.17.0" ) ]
1462
- pub fn expect_err ( self , msg : & str ) -> E {
1463
- match self {
1464
- Ok ( t) => unwrap_failed ( msg, & t) ,
1465
- Err ( e) => e,
1466
- }
1467
- }
1468
-
1469
- /// Returns the contained [`Err`] value, consuming the `self` value.
1470
- ///
1471
- /// # Panics
1472
- ///
1473
- /// Panics if the value is an [`Ok`], with a custom panic message provided
1474
- /// by the [`Ok`]'s value.
1475
- ///
1476
- /// # Examples
1477
- ///
1478
- /// ```should_panic
1479
- /// let x: Result<u32, &str> = Ok(2);
1480
- /// x.unwrap_err(); // panics with `2`
1481
- /// ```
1482
- ///
1483
- /// ```
1484
- /// let x: Result<u32, &str> = Err("emergency failure");
1485
- /// assert_eq!(x.unwrap_err(), "emergency failure");
1486
- /// ```
1487
- #[ inline]
1488
- #[ track_caller]
1489
- #[ stable( feature = "rust1" , since = "1.0.0" ) ]
1490
- pub fn unwrap_err ( self ) -> E {
1491
- match self {
1492
- Ok ( t) => unwrap_failed ( "called `Result::unwrap_err()` on an `Ok` value" , & t) ,
1493
- Err ( e) => e,
1494
- }
1495
- }
1496
- }
1497
-
1498
1502
#[ unstable( feature = "unwrap_infallible" , reason = "newly added" , issue = "61695" ) ]
1499
1503
impl < T , E : Into < !> > Result < T , E > {
1500
1504
/// Returns the contained [`Ok`] value, but never panics.
0 commit comments