From: "Gary Guo" <gary@garyguo.net>
To: "Miguel Ojeda" <ojeda@kernel.org>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nicolas Schier" <nsc@kernel.org>,
	"Danilo Krummrich" <dakr@kernel.org>,
	"Andreas Hindborg" <a.hindborg@kernel.org>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Will Deacon" <will@kernel.org>, "Paul Walmsley" <pjw@kernel.org>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Albert Ou" <aou@eecs.berkeley.edu>,
	"Alexandre Courbot" <acourbot@nvidia.com>,
	"David Airlie" <airlied@gmail.com>,
	"Simona Vetter" <simona@ffwll.ch>,
	"Brendan Higgins" <brendan.higgins@linux.dev>,
	"David Gow" <david@davidgow.net>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Arve Hjønnevåg" <arve@android.com>,
	"Todd Kjos" <tkjos@android.com>,
	"Christian Brauner" <christian@brauner.io>,
	"Carlos Llamas" <cmllamas@google.com>,
	"Alice Ryhl" <aliceryhl@google.com>,
	"Jonathan Corbet" <corbet@lwn.net>
Cc: "Boqun Feng" <boqun@kernel.org>, "Gary Guo" <gary@garyguo.net>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
	"Benno Lossin" <lossin@kernel.org>,
	"Trevor Gross" <tmgross@umich.edu>,
	rust-for-linux@vger.kernel.org, linux-kbuild@vger.kernel.org,
	"Lorenzo Stoakes" <lorenzo.stoakes@oracle.com>,
	"Vlastimil Babka" <vbabka@kernel.org>,
	"Liam R . Howlett" <Liam.Howlett@oracle.com>,
	"Uladzislau Rezki" <urezki@gmail.com>,
	linux-block@vger.kernel.org,
	"moderated for non-subscribers"
	<linux-arm-kernel@lists.infradead.org>,
	"Alexandre Ghiti" <alex@ghiti.fr>,
	linux-riscv@lists.infradead.org, nouveau@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org, "Rae Moar" <raemoar63@gmail.com>,
	linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
	"Nick Desaulniers" <nick.desaulniers+lkml@gmail.com>,
	"Bill Wendling" <morbo@google.com>,
	"Justin Stitt" <justinstitt@google.com>,
	llvm@lists.linux.dev, linux-kernel@vger.kernel.org,
	"Shuah Khan" <skhan@linuxfoundation.org>,
	linux-doc@vger.kernel.org
Subject: Re: [PATCH 12/33] rust: macros: update `extract_if` MSRV TODO comment
Date: Wed, 01 Apr 2026 15:18:03 +0100	[thread overview]
Message-ID: <DHHVSX66206Y.3E7I9QUNTCJ8I@garyguo.net> (raw)
In-Reply-To: <20260401114540.30108-13-ojeda@kernel.org>

On Wed Apr 1, 2026 at 12:45 PM BST, Miguel Ojeda wrote:
> `feature(extract_if)` was stabilized in Rust 1.87.0 [1].
>
> Thus update the comment to reflect that.
>
> Alternatively, we could use it unstably already.
>
> Link: https://github.com/rust-lang/rust/pull/137109 [1]
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
> ---
>  rust/macros/kunit.rs | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/rust/macros/kunit.rs b/rust/macros/kunit.rs
> index 6be880d634e2..6f6d746b8dbb 100644
> --- a/rust/macros/kunit.rs
> +++ b/rust/macros/kunit.rs
> @@ -87,7 +87,7 @@ pub(crate) fn kunit_tests(test_suite: Ident, mut module: ItemMod) -> Result<Toke
>              continue;
>          };
>  
> -        // TODO: Replace below with `extract_if` when MSRV is bumped above 1.85.
> +        // TODO: Replace with `extract_if` when MSRV is >= 1.87.0.
>          let before_len = f.attrs.len();
>          f.attrs.retain(|attr| !attr.path().is_ident("test"));
>          if f.attrs.len() == before_len {

When I write the comment the intention is to enable the unstable feature and
switch.

Best,
Gary

diff --git a/rust/macros/kunit.rs b/rust/macros/kunit.rs
index 6be880d634e2..ae20ed6768f1 100644
--- a/rust/macros/kunit.rs
+++ b/rust/macros/kunit.rs
@@ -87,10 +87,11 @@ pub(crate) fn kunit_tests(test_suite: Ident, mut module: ItemMod) -> Result<Toke
             continue;
         };
 
-        // TODO: Replace below with `extract_if` when MSRV is bumped above 1.85.
-        let before_len = f.attrs.len();
-        f.attrs.retain(|attr| !attr.path().is_ident("test"));
-        if f.attrs.len() == before_len {
+        if f.attrs
+            .extract_if(.., |attr| attr.path().is_ident("test"))
+            .count()
+            == 0
+        {
             processed_items.push(Item::Fn(f));
             continue;
         }
diff --git a/rust/macros/lib.rs b/rust/macros/lib.rs
index 0c36194d9971..2cfd59e0f9e7 100644
--- a/rust/macros/lib.rs
+++ b/rust/macros/lib.rs
@@ -6,6 +6,9 @@
 // and thus add a dependency on `include/config/RUSTC_VERSION_TEXT`, which is
 // touched by Kconfig when the version string from the compiler changes.
 
+// Stable since Rust 1.87.0.
+#![feature(extract_if)]
+//
 // Stable since Rust 1.88.0 under a different name, `proc_macro_span_file`,
 // which was added in Rust 1.88.0. This is why `cfg_attr` is used here, i.e.
 // to avoid depending on the full `proc_macro_span` on Rust >= 1.88.0.

  reply	other threads:[~2026-04-01 14:18 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-01 11:45 [PATCH 00/33] rust: bump minimum Rust and `bindgen` versions Miguel Ojeda
2026-04-01 11:45 ` [PATCH 01/33] rust: bump Rust minimum supported version to 1.85.0 (Debian Trixie) Miguel Ojeda
2026-04-01 12:24   ` Alice Ryhl
2026-04-01 12:38     ` Miguel Ojeda
2026-04-01 12:28   ` Danilo Krummrich
2026-04-01 13:11   ` Gary Guo
2026-04-01 13:28   ` Gary Guo
2026-04-01 13:31     ` Miguel Ojeda
2026-04-01 14:57   ` Benno Lossin
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 02/33] rust: bump Clippy's MSRV and clean `incompatible_msrv` allows Miguel Ojeda
2026-04-01 13:15   ` Gary Guo
2026-04-01 15:39   ` Danilo Krummrich
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 03/33] rust: simplify `RUSTC_VERSION` Kconfig conditions Miguel Ojeda
2026-04-01 13:18   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 04/33] rust: remove `RUSTC_HAS_SLICE_AS_FLATTENED` and simplify code Miguel Ojeda
2026-04-01 13:18   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 05/33] rust: remove `RUSTC_HAS_COERCE_POINTEE` " Miguel Ojeda
2026-04-01 13:44   ` Gary Guo
2026-04-01 15:38   ` Danilo Krummrich
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 06/33] rust: kbuild: remove skipping of `-Wrustdoc::unescaped_backticks` Miguel Ojeda
2026-04-01 13:44   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 07/33] rust: kbuild: remove `feature(...)`s that are now stable Miguel Ojeda
2026-04-01 13:51   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 08/33] rust: kbuild: simplify `--remap-path-prefix` workaround Miguel Ojeda
2026-04-01 13:59   ` Gary Guo
2026-04-01 17:36     ` Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 09/33] rust: kbuild: make `--remap-path-prefix` workaround conditional Miguel Ojeda
2026-04-01 14:08   ` Gary Guo
2026-04-01 17:39     ` Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 10/33] rust: transmute: simplify code with Rust 1.80.0 `split_at_*checked()` Miguel Ojeda
2026-04-01 14:10   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-05 19:29     ` Miguel Ojeda
2026-04-01 11:45 ` [PATCH 11/33] rust: alloc: simplify with `NonNull::add()` now that it is stable Miguel Ojeda
2026-04-01 12:28   ` Danilo Krummrich
2026-04-01 14:12   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-05 19:31     ` Miguel Ojeda
2026-04-01 11:45 ` [PATCH 12/33] rust: macros: update `extract_if` MSRV TODO comment Miguel Ojeda
2026-04-01 14:18   ` Gary Guo [this message]
2026-04-01 17:45     ` Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 13/33] rust: block: update `const_refs_to_static` " Miguel Ojeda
2026-04-01 14:37   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-02  1:43     ` Gary Guo
2026-04-01 11:45 ` [PATCH 14/33] rust: bump `bindgen` minimum supported version to 0.71.1 (Debian Trixie) Miguel Ojeda
2026-04-01 14:38   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 15/33] rust: rust_is_available: remove warning for 0.66.[01] buggy versions Miguel Ojeda
2026-04-01 14:58   ` Gary Guo
2026-04-02  7:12     ` Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 16/33] rust: rust_is_available: remove warning for < 0.69.5 && libclang >= 19.1 Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 17/33] rust: kbuild: update `bindgen --rust-target` version and replace comment Miguel Ojeda
2026-04-01 15:05   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-05 19:31     ` Miguel Ojeda
2026-04-01 11:45 ` [PATCH 18/33] rust: kbuild: remove "dummy parameter" workaround for `bindgen` < 0.71.1 Miguel Ojeda
2026-04-01 15:05   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 19/33] rust: kbuild: remove "`try` keyword" workaround for `bindgen` < 0.59.2 Miguel Ojeda
2026-04-01 15:05   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 20/33] rust: kbuild: remove unneeded old `allow`s for generated layout tests Miguel Ojeda
2026-04-01 15:05   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-05 19:31     ` Miguel Ojeda
2026-04-01 11:45 ` [PATCH 21/33] gpu: nova-core: bindings: remove unneeded `cfg_attr` Miguel Ojeda
2026-04-01 12:29   ` Danilo Krummrich
2026-04-01 15:08   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 22/33] docs: rust: quick-start: openSUSE provides `rust-src` package nowadays Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 23/33] docs: rust: quick-start: update Ubuntu versioned packages Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-05 19:35     ` Miguel Ojeda
2026-04-06  0:06       ` Gary Guo
2026-04-06  0:14         ` Miguel Ojeda
2026-04-01 11:45 ` [PATCH 24/33] docs: rust: quick-start: update minimum Ubuntu version Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 25/33] docs: rust: quick-start: add Ubuntu 26.04 LTS and remove subsection title Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 26/33] docs: rust: quick-start: remove Gentoo "testing" note Miguel Ojeda
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 27/33] docs: rust: quick-start: remove Nix "unstable channel" note Miguel Ojeda
2026-04-01 15:10   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 28/33] docs: rust: quick-start: remove GDB/Binutils mention Miguel Ojeda
2026-04-01 15:15   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 29/33] docs: rust: general-information: simplify Kconfig example Miguel Ojeda
2026-04-01 15:16   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 30/33] docs: rust: general-information: use real example Miguel Ojeda
2026-04-01 15:16   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 31/33] rust: declare cfi_encoding for lru_status Miguel Ojeda
2026-04-01 15:20   ` Gary Guo
2026-04-01 11:45 ` [PATCH 32/33] rust: kbuild: support global per-version flags Miguel Ojeda
2026-04-01 15:26   ` Gary Guo
2026-04-05 23:15     ` Miguel Ojeda
2026-04-06  0:09       ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-01 11:45 ` [PATCH 33/33] rust: kbuild: allow `clippy::precedence` for Rust < 1.86.0 Miguel Ojeda
2026-04-01 15:28   ` Gary Guo
2026-04-01 22:59   ` Tamir Duberstein
2026-04-06 13:21     ` Miguel Ojeda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DHHVSX66206Y.3E7I9QUNTCJ8I@garyguo.net \
    --to=gary@garyguo.net \
    --cc=Liam.Howlett@oracle.com \
    --cc=a.hindborg@kernel.org \
    --cc=acourbot@nvidia.com \
    --cc=airlied@gmail.com \
    --cc=alex@ghiti.fr \
    --cc=aliceryhl@google.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=arve@android.com \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun@kernel.org \
    --cc=brendan.higgins@linux.dev \
    --cc=catalin.marinas@arm.com \
    --cc=christian@brauner.io \
    --cc=cmllamas@google.com \
    --cc=corbet@lwn.net \
    --cc=dakr@kernel.org \
    --cc=david@davidgow.net \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=justinstitt@google.com \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=llvm@lists.linux.dev \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=lossin@kernel.org \
    --cc=morbo@google.com \
    --cc=nathan@kernel.org \
    --cc=nick.desaulniers+lkml@gmail.com \
    --cc=nouveau@lists.freedesktop.org \
    --cc=nsc@kernel.org \
    --cc=ojeda@kernel.org \
    --cc=palmer@dabbelt.com \
    --cc=pjw@kernel.org \
    --cc=raemoar63@gmail.com \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=simona@ffwll.ch \
    --cc=skhan@linuxfoundation.org \
    --cc=tkjos@android.com \
    --cc=tmgross@umich.edu \
    --cc=urezki@gmail.com \
    --cc=vbabka@kernel.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).