mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 23:12:02 +00:00
Rollup merge of #112655 - WaffleLapkin:must_use_map_or, r=workingjubilee
Mark `map_or` as `#[must_use]` I don't know what else to say. r? libs
This commit is contained in:
commit
e3bf088fb5
@ -443,9 +443,9 @@ impl<'a, 'tcx> Visitor<'tcx> for DropRangeVisitor<'a, 'tcx> {
|
||||
// We add an edge to the hir_id of the expression/block we are breaking out of, and
|
||||
// then in process_deferred_edges we will map this hir_id to its PostOrderId, which
|
||||
// will refer to the end of the block due to the post order traversal.
|
||||
self.find_target_expression_from_destination(destination).map_or((), |target| {
|
||||
if let Ok(target) = self.find_target_expression_from_destination(destination) {
|
||||
self.drop_ranges.add_control_edge_hir_id(self.expr_index, target)
|
||||
});
|
||||
}
|
||||
|
||||
if let Some(value) = value {
|
||||
self.visit_expr(value);
|
||||
|
@ -150,9 +150,10 @@ impl<'tcx> expr_use_visitor::Delegate<'tcx> for ExprUseDelegate<'tcx> {
|
||||
hir.node_to_string(diag_expr_id),
|
||||
hir.node_to_string(parent)
|
||||
);
|
||||
place_with_id
|
||||
.try_into()
|
||||
.map_or((), |tracked_value| self.mark_consumed(parent, tracked_value));
|
||||
|
||||
if let Ok(tracked_value) = place_with_id.try_into() {
|
||||
self.mark_consumed(parent, tracked_value)
|
||||
}
|
||||
}
|
||||
|
||||
fn borrow(
|
||||
|
@ -1125,6 +1125,7 @@ impl<T> Option<T> {
|
||||
/// ```
|
||||
#[inline]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[must_use = "if you don't need the returned value, use `if let` instead"]
|
||||
pub fn map_or<U, F>(self, default: U, f: F) -> U
|
||||
where
|
||||
F: FnOnce(T) -> U,
|
||||
|
@ -768,6 +768,7 @@ impl<T, E> Result<T, E> {
|
||||
/// ```
|
||||
#[inline]
|
||||
#[stable(feature = "result_map_or", since = "1.41.0")]
|
||||
#[must_use = "if you don't need the returned value, use `if let` instead"]
|
||||
pub fn map_or<U, F: FnOnce(T) -> U>(self, default: U, f: F) -> U {
|
||||
match self {
|
||||
Ok(t) => f(t),
|
||||
|
@ -40,9 +40,9 @@ fn check_compare(cx: &LateContext<'_>, bit_op: &Expr<'_>, cmp_op: BinOpKind, cmp
|
||||
if op.node != BinOpKind::BitAnd && op.node != BinOpKind::BitOr {
|
||||
return;
|
||||
}
|
||||
fetch_int_literal(cx, right)
|
||||
.or_else(|| fetch_int_literal(cx, left))
|
||||
.map_or((), |mask| check_bit_mask(cx, op.node, cmp_op, mask, cmp_value, span));
|
||||
if let Some(mask) = fetch_int_literal(cx, right).or_else(|| fetch_int_literal(cx, left)) {
|
||||
check_bit_mask(cx, op.node, cmp_op, mask, cmp_value, span);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -15,5 +15,5 @@ fn main() {
|
||||
// A non-Some `f` closure where the argument is not used as the
|
||||
// return should not emit the lint
|
||||
let opt: Result<u32, &str> = Ok(1);
|
||||
opt.map_or(None, |_x| Some(1));
|
||||
_ = opt.map_or(None, |_x| Some(1));
|
||||
}
|
||||
|
@ -15,5 +15,5 @@ fn main() {
|
||||
// A non-Some `f` closure where the argument is not used as the
|
||||
// return should not emit the lint
|
||||
let opt: Result<u32, &str> = Ok(1);
|
||||
opt.map_or(None, |_x| Some(1));
|
||||
_ = opt.map_or(None, |_x| Some(1));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user