rust/tests/ui/const-generics/const-argument-if-length.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

23 lines
553 B
Rust
Raw Normal View History

2020-10-03 11:00:18 -05:00
// revisions: full min
#![cfg_attr(full, feature(generic_const_exprs))]
2020-10-03 11:00:18 -05:00
#![cfg_attr(full, allow(incomplete_features))]
pub const fn is_zst<T: ?Sized>() -> usize {
if std::mem::size_of::<T>() == 0 {
1
} else {
0
}
}
pub struct AtLeastByte<T: ?Sized> {
value: T,
//~^ ERROR the size for values of type `T` cannot be known at compilation time
pad: [u8; is_zst::<T>()],
2020-10-12 16:27:59 -05:00
//[min]~^ ERROR generic parameters may not be used in const operations
//[full]~^^ ERROR unconstrained generic constant
}
fn main() {}