From 886c7c7be66ca4fa6f5ba9087df5af2fb032cf32 Mon Sep 17 00:00:00 2001 From: Mike Foster Date: Tue, 1 Sep 2026 09:42:23 +0000 Subject: [PATCH 1/4] use #![cfg_attr(unstable_never_type, feature(never_type))] in all relevant examples --- crates/try_v2/examples/BangMatching.rs | 2 +- crates/try_v2/examples/Nested_Try.rs | 2 +- crates/try_v2/examples/TraitExt_Try.rs | 2 +- crates/try_v2/examples/TryFrom2.rs | 2 +- crates/try_v2/examples/clear_ready.rs | 2 +- crates/try_v2/examples/doubleQ.rs | 2 +- crates/try_v2/examples/nested_residual.rs | 2 +- crates/try_v2/src/lib.rs | 6 +++--- crates/try_v2_derive/examples/FromResidualMulti.rs | 2 +- crates/try_v2_derive/examples/FromResidualNested.rs | 2 +- .../examples/FromResidualNestedFullPath.rs | 2 +- .../examples/FromResidualNestedInfer.rs | 2 +- .../examples/FromResidualNestedMulti.rs | 2 +- crates/try_v2_derive/examples/Iterator.rs | 2 +- crates/try_v2_derive/examples/ReferenceMethods.rs | 2 +- crates/try_v2_derive/examples/basic_usage.rs | 2 +- crates/try_v2_derive/examples/pass_GenericE.rs | 2 +- crates/try_v2_derive/examples/pass_MultipleFields.rs | 2 +- .../try_v2_derive/examples/pass_MultipleGenerics.rs | 2 +- .../try_v2_derive/examples/pass_NoFieldResiduals.rs | 2 +- crates/try_v2_derive/examples/pass_NoUnitResidual.rs | 2 +- crates/try_v2_derive/examples/pass_ResultMeBang.rs | 2 +- crates/try_v2_derive/src/lib.rs | 12 ++++++------ 23 files changed, 30 insertions(+), 30 deletions(-) diff --git a/crates/try_v2/examples/BangMatching.rs b/crates/try_v2/examples/BangMatching.rs index 7b4c6a5..a35704f 100644 --- a/crates/try_v2/examples/BangMatching.rs +++ b/crates/try_v2/examples/BangMatching.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![allow(dead_code)] enum ValidatedBox { diff --git a/crates/try_v2/examples/Nested_Try.rs b/crates/try_v2/examples/Nested_Try.rs index 10cf14a..6fb9e1d 100644 --- a/crates/try_v2/examples/Nested_Try.rs +++ b/crates/try_v2/examples/Nested_Try.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] #![allow(dead_code, clippy::disallowed_names)] diff --git a/crates/try_v2/examples/TraitExt_Try.rs b/crates/try_v2/examples/TraitExt_Try.rs index f2b5d49..438a147 100644 --- a/crates/try_v2/examples/TraitExt_Try.rs +++ b/crates/try_v2/examples/TraitExt_Try.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] #![allow(clippy::disallowed_names)] diff --git a/crates/try_v2/examples/TryFrom2.rs b/crates/try_v2/examples/TryFrom2.rs index cac16dc..69ae2cd 100644 --- a/crates/try_v2/examples/TryFrom2.rs +++ b/crates/try_v2/examples/TryFrom2.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] #![feature(associated_type_defaults)] diff --git a/crates/try_v2/examples/clear_ready.rs b/crates/try_v2/examples/clear_ready.rs index 8b523d4..e783319 100644 --- a/crates/try_v2/examples/clear_ready.rs +++ b/crates/try_v2/examples/clear_ready.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![allow(unused, clippy::disallowed_names)] use std::{ io, diff --git a/crates/try_v2/examples/doubleQ.rs b/crates/try_v2/examples/doubleQ.rs index e100012..c05517b 100644 --- a/crates/try_v2/examples/doubleQ.rs +++ b/crates/try_v2/examples/doubleQ.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] #![feature(min_specialization)] diff --git a/crates/try_v2/examples/nested_residual.rs b/crates/try_v2/examples/nested_residual.rs index dc6257f..5baeac3 100644 --- a/crates/try_v2/examples/nested_residual.rs +++ b/crates/try_v2/examples/nested_residual.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] #![allow(dead_code, clippy::disallowed_names)] diff --git a/crates/try_v2/src/lib.rs b/crates/try_v2/src/lib.rs index aad1489..7fb76d4 100644 --- a/crates/try_v2/src/lib.rs +++ b/crates/try_v2/src/lib.rs @@ -8,7 +8,7 @@ //! ## Requires //! //! - nightly -//! - `#![feature(never_type)]` +//! - `#![cfg_attr(unstable_never_type, feature(never_type))]` //! - `#![feature(try_trait_v2)]` //! - `#![feature(try_trait_v2_residual)]` //! @@ -28,7 +28,7 @@ //! ## Example Usage //! //! ```rust, ignore TODO update -//! #![feature(never_type)] +//! #![cfg_attr(unstable_never_type, feature(never_type))] //! #![feature(try_trait_v2)] //! #![feature(try_trait_v2_residual)] //! use try_v2::Try; @@ -77,7 +77,7 @@ //! //! > 🔬 **Required Experimental Features** //! > -//! > - [`#![feature(never_type)]`](https://github.com/rust-lang/rust/issues/35121) +//! > - [`#![cfg_attr(unstable_never_type, feature(never_type))]`](https://github.com/rust-lang/rust/issues/35121) //! > - [`#![feature(try_trait_v2)]`](https://github.com/rust-lang/rust/issues/84277) //! > - [`#![feature(try_trait_v2_residual)]`](https://github.com/rust-lang/rust/issues/91285) //! diff --git a/crates/try_v2_derive/examples/FromResidualMulti.rs b/crates/try_v2_derive/examples/FromResidualMulti.rs index 67d7f23..a79ffd6 100644 --- a/crates/try_v2_derive/examples/FromResidualMulti.rs +++ b/crates/try_v2_derive/examples/FromResidualMulti.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/FromResidualNested.rs b/crates/try_v2_derive/examples/FromResidualNested.rs index 0403487..ec228b0 100644 --- a/crates/try_v2_derive/examples/FromResidualNested.rs +++ b/crates/try_v2_derive/examples/FromResidualNested.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/FromResidualNestedFullPath.rs b/crates/try_v2_derive/examples/FromResidualNestedFullPath.rs index 05dd7d9..ac06a05 100644 --- a/crates/try_v2_derive/examples/FromResidualNestedFullPath.rs +++ b/crates/try_v2_derive/examples/FromResidualNestedFullPath.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/FromResidualNestedInfer.rs b/crates/try_v2_derive/examples/FromResidualNestedInfer.rs index d643a03..a56cd7a 100644 --- a/crates/try_v2_derive/examples/FromResidualNestedInfer.rs +++ b/crates/try_v2_derive/examples/FromResidualNestedInfer.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/FromResidualNestedMulti.rs b/crates/try_v2_derive/examples/FromResidualNestedMulti.rs index 7978af4..ff32502 100644 --- a/crates/try_v2_derive/examples/FromResidualNestedMulti.rs +++ b/crates/try_v2_derive/examples/FromResidualNestedMulti.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/Iterator.rs b/crates/try_v2_derive/examples/Iterator.rs index 0fa6248..d48982d 100644 --- a/crates/try_v2_derive/examples/Iterator.rs +++ b/crates/try_v2_derive/examples/Iterator.rs @@ -1,5 +1,5 @@ #![allow(unused)] -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/ReferenceMethods.rs b/crates/try_v2_derive/examples/ReferenceMethods.rs index c213a5e..0030718 100644 --- a/crates/try_v2_derive/examples/ReferenceMethods.rs +++ b/crates/try_v2_derive/examples/ReferenceMethods.rs @@ -1,5 +1,5 @@ #![allow(unused)] -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/basic_usage.rs b/crates/try_v2_derive/examples/basic_usage.rs index de52593..3a01186 100644 --- a/crates/try_v2_derive/examples/basic_usage.rs +++ b/crates/try_v2_derive/examples/basic_usage.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/pass_GenericE.rs b/crates/try_v2_derive/examples/pass_GenericE.rs index bfec506..49b62f1 100644 --- a/crates/try_v2_derive/examples/pass_GenericE.rs +++ b/crates/try_v2_derive/examples/pass_GenericE.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/pass_MultipleFields.rs b/crates/try_v2_derive/examples/pass_MultipleFields.rs index 7355c57..251b501 100644 --- a/crates/try_v2_derive/examples/pass_MultipleFields.rs +++ b/crates/try_v2_derive/examples/pass_MultipleFields.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/pass_MultipleGenerics.rs b/crates/try_v2_derive/examples/pass_MultipleGenerics.rs index 60ab63b..3cfef4b 100644 --- a/crates/try_v2_derive/examples/pass_MultipleGenerics.rs +++ b/crates/try_v2_derive/examples/pass_MultipleGenerics.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/pass_NoFieldResiduals.rs b/crates/try_v2_derive/examples/pass_NoFieldResiduals.rs index 1aead68..4210fcc 100644 --- a/crates/try_v2_derive/examples/pass_NoFieldResiduals.rs +++ b/crates/try_v2_derive/examples/pass_NoFieldResiduals.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/pass_NoUnitResidual.rs b/crates/try_v2_derive/examples/pass_NoUnitResidual.rs index 18d6a4b..6647144 100644 --- a/crates/try_v2_derive/examples/pass_NoUnitResidual.rs +++ b/crates/try_v2_derive/examples/pass_NoUnitResidual.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/examples/pass_ResultMeBang.rs b/crates/try_v2_derive/examples/pass_ResultMeBang.rs index ecdb7c2..eb17a5b 100644 --- a/crates/try_v2_derive/examples/pass_ResultMeBang.rs +++ b/crates/try_v2_derive/examples/pass_ResultMeBang.rs @@ -1,4 +1,4 @@ -#![feature(never_type)] +#![cfg_attr(unstable_never_type, feature(never_type))] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/src/lib.rs b/crates/try_v2_derive/src/lib.rs index b93b08e..cbad167 100644 --- a/crates/try_v2_derive/src/lib.rs +++ b/crates/try_v2_derive/src/lib.rs @@ -34,7 +34,7 @@ use parse::TryEnum; /// /// ## Derived code /// ``` -/// # #![feature(never_type)] +/// # #![cfg_attr(unstable_never_type, feature(never_type))] /// # #![feature(try_trait_v2)] /// # #![feature(try_trait_v2_residual)] /// # use try_v2_derive::Try; @@ -101,7 +101,7 @@ use parse::TryEnum; /// 2. provide relevant `From` implementations (see examples) /// /// ``` -/// # #![feature(never_type)] +/// # #![cfg_attr(unstable_never_type, feature(never_type))] /// # #![feature(try_trait_v2)] /// # #![feature(try_trait_v2_residual)] /// # use try_v2_derive::Try; @@ -136,7 +136,7 @@ use parse::TryEnum; /// /// ### Residual /// The `Residual` is generated by replacing the _first generic type_ with `!`. This means -/// - we rely on the unstable `#![feature(never_type)]` (on the assumption that it will be +/// - we rely on the unstable `#![cfg_attr(unstable_never_type, feature(never_type))]` (on the assumption that it will be /// stabilised on a similar timeframe to `#![feature(try_trait_v2)]` /// - any short-circuiting variants which also store this type will have a "hole" /// - the **invariant** _first generic type is stored by first variant_ is **strictly** enforced. @@ -157,7 +157,7 @@ use parse::TryEnum; /// this valuable. /// /// ``` -/// # #![feature(never_type)] +/// # #![cfg_attr(unstable_never_type, feature(never_type))] /// # #![feature(try_trait_v2)] /// # #![feature(try_trait_v2_residual)] /// # use try_v2_derive::Try; @@ -463,7 +463,7 @@ fn derive_try_trait_v2(input: TokenStream2) -> DiagnosticStream { /// ## Example /// /// ``` -/// # #![feature(never_type)] +/// # #![cfg_attr(unstable_never_type, feature(never_type))] /// # #![feature(try_trait_v2)] /// # #![feature(try_trait_v2_residual)] /// @@ -571,7 +571,7 @@ fn derive_from_residual(input: TokenStream2) -> DiagnosticStream { /// ## Example /// /// ``` -/// # #![feature(never_type)] +/// # #![cfg_attr(unstable_never_type, feature(never_type))] /// # #![feature(try_trait_v2)] /// # #![feature(try_trait_v2_residual)] /// # use try_v2_derive::{IntoIterator, Try}; From efb11708636633ef16bb1ce68b5656b1db1dff85 Mon Sep 17 00:00:00 2001 From: Mike Foster Date: Tue, 1 Sep 2026 09:45:52 +0000 Subject: [PATCH 2/4] #![allow(stable_features)] in compilation tests --- .../compilation/fail_FirstGenericNotOutput.rs | 1 + .../fail_FirstGenericNotOutput.stderr | 36 +++++++------- .../tests/compilation/fail_MustUse.rs | 1 + .../tests/compilation/fail_MustUse.stderr | 20 ++++---- .../tests/compilation/fail_NoGenerics.rs | 1 + .../tests/compilation/fail_NoGenerics.stderr | 20 ++++---- .../compilation/fail_OutputNamedFields.rs | 1 + .../compilation/fail_OutputNamedFields.stderr | 24 +++++----- .../tests/compilation/fail_OutputTypeKind.rs | 1 + .../compilation/fail_OutputTypeKind.stderr | 48 +++++++++---------- .../tests/compilation/fail_OutputUnitType.rs | 1 + .../compilation/fail_OutputUnitType.stderr | 12 ++--- .../tests/compilation/fail_Struct.rs | 1 + .../tests/compilation/fail_Struct.stderr | 20 ++++---- .../tests/compilation/fail_TooManyOutputs.rs | 1 + .../compilation/fail_TooManyOutputs.stderr | 36 +++++++------- .../tests/compilation/fail_Union.rs | 1 + .../tests/compilation/fail_Union.stderr | 24 +++++----- .../tests/compilation/fail_ZeroFieldEnum.rs | 1 + .../compilation/fail_ZeroFieldEnum.stderr | 34 ++++++------- .../compilation/fail_lifetime_conversion.rs | 1 + .../fail_lifetime_conversion.stderr | 18 +++---- .../compilation/fail_lifetime_duration.rs | 1 + .../compilation/fail_lifetime_duration.stderr | 12 ++--- 24 files changed, 164 insertions(+), 152 deletions(-) diff --git a/crates/try_v2_derive/tests/compilation/fail_FirstGenericNotOutput.rs b/crates/try_v2_derive/tests/compilation/fail_FirstGenericNotOutput.rs index e1adff2..57c418e 100644 --- a/crates/try_v2_derive/tests/compilation/fail_FirstGenericNotOutput.rs +++ b/crates/try_v2_derive/tests/compilation/fail_FirstGenericNotOutput.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_FirstGenericNotOutput.stderr b/crates/try_v2_derive/tests/compilation/fail_FirstGenericNotOutput.stderr index c2226a5..904950e 100644 --- a/crates/try_v2_derive/tests/compilation/fail_FirstGenericNotOutput.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_FirstGenericNotOutput.stderr @@ -1,53 +1,53 @@ error: Try requires the first generic type to be used as the `Output` type - --> tests/compilation/fail_FirstGenericNotOutput.rs:7:17 + --> tests/compilation/fail_FirstGenericNotOutput.rs:8:17 | - 7 | #[derive(Debug, Try)] + 8 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_FirstGenericNotOutput.rs:9:12 + --> tests/compilation/fail_FirstGenericNotOutput.rs:10:12 | - 9 | enum Owned { +10 | enum Owned { | ^ help: change this to T - --> tests/compilation/fail_FirstGenericNotOutput.rs:10:8 + --> tests/compilation/fail_FirstGenericNotOutput.rs:11:8 | -10 | Ok(E), +11 | Ok(E), | ^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error: Try requires the first generic type to be used as the `Output` type - --> tests/compilation/fail_FirstGenericNotOutput.rs:14:17 + --> tests/compilation/fail_FirstGenericNotOutput.rs:15:17 | -14 | #[derive(Debug, Try)] +15 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_FirstGenericNotOutput.rs:17:23 + --> tests/compilation/fail_FirstGenericNotOutput.rs:18:23 | -17 | enum Borrowed<'t, 'e, T, E> { +18 | enum Borrowed<'t, 'e, T, E> { | ^ help: change this to &'e T - --> tests/compilation/fail_FirstGenericNotOutput.rs:18:8 + --> tests/compilation/fail_FirstGenericNotOutput.rs:19:8 | -18 | Ok(&'e E), +19 | Ok(&'e E), | ^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error: Try requires a single generic type for `Output` - --> tests/compilation/fail_FirstGenericNotOutput.rs:22:17 + --> tests/compilation/fail_FirstGenericNotOutput.rs:23:17 | -22 | #[derive(Debug, Try)] +23 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_FirstGenericNotOutput.rs:25:35 + --> tests/compilation/fail_FirstGenericNotOutput.rs:26:35 | -25 | enum MultipleBorrowed<'t, 'e, 'f, T, E, F> { +26 | enum MultipleBorrowed<'t, 'e, 'f, T, E, F> { | ^ help: change this to (T) - --> tests/compilation/fail_FirstGenericNotOutput.rs:26:7 + --> tests/compilation/fail_FirstGenericNotOutput.rs:27:7 | -26 | Ok(&'e E, &'f F), +27 | Ok(&'e E, &'f F), | ^^^^^^^^^^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/crates/try_v2_derive/tests/compilation/fail_MustUse.rs b/crates/try_v2_derive/tests/compilation/fail_MustUse.rs index ab5bb2e..98e8fba 100644 --- a/crates/try_v2_derive/tests/compilation/fail_MustUse.rs +++ b/crates/try_v2_derive/tests/compilation/fail_MustUse.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_MustUse.stderr b/crates/try_v2_derive/tests/compilation/fail_MustUse.stderr index 2c10384..33d307a 100644 --- a/crates/try_v2_derive/tests/compilation/fail_MustUse.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_MustUse.stderr @@ -1,22 +1,22 @@ warning: it is recommended to annotate try-types as `#[must_use]` - --> tests/compilation/fail_MustUse.rs:8:1 + --> tests/compilation/fail_MustUse.rs:9:1 | - 8 | / enum ExitE { - 9 | | Ok(E), -10 | | TestsFailed, -11 | | OtherError(String), -12 | | } + 9 | / enum ExitE { +10 | | Ok(E), +11 | | TestsFailed, +12 | | OtherError(String), +13 | | } | |_^ | note: this warning originates from the macro invocation here - --> tests/compilation/fail_MustUse.rs:7:17 + --> tests/compilation/fail_MustUse.rs:8:17 | - 7 | #[derive(Debug, Try)] + 8 | #[derive(Debug, Try)] | ^^^ = note: this warning originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0425]: cannot find value `fail` in this scope - --> tests/compilation/fail_MustUse.rs:15:5 + --> tests/compilation/fail_MustUse.rs:16:5 | -15 | fail +16 | fail | ^^^^ not found in this scope diff --git a/crates/try_v2_derive/tests/compilation/fail_NoGenerics.rs b/crates/try_v2_derive/tests/compilation/fail_NoGenerics.rs index 008a880..1231698 100644 --- a/crates/try_v2_derive/tests/compilation/fail_NoGenerics.rs +++ b/crates/try_v2_derive/tests/compilation/fail_NoGenerics.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_NoGenerics.stderr b/crates/try_v2_derive/tests/compilation/fail_NoGenerics.stderr index 286f3f0..4a16e3e 100644 --- a/crates/try_v2_derive/tests/compilation/fail_NoGenerics.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_NoGenerics.stderr @@ -1,12 +1,12 @@ error: Try requires a generic type for `Output` - --> tests/compilation/fail_NoGenerics.rs:7:17 - | -7 | #[derive(Debug, Try)] - | ^^^ - | + --> tests/compilation/fail_NoGenerics.rs:8:17 + | + 8 | #[derive(Debug, Try)] + | ^^^ + | help: Add after this... - --> tests/compilation/fail_NoGenerics.rs:9:6 - | -9 | enum NoGenerics { - | ^^^^^^^^^^ - = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) + --> tests/compilation/fail_NoGenerics.rs:10:6 + | +10 | enum NoGenerics { + | ^^^^^^^^^^ + = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/crates/try_v2_derive/tests/compilation/fail_OutputNamedFields.rs b/crates/try_v2_derive/tests/compilation/fail_OutputNamedFields.rs index bd91602..984796d 100644 --- a/crates/try_v2_derive/tests/compilation/fail_OutputNamedFields.rs +++ b/crates/try_v2_derive/tests/compilation/fail_OutputNamedFields.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_OutputNamedFields.stderr b/crates/try_v2_derive/tests/compilation/fail_OutputNamedFields.stderr index 1db428d..4607bdc 100644 --- a/crates/try_v2_derive/tests/compilation/fail_OutputNamedFields.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_OutputNamedFields.stderr @@ -1,35 +1,35 @@ error: Try requires an unnamed field for the `Output` variant - --> tests/compilation/fail_OutputNamedFields.rs:7:17 + --> tests/compilation/fail_OutputNamedFields.rs:8:17 | - 7 | #[derive(Debug, Try)] + 8 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_OutputNamedFields.rs:9:23 + --> tests/compilation/fail_OutputNamedFields.rs:10:23 | - 9 | enum OutputNamedField { +10 | enum OutputNamedField { | ^ help: change this to (T) - --> tests/compilation/fail_OutputNamedFields.rs:10:8 + --> tests/compilation/fail_OutputNamedFields.rs:11:8 | -10 | Ok { foo: T }, +11 | Ok { foo: T }, | ^^^^^^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error: Try requires an unnamed field for the `Output` variant - --> tests/compilation/fail_OutputNamedFields.rs:15:17 + --> tests/compilation/fail_OutputNamedFields.rs:16:17 | -15 | #[derive(Debug, Try)] +16 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_OutputNamedFields.rs:18:35 + --> tests/compilation/fail_OutputNamedFields.rs:19:35 | -18 | enum OutputNamedFieldBorrowed<'t, T> { +19 | enum OutputNamedFieldBorrowed<'t, T> { | ^ help: change this to (T) - --> tests/compilation/fail_OutputNamedFields.rs:19:8 + --> tests/compilation/fail_OutputNamedFields.rs:20:8 | -19 | Ok { foo: &'t T }, +20 | Ok { foo: &'t T }, | ^^^^^^^^^^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/crates/try_v2_derive/tests/compilation/fail_OutputTypeKind.rs b/crates/try_v2_derive/tests/compilation/fail_OutputTypeKind.rs index 346c459..1110592 100644 --- a/crates/try_v2_derive/tests/compilation/fail_OutputTypeKind.rs +++ b/crates/try_v2_derive/tests/compilation/fail_OutputTypeKind.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_OutputTypeKind.stderr b/crates/try_v2_derive/tests/compilation/fail_OutputTypeKind.stderr index 73c603f..b4092d9 100644 --- a/crates/try_v2_derive/tests/compilation/fail_OutputTypeKind.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_OutputTypeKind.stderr @@ -1,71 +1,71 @@ error: Try requires the first generic type to be used as the `Output` type - --> tests/compilation/fail_OutputTypeKind.rs:7:17 + --> tests/compilation/fail_OutputTypeKind.rs:8:17 | - 7 | #[derive(Debug, Try)] + 8 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_OutputTypeKind.rs:9:21 + --> tests/compilation/fail_OutputTypeKind.rs:10:21 | - 9 | enum NotSimpleIdent { +10 | enum NotSimpleIdent { | ^ help: change this to T - --> tests/compilation/fail_OutputTypeKind.rs:10:8 + --> tests/compilation/fail_OutputTypeKind.rs:11:8 | -10 | Ok(proc_macro2::TokenStream), +11 | Ok(proc_macro2::TokenStream), | ^^^^^^^^^^^^^^^^^^^^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error: Try requires the first generic type to be used as the `Output` type - --> tests/compilation/fail_OutputTypeKind.rs:14:17 + --> tests/compilation/fail_OutputTypeKind.rs:15:17 | -14 | #[derive(Debug, Try)] +15 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_OutputTypeKind.rs:17:33 + --> tests/compilation/fail_OutputTypeKind.rs:18:33 | -17 | enum NotSimpleIdentBorrowed<'t, T> { +18 | enum NotSimpleIdentBorrowed<'t, T> { | ^ help: change this to &'t T - --> tests/compilation/fail_OutputTypeKind.rs:18:8 + --> tests/compilation/fail_OutputTypeKind.rs:19:8 | -18 | Ok(&'t proc_macro2::TokenStream), +19 | Ok(&'t proc_macro2::TokenStream), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error: Try requires the first generic type to be used as the `Output` type - --> tests/compilation/fail_OutputTypeKind.rs:22:17 + --> tests/compilation/fail_OutputTypeKind.rs:23:17 | -22 | #[derive(Debug, Try)] +23 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_OutputTypeKind.rs:25:19 + --> tests/compilation/fail_OutputTypeKind.rs:26:19 | -25 | enum NotPathOrRef { +26 | enum NotPathOrRef { | ^ help: change this to T - --> tests/compilation/fail_OutputTypeKind.rs:26:8 + --> tests/compilation/fail_OutputTypeKind.rs:27:8 | -26 | Ok(!), +27 | Ok(!), | ^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error: Try requires the first generic type to be used as the `Output` type - --> tests/compilation/fail_OutputTypeKind.rs:30:17 + --> tests/compilation/fail_OutputTypeKind.rs:31:17 | -30 | #[derive(Debug, Try)] +31 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_OutputTypeKind.rs:33:23 + --> tests/compilation/fail_OutputTypeKind.rs:34:23 | -33 | enum RefToNotPath<'n, T> { +34 | enum RefToNotPath<'n, T> { | ^ help: change this to &'n T - --> tests/compilation/fail_OutputTypeKind.rs:34:8 + --> tests/compilation/fail_OutputTypeKind.rs:35:8 | -34 | Ok(&'n !), +35 | Ok(&'n !), | ^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/crates/try_v2_derive/tests/compilation/fail_OutputUnitType.rs b/crates/try_v2_derive/tests/compilation/fail_OutputUnitType.rs index dc904a8..ba5da34 100644 --- a/crates/try_v2_derive/tests/compilation/fail_OutputUnitType.rs +++ b/crates/try_v2_derive/tests/compilation/fail_OutputUnitType.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_OutputUnitType.stderr b/crates/try_v2_derive/tests/compilation/fail_OutputUnitType.stderr index 3f7064d..b4f037b 100644 --- a/crates/try_v2_derive/tests/compilation/fail_OutputUnitType.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_OutputUnitType.stderr @@ -1,17 +1,17 @@ error: Try requires a generic type for `Output` - --> tests/compilation/fail_OutputUnitType.rs:7:17 + --> tests/compilation/fail_OutputUnitType.rs:8:17 | - 7 | #[derive(Debug, Try)] + 8 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_OutputUnitType.rs:9:21 + --> tests/compilation/fail_OutputUnitType.rs:10:21 | - 9 | enum OutputUnitType { +10 | enum OutputUnitType { | ^ help: add (T) after this... - --> tests/compilation/fail_OutputUnitType.rs:10:5 + --> tests/compilation/fail_OutputUnitType.rs:11:5 | -10 | Ok, +11 | Ok, | ^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/crates/try_v2_derive/tests/compilation/fail_Struct.rs b/crates/try_v2_derive/tests/compilation/fail_Struct.rs index 42dd4c9..fd3e2d0 100644 --- a/crates/try_v2_derive/tests/compilation/fail_Struct.rs +++ b/crates/try_v2_derive/tests/compilation/fail_Struct.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_Struct.stderr b/crates/try_v2_derive/tests/compilation/fail_Struct.stderr index 2eac701..6bab825 100644 --- a/crates/try_v2_derive/tests/compilation/fail_Struct.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_Struct.stderr @@ -1,12 +1,12 @@ error: Try can only be derived for an enum - --> tests/compilation/fail_Struct.rs:7:17 - | -7 | #[derive(Debug, Try)] - | ^^^ - | + --> tests/compilation/fail_Struct.rs:8:17 + | + 8 | #[derive(Debug, Try)] + | ^^^ + | help: not an enum - --> tests/compilation/fail_Struct.rs:9:1 - | -9 | struct Struct; - | ^^^^^^ - = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) + --> tests/compilation/fail_Struct.rs:10:1 + | +10 | struct Struct; + | ^^^^^^ + = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/crates/try_v2_derive/tests/compilation/fail_TooManyOutputs.rs b/crates/try_v2_derive/tests/compilation/fail_TooManyOutputs.rs index dc79f46..a01253e 100644 --- a/crates/try_v2_derive/tests/compilation/fail_TooManyOutputs.rs +++ b/crates/try_v2_derive/tests/compilation/fail_TooManyOutputs.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_TooManyOutputs.stderr b/crates/try_v2_derive/tests/compilation/fail_TooManyOutputs.stderr index 65c068f..7ac3944 100644 --- a/crates/try_v2_derive/tests/compilation/fail_TooManyOutputs.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_TooManyOutputs.stderr @@ -1,53 +1,53 @@ error: Try requires a single generic type for `Output` - --> tests/compilation/fail_TooManyOutputs.rs:7:17 + --> tests/compilation/fail_TooManyOutputs.rs:8:17 | - 7 | #[derive(Debug, Try)] + 8 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_TooManyOutputs.rs:9:21 + --> tests/compilation/fail_TooManyOutputs.rs:10:21 | - 9 | enum TooManyOutputs { +10 | enum TooManyOutputs { | ^ help: change this to (T) - --> tests/compilation/fail_TooManyOutputs.rs:10:7 + --> tests/compilation/fail_TooManyOutputs.rs:11:7 | -10 | Ok(T, E), +11 | Ok(T, E), | ^^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error: Try requires a single generic type for `Output` - --> tests/compilation/fail_TooManyOutputs.rs:14:17 + --> tests/compilation/fail_TooManyOutputs.rs:15:17 | -14 | #[derive(Debug, Try)] +15 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_TooManyOutputs.rs:17:37 + --> tests/compilation/fail_TooManyOutputs.rs:18:37 | -17 | enum TooManyOutputsBorrowed<'t, 'e, T, E> { +18 | enum TooManyOutputsBorrowed<'t, 'e, T, E> { | ^ help: change this to (&'t T) - --> tests/compilation/fail_TooManyOutputs.rs:18:7 + --> tests/compilation/fail_TooManyOutputs.rs:19:7 | -18 | Ok(&'t T, &'e E), +19 | Ok(&'t T, &'e E), | ^^^^^^^^^^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error: Try requires a single generic type for `Output` - --> tests/compilation/fail_TooManyOutputs.rs:22:17 + --> tests/compilation/fail_TooManyOutputs.rs:23:17 | -22 | #[derive(Debug, Try)] +23 | #[derive(Debug, Try)] | ^^^ | help: Output type defined here - --> tests/compilation/fail_TooManyOutputs.rs:25:45 + --> tests/compilation/fail_TooManyOutputs.rs:26:45 | -25 | enum TooManyOutputsBorrowedOrdering<'e, 't, T, E> { +26 | enum TooManyOutputsBorrowedOrdering<'e, 't, T, E> { | ^ help: change this to (&'t T) - --> tests/compilation/fail_TooManyOutputs.rs:26:7 + --> tests/compilation/fail_TooManyOutputs.rs:27:7 | -26 | Ok(&'e E, &'t T), +27 | Ok(&'e E, &'t T), | ^^^^^^^^^^^^^^ = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/crates/try_v2_derive/tests/compilation/fail_Union.rs b/crates/try_v2_derive/tests/compilation/fail_Union.rs index 6451bbe..fbe22be 100644 --- a/crates/try_v2_derive/tests/compilation/fail_Union.rs +++ b/crates/try_v2_derive/tests/compilation/fail_Union.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_Union.stderr b/crates/try_v2_derive/tests/compilation/fail_Union.stderr index b053480..a3f6d61 100644 --- a/crates/try_v2_derive/tests/compilation/fail_Union.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_Union.stderr @@ -1,18 +1,18 @@ error: this trait cannot be derived for unions - --> tests/compilation/fail_Union.rs:7:10 + --> tests/compilation/fail_Union.rs:8:10 | -7 | #[derive(Debug, Try)] +8 | #[derive(Debug, Try)] | ^^^^^ error: Try can only be derived for an enum - --> tests/compilation/fail_Union.rs:7:17 - | -7 | #[derive(Debug, Try)] - | ^^^ - | + --> tests/compilation/fail_Union.rs:8:17 + | + 8 | #[derive(Debug, Try)] + | ^^^ + | help: not an enum - --> tests/compilation/fail_Union.rs:9:1 - | -9 | union Union { - | ^^^^^ - = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) + --> tests/compilation/fail_Union.rs:10:1 + | +10 | union Union { + | ^^^^^ + = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/crates/try_v2_derive/tests/compilation/fail_ZeroFieldEnum.rs b/crates/try_v2_derive/tests/compilation/fail_ZeroFieldEnum.rs index 6c32c3a..345151f 100644 --- a/crates/try_v2_derive/tests/compilation/fail_ZeroFieldEnum.rs +++ b/crates/try_v2_derive/tests/compilation/fail_ZeroFieldEnum.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_ZeroFieldEnum.stderr b/crates/try_v2_derive/tests/compilation/fail_ZeroFieldEnum.stderr index cb628a9..b4c7dac 100644 --- a/crates/try_v2_derive/tests/compilation/fail_ZeroFieldEnum.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_ZeroFieldEnum.stderr @@ -1,21 +1,21 @@ error: Try cannot be derived for a zero-field enum - --> tests/compilation/fail_ZeroFieldEnum.rs:7:17 - | -7 | #[derive(Debug, Try)] - | ^^^ - | + --> tests/compilation/fail_ZeroFieldEnum.rs:8:17 + | + 8 | #[derive(Debug, Try)] + | ^^^ + | help: add at least two variants here... - --> tests/compilation/fail_ZeroFieldEnum.rs:9:23 - | -9 | enum ZeroFieldEnum {} - | ^^ - = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) + --> tests/compilation/fail_ZeroFieldEnum.rs:10:23 + | +10 | enum ZeroFieldEnum {} + | ^^ + = note: this error originates in the derive macro `Try` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0392]: type parameter `T` is never used - --> tests/compilation/fail_ZeroFieldEnum.rs:9:20 - | -9 | enum ZeroFieldEnum {} - | ^ unused type parameter - | - = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` - = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead + --> tests/compilation/fail_ZeroFieldEnum.rs:10:20 + | +10 | enum ZeroFieldEnum {} + | ^ unused type parameter + | + = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` + = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead diff --git a/crates/try_v2_derive/tests/compilation/fail_lifetime_conversion.rs b/crates/try_v2_derive/tests/compilation/fail_lifetime_conversion.rs index 8f28d50..5d1514e 100644 --- a/crates/try_v2_derive/tests/compilation/fail_lifetime_conversion.rs +++ b/crates/try_v2_derive/tests/compilation/fail_lifetime_conversion.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_lifetime_conversion.stderr b/crates/try_v2_derive/tests/compilation/fail_lifetime_conversion.stderr index 8cd592a..7de0778 100644 --- a/crates/try_v2_derive/tests/compilation/fail_lifetime_conversion.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_lifetime_conversion.stderr @@ -1,38 +1,38 @@ error: lifetime may not live long enough - --> tests/compilation/fail_lifetime_conversion.rs:97:5 + --> tests/compilation/fail_lifetime_conversion.rs:98:5 | -85 | fn _unrestricted_t_result_to_borrowed<'o, 'f, 't, 'e>( +86 | fn _unrestricted_t_result_to_borrowed<'o, 'f, 't, 'e>( | -- -- lifetime `'t` defined here | | | lifetime `'o` defined here ... -97 | BorrowedResult::Ok(rtn) +98 | BorrowedResult::Ok(rtn) | ^^^^^^^^^^^^^^^^^^^^^^^ function was supposed to return data with lifetime `'t` but it is returning data with lifetime `'o` | = help: consider adding the following bound: `'o: 't` error: lifetime may not live long enough - --> tests/compilation/fail_lifetime_conversion.rs:109:16 + --> tests/compilation/fail_lifetime_conversion.rs:110:16 | -100 | fn _unrestricted_e_result_to_borrowed_direct<'o, 'f, 't, 'e>( +101 | fn _unrestricted_e_result_to_borrowed_direct<'o, 'f, 't, 'e>( | -- -- lifetime `'e` defined here | | | lifetime `'f` defined here ... -109 | 5.. => fail_directly(Failure(errval))?, +110 | 5.. => fail_directly(Failure(errval))?, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function was supposed to return data with lifetime `'e` but it is returning data with lifetime `'f` | = help: consider adding the following bound: `'f: 'e` error: lifetime may not live long enough - --> tests/compilation/fail_lifetime_conversion.rs:123:16 + --> tests/compilation/fail_lifetime_conversion.rs:124:16 | -114 | fn _unrestricted_e_result_to_borrowed_indirect<'o, 'f, 't, 'e>( +115 | fn _unrestricted_e_result_to_borrowed_indirect<'o, 'f, 't, 'e>( | -- -- lifetime `'e` defined here | | | lifetime `'f` defined here ... -123 | 5.. => fail(Failure(errval))?, +124 | 5.. => fail(Failure(errval))?, | ^^^^^^^^^^^^^^^^^^^^^^ function was supposed to return data with lifetime `'e` but it is returning data with lifetime `'f` | = help: consider adding the following bound: `'f: 'e` diff --git a/crates/try_v2_derive/tests/compilation/fail_lifetime_duration.rs b/crates/try_v2_derive/tests/compilation/fail_lifetime_duration.rs index d2d7431..d130627 100644 --- a/crates/try_v2_derive/tests/compilation/fail_lifetime_duration.rs +++ b/crates/try_v2_derive/tests/compilation/fail_lifetime_duration.rs @@ -1,3 +1,4 @@ +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] diff --git a/crates/try_v2_derive/tests/compilation/fail_lifetime_duration.stderr b/crates/try_v2_derive/tests/compilation/fail_lifetime_duration.stderr index dde307e..5ec23c4 100644 --- a/crates/try_v2_derive/tests/compilation/fail_lifetime_duration.stderr +++ b/crates/try_v2_derive/tests/compilation/fail_lifetime_duration.stderr @@ -1,25 +1,25 @@ error: lifetime may not live long enough - --> tests/compilation/fail_lifetime_duration.rs:40:17 + --> tests/compilation/fail_lifetime_duration.rs:41:17 | -30 | fn _unrestricted_t<'input, 't, 'e>( +31 | fn _unrestricted_t<'input, 't, 'e>( | ------ -- lifetime `'t` defined here | | | lifetime `'input` defined here ... -40 | ..=4 => pass(okval)?, +41 | ..=4 => pass(okval)?, | ^^^^^^^^^^^^ function was supposed to return data with lifetime `'t` but it is returning data with lifetime `'input` | = help: consider adding the following bound: `'input: 't` error: lifetime may not live long enough - --> tests/compilation/fail_lifetime_duration.rs:59:16 + --> tests/compilation/fail_lifetime_duration.rs:60:16 | -47 | fn _unrestricted_e<'input, 't, 'e>( +48 | fn _unrestricted_e<'input, 't, 'e>( | ------ -- lifetime `'e` defined here | | | lifetime `'input` defined here ... -59 | 6.. => fail_directly(errval)?, +60 | 6.. => fail_directly(errval)?, | ^^^^^^^^^^^^^^^^^^^^^^ function was supposed to return data with lifetime `'e` but it is returning data with lifetime `'input` | = help: consider adding the following bound: `'input: 'e` From 3fc51c00dd56ea95841a4fb85f6b0e841b1654a6 Mon Sep 17 00:00:00 2001 From: Mike Foster Date: Tue, 1 Sep 2026 09:47:08 +0000 Subject: [PATCH 3/4] update readme --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f50ce71..6f5ea38 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ See ([try_trait_v2](https://rust-lang.github.io/rfcs/3058-try-trait-v2.html)) fo ## Requires - nightly -- `#![feature(never_type)]` +- `#![feature(never_type)]` (stable from rust 1.100.0) - `#![feature(try_trait_v2)]` - `#![feature(try_trait_v2_residual)]` - optionally: `#![feature(iterator_try_collect)]` (if using Try_Iterator) @@ -30,6 +30,7 @@ See the [full documentation](https://docs.rs/try_v2/latest/try_v2/) for specific ## Example Usage ```rust +#![allow(stable_features)] #![feature(never_type)] #![feature(try_trait_v2)] #![feature(try_trait_v2_residual)] @@ -79,7 +80,7 @@ In order to use this crate you must enable the features which it exposes: > 🔬 **Required Experimental Features** > -> - [`#![feature(never_type)]`](https://github.com/rust-lang/rust/issues/35121) +> - [`#![feature(never_type)]`](https://github.com/rust-lang/rust/issues/35121) (stable from rust 1.100.0) > - [`#![feature(try_trait_v2)]`](https://github.com/rust-lang/rust/issues/84277) > - [`#![feature(try_trait_v2_residual)]`](https://github.com/rust-lang/rust/issues/91285) > - optionally: [`#![feature(iterator_try_collect)]`](https://github.com/rust-lang/rust/issues/94047) (if using `Try_Iterator`) From 85e0b2ba650d32acc2f40a5051d6d1a12e63fc74 Mon Sep 17 00:00:00 2001 From: Mike Foster Date: Tue, 1 Sep 2026 10:17:16 +0000 Subject: [PATCH 4/4] fix find-replace error. bring lib docs into line with readme --- crates/try_v2/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/try_v2/src/lib.rs b/crates/try_v2/src/lib.rs index 7fb76d4..8be63d6 100644 --- a/crates/try_v2/src/lib.rs +++ b/crates/try_v2/src/lib.rs @@ -8,7 +8,7 @@ //! ## Requires //! //! - nightly -//! - `#![cfg_attr(unstable_never_type, feature(never_type))]` +//! - `#![feature(never_type)]` (stable from rust 1.100.0) //! - `#![feature(try_trait_v2)]` //! - `#![feature(try_trait_v2_residual)]` //!