rust/src/test/ui/const-generics/array-impls/core-traits-impls-length-32.rs
Scott McMurray d6a9793722 Use const generics for array impls, restricted to 0..=32
- uses a never-stable core::array::LengthAtMost32 to bound the impls
- includes a custom error message to avoid mentioning LengthAtMost32 too often
- doesn't use macros for the slice implementations to avoid #62433
2019-07-07 11:31:38 -07:00

66 lines
1.1 KiB
Rust

// check-pass
pub fn yes_as_ref() -> impl AsRef<[u8]> {
[0; 32]
}
pub fn yes_as_mut() -> impl AsMut<[u8]> {
[0; 32]
}
pub fn yes_borrow() -> impl std::borrow::Borrow<[u8]> {
[0; 32]
}
pub fn yes_borrow_mut() -> impl std::borrow::BorrowMut<[u8]> {
[0; 32]
}
pub fn yes_try_from_slice() -> impl std::convert::TryFrom<&'static [u8]> {
[0; 32]
}
pub fn yes_ref_try_from_slice() -> impl std::convert::TryFrom<&'static [u8]> {
let a: &'static _ = &[0; 32];
a
}
pub fn yes_hash() -> impl std::hash::Hash {
[0; 32]
}
pub fn yes_debug() -> impl std::fmt::Debug {
[0; 32]
}
pub fn yes_ref_into_iterator() -> impl IntoIterator<Item=&'static u8> {
let a: &'static _ = &[0; 32];
a
}
pub fn yes_partial_eq() -> impl PartialEq<[u8; 32]> {
[0; 32]
}
pub fn yes_partial_eq_slice() -> impl PartialEq<[u8]> {
[0; 32]
}
pub fn yes_slice_partial_eq() -> impl PartialEq<[u8; 32]> {
let a: &'static _ = &[0; 32];
&a[..]
}
pub fn yes_eq() -> impl Eq {
[0; 32]
}
pub fn yes_partial_ord() -> impl PartialOrd<[u8; 32]> {
[0; 32]
}
pub fn yes_ord() -> impl Ord {
[0; 32]
}
fn main() {}