Skip to content

Commit b313d25

Browse files
author
Michael Wright
committed
Fix breakage due to rust-lang/rust#61708
1 parent 533bdfb commit b313d25

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

clippy_lints/src/copies.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -298,14 +298,14 @@ fn bindings<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, pat: &Pat) -> FxHashMap<LocalI
298298
bindings_impl(cx, as_pat, map);
299299
}
300300
},
301-
PatKind::Struct(_, ref fields, _) => {
301+
PatKind::Or(ref fields) | PatKind::Tuple(ref fields, _) => {
302302
for pat in fields {
303-
bindings_impl(cx, &pat.pat, map);
303+
bindings_impl(cx, pat, map);
304304
}
305305
},
306-
PatKind::Tuple(ref fields, _) => {
306+
PatKind::Struct(_, ref fields, _) => {
307307
for pat in fields {
308-
bindings_impl(cx, pat, map);
308+
bindings_impl(cx, &pat.pat, map);
309309
}
310310
},
311311
PatKind::Slice(ref lhs, ref mid, ref rhs) => {

clippy_lints/src/utils/author.rs

+6
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,12 @@ impl<'tcx> Visitor<'tcx> for PrintVisitor {
549549
println!(" if {}.len() == {};", fields_pat, fields.len());
550550
println!(" // unimplemented: field checks");
551551
},
552+
PatKind::Or(ref fields) => {
553+
let fields_pat = self.next("fields");
554+
println!("Or(ref {}) = {};", fields_pat, current);
555+
println!(" if {}.len() == {};", fields_pat, fields.len());
556+
println!(" // unimplemented: field checks");
557+
},
552558
PatKind::TupleStruct(ref path, ref fields, skip_pos) => {
553559
let path_pat = self.next("path");
554560
let fields_pat = self.next("fields");

clippy_lints/src/utils/inspector.rs

+6
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,12 @@ fn print_pat(cx: &LateContext<'_, '_>, pat: &hir::Pat, indent: usize) {
410410
print_pat(cx, inner, indent + 1);
411411
}
412412
},
413+
hir::PatKind::Or(ref fields) => {
414+
println!("{}Or", ind);
415+
for field in fields {
416+
print_pat(cx, field, indent + 1);
417+
}
418+
},
413419
hir::PatKind::Struct(ref path, ref fields, ignore) => {
414420
println!("{}Struct", ind);
415421
println!(

clippy_lints/src/utils/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,7 @@ pub fn is_refutable(cx: &LateContext<'_, '_>, pat: &Pat) -> bool {
791791
PatKind::Box(ref pat) | PatKind::Ref(ref pat, _) => is_refutable(cx, pat),
792792
PatKind::Lit(..) | PatKind::Range(..) => true,
793793
PatKind::Path(ref qpath) => is_enum_variant(cx, qpath, pat.hir_id),
794-
PatKind::Tuple(ref pats, _) => are_refutable(cx, pats.iter().map(|pat| &**pat)),
794+
PatKind::Or(ref pats) | PatKind::Tuple(ref pats, _) => are_refutable(cx, pats.iter().map(|pat| &**pat)),
795795
PatKind::Struct(ref qpath, ref fields, _) => {
796796
if is_enum_variant(cx, qpath, pat.hir_id) {
797797
true

0 commit comments

Comments
 (0)