| //@ 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 }>) {} | |
| } |