Skip to content

Commit e38576a

Browse files
committed
Support hir::ExprKind::Become in clippy
1 parent ccb71ff commit e38576a

File tree

7 files changed

+18
-0
lines changed

7 files changed

+18
-0
lines changed

src/tools/clippy/clippy_lints/src/loops/never_loop.rs

+6
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,12 @@ fn never_loop_expr(expr: &Expr<'_>, ignore_ids: &mut Vec<HirId>, main_loop_id: H
206206
NeverLoopResult::AlwaysBreak,
207207
)
208208
}),
209+
ExprKind::Become(e) => {
210+
combine_seq(
211+
never_loop_expr(e, ignore_ids, main_loop_id),
212+
NeverLoopResult::AlwaysBreak,
213+
)
214+
}
209215
ExprKind::InlineAsm(asm) => asm
210216
.operands
211217
.iter()

src/tools/clippy/clippy_lints/src/matches/significant_drop_in_scrutinee.rs

+1
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,7 @@ impl<'a, 'tcx> Visitor<'tcx> for SigDropHelper<'a, 'tcx> {
329329
ExprKind::Field(..) |
330330
ExprKind::Index(..) |
331331
ExprKind::Ret(..) |
332+
ExprKind::Become(..) |
332333
ExprKind::Repeat(..) |
333334
ExprKind::Yield(..) => walk_expr(self, ex),
334335
ExprKind::AddrOf(_, _, _) |

src/tools/clippy/clippy_lints/src/utils/author.rs

+5
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,11 @@ impl<'a, 'tcx> PrintVisitor<'a, 'tcx> {
559559
kind!("Ret({value})");
560560
value.if_some(|e| self.expr(e));
561561
},
562+
ExprKind::Become(value) => {
563+
bind!(self, value);
564+
kind!("Become({value})");
565+
self.expr(value);
566+
},
562567
ExprKind::InlineAsm(_) => {
563568
kind!("InlineAsm(_)");
564569
out!("// unimplemented: `ExprKind::InlineAsm` is not further destructured at the moment");

src/tools/clippy/clippy_utils/src/eager_or_lazy.rs

+1
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ fn expr_eagerness<'tcx>(cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) -> EagernessS
191191
ExprKind::Break(..)
192192
| ExprKind::Continue(_)
193193
| ExprKind::Ret(_)
194+
| ExprKind::Become(_)
194195
| ExprKind::InlineAsm(_)
195196
| ExprKind::Yield(..)
196197
| ExprKind::Err(_) => {

src/tools/clippy/clippy_utils/src/hir_utils.rs

+3
Original file line numberDiff line numberDiff line change
@@ -845,6 +845,9 @@ impl<'a, 'tcx> SpanlessHash<'a, 'tcx> {
845845
self.hash_expr(e);
846846
}
847847
},
848+
ExprKind::Become(f) => {
849+
self.hash_expr(f);
850+
},
848851
ExprKind::Path(ref qpath) => {
849852
self.hash_qpath(qpath);
850853
},

src/tools/clippy/clippy_utils/src/sugg.rs

+1
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ impl<'a> Sugg<'a> {
147147
| hir::ExprKind::Path(..)
148148
| hir::ExprKind::Repeat(..)
149149
| hir::ExprKind::Ret(..)
150+
| hir::ExprKind::Become(..)
150151
| hir::ExprKind::Struct(..)
151152
| hir::ExprKind::Tup(..)
152153
| hir::ExprKind::Err(_) => Sugg::NonParen(get_snippet(expr.span)),

src/tools/clippy/clippy_utils/src/visitors.rs

+1
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,7 @@ pub fn for_each_unconsumed_temporary<'tcx, B>(
651651
// Either drops temporaries, jumps out of the current expression, or has no sub expression.
652652
ExprKind::DropTemps(_)
653653
| ExprKind::Ret(_)
654+
| ExprKind::Become(_)
654655
| ExprKind::Break(..)
655656
| ExprKind::Yield(..)
656657
| ExprKind::Block(..)

0 commit comments

Comments
 (0)