Skip to content

Commit ed3e38f

Browse files
committed
Remove PatKind::StructLike
1 parent 92eb159 commit ed3e38f

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

compiler/rustc_pattern_analysis/src/rustc.rs

+10-1
Original file line numberDiff line numberDiff line change
@@ -854,7 +854,16 @@ impl<'p, 'tcx: 'p> RustcPatCtxt<'p, 'tcx> {
854854
})
855855
.collect::<Vec<_>>();
856856

857-
PatKind::StructLike { enum_info, subpatterns }
857+
let mut s = String::new();
858+
print::write_struct_like(
859+
&mut s,
860+
self.tcx,
861+
pat.ty().inner(),
862+
&enum_info,
863+
&subpatterns,
864+
)
865+
.unwrap();
866+
PatKind::Print(s)
858867
}
859868
Ref => PatKind::Deref { subpattern: hoist(&pat.fields[0]) },
860869
Slice(slice) => {

compiler/rustc_pattern_analysis/src/rustc/print.rs

+1-9
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@ pub(crate) struct Pat<'tcx> {
3232

3333
#[derive(Clone, Debug)]
3434
pub(crate) enum PatKind<'tcx> {
35-
StructLike {
36-
enum_info: EnumInfo<'tcx>,
37-
subpatterns: Vec<FieldPat<'tcx>>,
38-
},
39-
4035
Box {
4136
subpattern: Box<Pat<'tcx>>,
4237
},
@@ -69,9 +64,6 @@ impl<'tcx> fmt::Display for Pat<'tcx> {
6964
match self.kind {
7065
PatKind::Never => write!(f, "!"),
7166
PatKind::Box { ref subpattern } => write!(f, "box {subpattern}"),
72-
PatKind::StructLike { ref enum_info, ref subpatterns } => {
73-
ty::tls::with(|tcx| write_struct_like(f, tcx, self.ty, enum_info, subpatterns))
74-
}
7567
PatKind::Deref { ref subpattern } => write_ref_like(f, self.ty, subpattern),
7668
PatKind::Constant { value } => write!(f, "{value}"),
7769
PatKind::Range(ref range) => write!(f, "{range}"),
@@ -104,7 +96,7 @@ pub(crate) enum EnumInfo<'tcx> {
10496
NotEnum,
10597
}
10698

107-
fn write_struct_like<'tcx>(
99+
pub(crate) fn write_struct_like<'tcx>(
108100
f: &mut impl fmt::Write,
109101
tcx: TyCtxt<'_>,
110102
ty: Ty<'tcx>,

0 commit comments

Comments
 (0)