From 9b5a360a53b97d833191e2a2ad40d5cd9615f6aa Mon Sep 17 00:00:00 2001 From: "Tim (Theemathas) Chirananthavat" Date: Sun, 24 Aug 2025 16:30:57 +0700 Subject: [PATCH] Or-patterns are extending This is specified in the compiler at https://github.com/rust-lang/rust/blob/f6d23413c399fb530be362ebcf25a4e788e16137/compiler/rustc_hir_analysis/src/check/region.rs#L538 --- src/destructors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/destructors.md b/src/destructors.md index 36e0fe1ed..875979682 100644 --- a/src/destructors.md +++ b/src/destructors.md @@ -412,7 +412,7 @@ An *extending pattern* is either * An [identifier pattern] that binds by reference or mutable reference. * A [struct][struct pattern], [tuple][tuple pattern], [tuple struct][tuple - struct pattern], or [slice][slice pattern] pattern where at least one of the + struct pattern], [slice][slice pattern], or [or-pattern][or-patterns] where at least one of the direct subpatterns is an extending pattern. So `ref x`, `V(ref x)` and `[ref x, y]` are all extending patterns, but `x`,