23 lines
490 B
Rust
23 lines
490 B
Rust
|
//@ known-bug: #117496
|
||
|
#![feature(adt_const_params)]
|
||
|
#![feature(generic_const_exprs)]
|
||
|
|
||
|
use core::marker::ConstParamTy;
|
||
|
|
||
|
#[derive(PartialEq, Copy, Clone, Eq, ConstParamTy)]
|
||
|
pub enum Foo {}
|
||
|
impl Foo {
|
||
|
pub const fn size(self) -> usize {
|
||
|
1
|
||
|
}
|
||
|
}
|
||
|
|
||
|
pub struct Bar<const F: Foo, const SIZE: usize = { F.size() }>([u64; SIZE])
|
||
|
where
|
||
|
[u64; SIZE]: Sized;
|
||
|
|
||
|
pub struct Quux<const F: Foo> {}
|
||
|
impl<const F: Foo> Quux<{ F }> {
|
||
|
pub unsafe fn nothing(&self, bar: &mut Bar<{ F }>) {}
|
||
|
}
|