about summary refs log tree commit diff
path: root/tests/crashes/117496.rs
blob: 1e85646cf83130de371463fcef7692f67c255a87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//@ 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 }>) {}
}