about summary refs log tree commit diff
path: root/compiler/rustc_mir_build/src
diff options
context:
space:
mode:
authorFolkert de Vries <folkert@folkertdev.nl>2025-07-01 11:48:42 +0200
committerFolkert de Vries <folkert@folkertdev.nl>2025-07-01 15:53:52 +0200
commit8fdf0ef0ae32369a6fe82b2ef69b1f5e5dc68be1 (patch)
tree7d47dc2c2b3089b8e3f9e1d97c6f1db6aab90ad8 /compiler/rustc_mir_build/src
parentaa7cc5d2f453853a4025cf029f3e42625c7e1e18 (diff)
downloadrust-8fdf0ef0ae32369a6fe82b2ef69b1f5e5dc68be1.tar.gz
rust-8fdf0ef0ae32369a6fe82b2ef69b1f5e5dc68be1.zip
loop match: handle opaque patterns
fixes issue 143203
Diffstat (limited to 'compiler/rustc_mir_build/src')
-rw-r--r--compiler/rustc_mir_build/src/builder/matches/mod.rs6
-rw-r--r--compiler/rustc_mir_build/src/errors.rs1
2 files changed, 4 insertions, 3 deletions
diff --git a/compiler/rustc_mir_build/src/builder/matches/mod.rs b/compiler/rustc_mir_build/src/builder/matches/mod.rs
index 9600067a85f..2c29b862841 100644
--- a/compiler/rustc_mir_build/src/builder/matches/mod.rs
+++ b/compiler/rustc_mir_build/src/builder/matches/mod.rs
@@ -2970,6 +2970,9 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
             }
             Constructor::Wildcard => true,
 
+            // Opaque patterns must not be matched on structurally.
+            Constructor::Opaque(_) => false,
+
             // These we may eventually support:
             Constructor::Struct
             | Constructor::Ref
@@ -2980,8 +2983,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
             | Constructor::Str(_) => bug!("unsupported pattern constructor {:?}", pat.ctor()),
 
             // These should never occur here:
-            Constructor::Opaque(_)
-            | Constructor::Never
+            Constructor::Never
             | Constructor::NonExhaustive
             | Constructor::Hidden
             | Constructor::Missing
diff --git a/compiler/rustc_mir_build/src/errors.rs b/compiler/rustc_mir_build/src/errors.rs
index 20e836f6bf2..16b49bf384c 100644
--- a/compiler/rustc_mir_build/src/errors.rs
+++ b/compiler/rustc_mir_build/src/errors.rs
@@ -1230,7 +1230,6 @@ pub(crate) struct ConstContinueMissingValue {
 
 #[derive(Diagnostic)]
 #[diag(mir_build_const_continue_unknown_jump_target)]
-#[note]
 pub(crate) struct ConstContinueUnknownJumpTarget {
     #[primary_span]
     pub span: Span,