Add rustdoc tests for generic const items
This commit is contained in:
parent
55aba32ac5
commit
203d400668
38
tests/rustdoc/generic-const-items.rs
Normal file
38
tests/rustdoc/generic-const-items.rs
Normal file
@ -0,0 +1,38 @@
|
||||
#![feature(generic_const_items)]
|
||||
#![allow(incomplete_features)]
|
||||
|
||||
// @has 'generic_const_items/constant.K.html'
|
||||
// @has - '//*[@class="rust item-decl"]//code' \
|
||||
// "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>;
|
||||
|
||||
// @has generic_const_items/trait.Trait.html
|
||||
pub trait Trait<T: ?Sized> {
|
||||
// @has - '//*[@id="associatedconstant.C"]' \
|
||||
// "const C<'a>: &'a T \
|
||||
// where \
|
||||
// T: 'a + Eq"
|
||||
const C<'a>: &'a T
|
||||
where
|
||||
T: 'a + Eq;
|
||||
}
|
||||
|
||||
pub struct Implementor;
|
||||
|
||||
// @has generic_const_items/struct.Implementor.html
|
||||
// @has - '//h3[@class="code-header"]' 'impl Trait<str> for Implementor'
|
||||
impl Trait<str> for Implementor {
|
||||
// @has - '//*[@id="associatedconstant.C"]' \
|
||||
// "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;
|
||||
}
|
22
tests/rustdoc/inline_cross/auxiliary/generic-const-items.rs
Normal file
22
tests/rustdoc/inline_cross/auxiliary/generic-const-items.rs
Normal file
@ -0,0 +1,22 @@
|
||||
#![feature(generic_const_items)]
|
||||
#![allow(incomplete_features)]
|
||||
|
||||
pub const K<'a, T: 'a + Copy, const N: usize>: Option<[T; N]> = None
|
||||
where
|
||||
String: From<T>;
|
||||
|
||||
pub trait Trait<T: ?Sized> {
|
||||
const C<'a>: &'a T
|
||||
where
|
||||
T: 'a + Eq;
|
||||
}
|
||||
|
||||
pub struct Implementor;
|
||||
|
||||
impl Trait<str> for Implementor {
|
||||
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;
|
||||
}
|
26
tests/rustdoc/inline_cross/generic-const-items.rs
Normal file
26
tests/rustdoc/inline_cross/generic-const-items.rs
Normal file
@ -0,0 +1,26 @@
|
||||
#![crate_name = "user"]
|
||||
|
||||
// aux-crate:generic_const_items=generic-const-items.rs
|
||||
// edition:2021
|
||||
|
||||
// @has 'user/constant.K.html'
|
||||
// @has - '//*[@class="rust item-decl"]//code' \
|
||||
// "pub const K<'a, T: 'a + Copy, const N: usize>: Option<[T; N]> \
|
||||
// where \
|
||||
// String: From<T>;"
|
||||
pub use generic_const_items::K;
|
||||
|
||||
// @has user/trait.Trait.html
|
||||
// @has - '//*[@id="associatedconstant.C"]' \
|
||||
// "const C<'a>: &'a T \
|
||||
// where \
|
||||
// T: 'a + Eq"
|
||||
pub use generic_const_items::Trait;
|
||||
|
||||
// @has user/struct.Implementor.html
|
||||
// @has - '//h3[@class="code-header"]' 'impl Trait<str> for Implementor'
|
||||
// @has - '//*[@id="associatedconstant.C"]' \
|
||||
// "const C<'a>: &'a str = \"C\" \
|
||||
// where \
|
||||
// str: 'a"
|
||||
pub use generic_const_items::Implementor;
|
Loading…
Reference in New Issue
Block a user