about summary refs log tree commit diff
path: root/compiler/rustc_mir_build/src/build
diff options
context:
space:
mode:
authorNadrieril <nadrieril+git@gmail.com>2024-03-08 19:17:23 +0100
committerNadrieril <nadrieril+git@gmail.com>2024-03-20 22:30:27 +0100
commit120d3570aa467c287814fe3edb9003920d8232aa (patch)
tree146ba6ab67200ca66af6ebf6447a7b657030adbf /compiler/rustc_mir_build/src/build
parenta128516cf9de352ae1f9d430ed730363c7ca3c0c (diff)
downloadrust-120d3570aa467c287814fe3edb9003920d8232aa.tar.gz
rust-120d3570aa467c287814fe3edb9003920d8232aa.zip
Add barest-bones deref patterns
Co-authored-by: Deadbeef <ent3rm4n@gmail.com>
Diffstat (limited to 'compiler/rustc_mir_build/src/build')
-rw-r--r--compiler/rustc_mir_build/src/build/matches/mod.rs4
-rw-r--r--compiler/rustc_mir_build/src/build/matches/util.rs6
2 files changed, 10 insertions, 0 deletions
diff --git a/compiler/rustc_mir_build/src/build/matches/mod.rs b/compiler/rustc_mir_build/src/build/matches/mod.rs
index d2cbbf9be32..f4f452d474f 100644
--- a/compiler/rustc_mir_build/src/build/matches/mod.rs
+++ b/compiler/rustc_mir_build/src/build/matches/mod.rs
@@ -879,6 +879,10 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
                 self.visit_primary_bindings(subpattern, pattern_user_ty.deref(), f);
             }
 
+            PatKind::DerefPattern { ref subpattern } => {
+                self.visit_primary_bindings(subpattern, UserTypeProjections::none(), f);
+            }
+
             PatKind::AscribeUserType {
                 ref subpattern,
                 ascription: thir::Ascription { ref annotation, variance: _ },
diff --git a/compiler/rustc_mir_build/src/build/matches/util.rs b/compiler/rustc_mir_build/src/build/matches/util.rs
index d0d49c13f13..1148cd19a01 100644
--- a/compiler/rustc_mir_build/src/build/matches/util.rs
+++ b/compiler/rustc_mir_build/src/build/matches/util.rs
@@ -256,6 +256,12 @@ impl<'pat, 'tcx> MatchPair<'pat, 'tcx> {
                 subpairs.push(MatchPair::new(place_builder, subpattern, cx));
                 default_irrefutable()
             }
+
+            PatKind::DerefPattern { .. } => {
+                // FIXME(deref_patterns)
+                // Treat it like a wildcard for now.
+                default_irrefutable()
+            }
         };
 
         MatchPair { place, test_case, subpairs, pattern }