2023-07-09 20:10:24 -05:00
|
|
|
#![feature(generic_const_items)]
|
|
|
|
#![allow(incomplete_features)]
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'generic_const_items/constant.K.html'
|
|
|
|
//@ has - '//*[@class="rust item-decl"]//code' \
|
2023-07-09 20:10:24 -05:00
|
|
|
// "pub const K<'a, T: 'a + Copy, const N: usize>: Option<[T; N]> \
|
|
|
|
// where \
|
|
|
|
// String: From<T>;"
|
|
|
|
pub const K<'a, T: 'a + Copy, const N: usize>: Option<[T; N]> = None
|
|
|
|
where
|
|
|
|
String: From<T>;
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has generic_const_items/trait.Trait.html
|
2023-07-09 20:10:24 -05:00
|
|
|
pub trait Trait<T: ?Sized> {
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has - '//*[@id="associatedconstant.C"]' \
|
2023-07-09 20:10:24 -05:00
|
|
|
// "const C<'a>: &'a T \
|
|
|
|
// where \
|
|
|
|
// T: 'a + Eq"
|
|
|
|
const C<'a>: &'a T
|
|
|
|
where
|
|
|
|
T: 'a + Eq;
|
|
|
|
}
|
|
|
|
|
|
|
|
pub struct Implementor;
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has generic_const_items/struct.Implementor.html
|
|
|
|
//@ has - '//h3[@class="code-header"]' 'impl Trait<str> for Implementor'
|
2023-07-09 20:10:24 -05:00
|
|
|
impl Trait<str> for Implementor {
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has - '//*[@id="associatedconstant.C"]' \
|
2023-07-09 20:10:24 -05:00
|
|
|
// "const C<'a>: &'a str = \"C\" \
|
|
|
|
// where \
|
|
|
|
// str: 'a"
|
|
|
|
const C<'a>: &'a str = "C"
|
|
|
|
// In real code we could've left off this bound but adding it explicitly allows us to test if
|
|
|
|
// we render where-clauses on associated consts inside impl blocks correctly.
|
|
|
|
where
|
|
|
|
str: 'a;
|
|
|
|
}
|