diff options
| author | Scott McMurray <scottmcm@users.noreply.github.com> | 2021-05-09 22:05:02 -0700 |
|---|---|---|
| committer | Scott McMurray <scottmcm@users.noreply.github.com> | 2021-05-09 22:05:02 -0700 |
| commit | bf0e34c00159b60472ca2f78adb8837b9f5849a2 (patch) | |
| tree | b900d04d34f95499eced74055d52b77800c0e96f | |
| parent | b7a6c4a905e9e4b13785a6544434f6ffe859329c (diff) | |
| download | rust-bf0e34c00159b60472ca2f78adb8837b9f5849a2.tar.gz rust-bf0e34c00159b60472ca2f78adb8837b9f5849a2.zip | |
PR feedback
| -rw-r--r-- | library/alloc/src/lib.rs | 4 | ||||
| -rw-r--r-- | library/core/src/iter/traits/iterator.rs | 3 | ||||
| -rw-r--r-- | src/test/codegen/try_identity.rs | 8 | ||||
| -rw-r--r-- | src/test/mir-opt/simplify-arm.rs | 8 | ||||
| -rw-r--r-- | src/test/mir-opt/simplify_try.rs | 8 |
5 files changed, 16 insertions, 15 deletions
diff --git a/library/alloc/src/lib.rs b/library/alloc/src/lib.rs index a635d6ffe99..3bc376482e9 100644 --- a/library/alloc/src/lib.rs +++ b/library/alloc/src/lib.rs @@ -140,8 +140,8 @@ #![feature(maybe_uninit_extra, maybe_uninit_slice, maybe_uninit_uninit_array)] #![feature(alloc_layout_extra)] #![feature(trusted_random_access)] -#![feature(try_trait)] -#![feature(try_trait_v2)] +#![cfg_attr(bootstrap, feature(try_trait))] +#![cfg_attr(not(bootstrap), feature(try_trait_v2))] #![feature(min_type_alias_impl_trait)] #![feature(associated_type_bounds)] #![feature(slice_group_by)] diff --git a/library/core/src/iter/traits/iterator.rs b/library/core/src/iter/traits/iterator.rs index ffac4534b20..777e4bc2c89 100644 --- a/library/core/src/iter/traits/iterator.rs +++ b/library/core/src/iter/traits/iterator.rs @@ -2418,7 +2418,8 @@ pub trait Iterator { Self: Sized, F: FnMut(&Self::Item) -> R, R: Try<Output = bool>, - // FIXME: This is a weird bound; the API should change + // FIXME: This bound is rather strange, but means minimal breakage on nightly. + // See #85115 for the issue tracking a holistic solution for this and try_map. R: crate::ops::TryV2<Residual = Result<crate::convert::Infallible, E>>, { #[inline] diff --git a/src/test/codegen/try_identity.rs b/src/test/codegen/try_identity.rs index 78da06b2fe4..71bfc3b44da 100644 --- a/src/test/codegen/try_identity.rs +++ b/src/test/codegen/try_identity.rs @@ -7,10 +7,10 @@ type R = Result<u64, i32>; -// This was written to the `?` from `try_trait`, -// but `try_trait_v2` uses a different structure, -// so the relevant desugar is copied inline -// in order to keep the test testing the same thing. +// This was written to the `?` from `try_trait`, but `try_trait_v2` uses a different structure, +// so the relevant desugar is copied inline in order to keep the test testing the same thing. +// FIXME: while this might be useful for `r#try!`, it would be nice to have a MIR optimization +// that picks up the `?` desugaring, as `SimplifyArmIdentity` does not. See #85133 #[no_mangle] pub fn try_identity(x: R) -> R { // CHECK: start: diff --git a/src/test/mir-opt/simplify-arm.rs b/src/test/mir-opt/simplify-arm.rs index b789b87f6c2..6a6e39e68f9 100644 --- a/src/test/mir-opt/simplify-arm.rs +++ b/src/test/mir-opt/simplify-arm.rs @@ -28,10 +28,10 @@ fn from_error<T, E>(e: E) -> Result<T, E> { Err(e) } -// This was written to the `?` from `try_trait`, -// but `try_trait_v2` uses a different structure, -// so the relevant desugar is copied inline -// in order to keep the test testing the same thing. +// This was written to the `?` from `try_trait`, but `try_trait_v2` uses a different structure, +// so the relevant desugar is copied inline in order to keep the test testing the same thing. +// FIXME: while this might be useful for `r#try!`, it would be nice to have a MIR optimization +// that picks up the `?` desugaring, as `SimplifyArmIdentity` does not. See #85133 fn id_try(r: Result<u8, i32>) -> Result<u8, i32> { let x = match into_result(r) { Err(e) => return from_error(From::from(e)), diff --git a/src/test/mir-opt/simplify_try.rs b/src/test/mir-opt/simplify_try.rs index a95cb665a97..b91a7bfe68f 100644 --- a/src/test/mir-opt/simplify_try.rs +++ b/src/test/mir-opt/simplify_try.rs @@ -13,10 +13,10 @@ fn from_error<T, E>(e: E) -> Result<T, E> { Err(e) } -// This was written to the `?` from `try_trait`, -// but `try_trait_v2` uses a different structure, -// so the relevant desugar is copied inline -// in order to keep the test testing the same thing. +// This was written to the `?` from `try_trait`, but `try_trait_v2` uses a different structure, +// so the relevant desugar is copied inline in order to keep the test testing the same thing. +// FIXME: while this might be useful for `r#try!`, it would be nice to have a MIR optimization +// that picks up the `?` desugaring, as `SimplifyArmIdentity` does not. See #85133 fn try_identity(x: Result<u32, i32>) -> Result<u32, i32> { let y = match into_result(x) { Err(e) => return from_error(From::from(e)), |
