about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2022-10-10 10:23:06 +0900
committerGitHub <noreply@github.com>2022-10-10 10:23:06 +0900
commit6d35efe03a037c517d7d1dbc94f3af6366d9cf64 (patch)
tree4beae214ba5c2a737e70145743138656cae3b870
parente435a051dd9c0f3d0334fb261c48af9fae0021f2 (diff)
parent0718aeceb3b739e467381d1b95a3748ed9ec6bc2 (diff)
downloadrust-6d35efe03a037c517d7d1dbc94f3af6366d9cf64.tar.gz
rust-6d35efe03a037c517d7d1dbc94f3af6366d9cf64.zip
Rollup merge of #102862 - scottmcm:more-alignment-traits, r=thomcc
From<Alignment> for usize & NonZeroUsize

Since you mentioned these two in https://github.com/rust-lang/rust/pull/102072#issuecomment-1272390033,
r? ``@thomcc``

Tracking Issue: https://github.com/rust-lang/rust/issues/102070
-rw-r--r--library/core/src/ptr/alignment.rs16
-rw-r--r--src/test/ui/try-trait/bad-interconversion.stderr2
2 files changed, 17 insertions, 1 deletions
diff --git a/library/core/src/ptr/alignment.rs b/library/core/src/ptr/alignment.rs
index bdebf8baabe..56c5e6cb724 100644
--- a/library/core/src/ptr/alignment.rs
+++ b/library/core/src/ptr/alignment.rs
@@ -147,6 +147,22 @@ impl TryFrom<usize> for Alignment {
 }
 
 #[unstable(feature = "ptr_alignment_type", issue = "102070")]
+impl From<Alignment> for NonZeroUsize {
+    #[inline]
+    fn from(align: Alignment) -> NonZeroUsize {
+        align.as_nonzero()
+    }
+}
+
+#[unstable(feature = "ptr_alignment_type", issue = "102070")]
+impl From<Alignment> for usize {
+    #[inline]
+    fn from(align: Alignment) -> usize {
+        align.as_usize()
+    }
+}
+
+#[unstable(feature = "ptr_alignment_type", issue = "102070")]
 impl cmp::Ord for Alignment {
     #[inline]
     fn cmp(&self, other: &Self) -> cmp::Ordering {
diff --git a/src/test/ui/try-trait/bad-interconversion.stderr b/src/test/ui/try-trait/bad-interconversion.stderr
index 27e6a603acd..419a86bf33b 100644
--- a/src/test/ui/try-trait/bad-interconversion.stderr
+++ b/src/test/ui/try-trait/bad-interconversion.stderr
@@ -16,7 +16,7 @@ LL |     Ok(Err(123_i32)?)
              <f64 as From<i16>>
              <f64 as From<i32>>
              <f64 as From<i8>>
-           and 67 others
+           and 68 others
    = note: required for `Result<u64, u8>` to implement `FromResidual<Result<Infallible, i32>>`
 
 error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`