about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src/rustc
diff options
context:
space:
mode:
authorZalathar <Zalathar@users.noreply.github.com>2024-08-03 20:26:17 +1000
committerZalathar <Zalathar@users.noreply.github.com>2024-08-11 19:57:30 +1000
commit0a777090d80747fc841784c5a6944f2a792f845c (patch)
treeddf395d1ac3c6ae77719bc74e11c04154ff10620 /compiler/rustc_pattern_analysis/src/rustc
parentc9bd03cb724e13cca96ad320733046cbdb16fbbe (diff)
downloadrust-0a777090d80747fc841784c5a6944f2a792f845c.tar.gz
rust-0a777090d80747fc841784c5a6944f2a792f845c.zip
Avoid matching on `PatKind::Wild` in `write_struct_like`
Diffstat (limited to 'compiler/rustc_pattern_analysis/src/rustc')
-rw-r--r--compiler/rustc_pattern_analysis/src/rustc/print.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/rustc_pattern_analysis/src/rustc/print.rs b/compiler/rustc_pattern_analysis/src/rustc/print.rs
index 7d638714605..94f625e0153 100644
--- a/compiler/rustc_pattern_analysis/src/rustc/print.rs
+++ b/compiler/rustc_pattern_analysis/src/rustc/print.rs
@@ -21,6 +21,7 @@ use rustc_target::abi::{FieldIdx, VariantIdx};
 pub(crate) struct FieldPat<'tcx> {
     pub(crate) field: FieldIdx,
     pub(crate) pattern: Box<Pat<'tcx>>,
+    pub(crate) is_wildcard: bool,
 }
 
 #[derive(Clone, Debug)]
@@ -139,12 +140,12 @@ fn write_struct_like<'tcx>(
             write!(f, " {{ ")?;
 
             let mut printed = 0;
-            for p in subpatterns {
-                if let PatKind::Wild = p.pattern.kind {
+            for &FieldPat { field, ref pattern, is_wildcard } in subpatterns {
+                if is_wildcard {
                     continue;
                 }
-                let name = variant.fields[p.field].name;
-                write!(f, "{}{}: {}", start_or_comma(), name, p.pattern)?;
+                let field_name = variant.fields[field].name;
+                write!(f, "{}{field_name}: {pattern}", start_or_comma())?;
                 printed += 1;
             }