mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-10 08:57:36 +00:00
Fix breakage due to rust-lang/rust#61708
This commit is contained in:
parent
533bdfbdbc
commit
b313d25350
@ -298,16 +298,16 @@ fn bindings<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, pat: &Pat) -> FxHashMap<LocalI
|
|||||||
bindings_impl(cx, as_pat, map);
|
bindings_impl(cx, as_pat, map);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
PatKind::Or(ref fields) | PatKind::Tuple(ref fields, _) => {
|
||||||
|
for pat in fields {
|
||||||
|
bindings_impl(cx, pat, map);
|
||||||
|
}
|
||||||
|
},
|
||||||
PatKind::Struct(_, ref fields, _) => {
|
PatKind::Struct(_, ref fields, _) => {
|
||||||
for pat in fields {
|
for pat in fields {
|
||||||
bindings_impl(cx, &pat.pat, map);
|
bindings_impl(cx, &pat.pat, map);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
PatKind::Tuple(ref fields, _) => {
|
|
||||||
for pat in fields {
|
|
||||||
bindings_impl(cx, pat, map);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
PatKind::Slice(ref lhs, ref mid, ref rhs) => {
|
PatKind::Slice(ref lhs, ref mid, ref rhs) => {
|
||||||
for pat in lhs {
|
for pat in lhs {
|
||||||
bindings_impl(cx, pat, map);
|
bindings_impl(cx, pat, map);
|
||||||
|
@ -549,6 +549,12 @@ impl<'tcx> Visitor<'tcx> for PrintVisitor {
|
|||||||
println!(" if {}.len() == {};", fields_pat, fields.len());
|
println!(" if {}.len() == {};", fields_pat, fields.len());
|
||||||
println!(" // unimplemented: field checks");
|
println!(" // unimplemented: field checks");
|
||||||
},
|
},
|
||||||
|
PatKind::Or(ref fields) => {
|
||||||
|
let fields_pat = self.next("fields");
|
||||||
|
println!("Or(ref {}) = {};", fields_pat, current);
|
||||||
|
println!(" if {}.len() == {};", fields_pat, fields.len());
|
||||||
|
println!(" // unimplemented: field checks");
|
||||||
|
},
|
||||||
PatKind::TupleStruct(ref path, ref fields, skip_pos) => {
|
PatKind::TupleStruct(ref path, ref fields, skip_pos) => {
|
||||||
let path_pat = self.next("path");
|
let path_pat = self.next("path");
|
||||||
let fields_pat = self.next("fields");
|
let fields_pat = self.next("fields");
|
||||||
|
@ -410,6 +410,12 @@ fn print_pat(cx: &LateContext<'_, '_>, pat: &hir::Pat, indent: usize) {
|
|||||||
print_pat(cx, inner, indent + 1);
|
print_pat(cx, inner, indent + 1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
hir::PatKind::Or(ref fields) => {
|
||||||
|
println!("{}Or", ind);
|
||||||
|
for field in fields {
|
||||||
|
print_pat(cx, field, indent + 1);
|
||||||
|
}
|
||||||
|
},
|
||||||
hir::PatKind::Struct(ref path, ref fields, ignore) => {
|
hir::PatKind::Struct(ref path, ref fields, ignore) => {
|
||||||
println!("{}Struct", ind);
|
println!("{}Struct", ind);
|
||||||
println!(
|
println!(
|
||||||
|
@ -791,7 +791,7 @@ pub fn is_refutable(cx: &LateContext<'_, '_>, pat: &Pat) -> bool {
|
|||||||
PatKind::Box(ref pat) | PatKind::Ref(ref pat, _) => is_refutable(cx, pat),
|
PatKind::Box(ref pat) | PatKind::Ref(ref pat, _) => is_refutable(cx, pat),
|
||||||
PatKind::Lit(..) | PatKind::Range(..) => true,
|
PatKind::Lit(..) | PatKind::Range(..) => true,
|
||||||
PatKind::Path(ref qpath) => is_enum_variant(cx, qpath, pat.hir_id),
|
PatKind::Path(ref qpath) => is_enum_variant(cx, qpath, pat.hir_id),
|
||||||
PatKind::Tuple(ref pats, _) => are_refutable(cx, pats.iter().map(|pat| &**pat)),
|
PatKind::Or(ref pats) | PatKind::Tuple(ref pats, _) => are_refutable(cx, pats.iter().map(|pat| &**pat)),
|
||||||
PatKind::Struct(ref qpath, ref fields, _) => {
|
PatKind::Struct(ref qpath, ref fields, _) => {
|
||||||
if is_enum_variant(cx, qpath, pat.hir_id) {
|
if is_enum_variant(cx, qpath, pat.hir_id) {
|
||||||
true
|
true
|
||||||
|
Loading…
Reference in New Issue
Block a user