2021-08-18 15:15:33 -05:00
|
|
|
// revisions: cfail
|
2021-08-30 03:59:53 -05:00
|
|
|
#![feature(generic_const_exprs, adt_const_params)]
|
2021-08-18 15:15:33 -05:00
|
|
|
#![allow(incomplete_features)]
|
2023-05-16 23:05:46 -05:00
|
|
|
|
|
|
|
use std::marker::ConstParamTy;
|
|
|
|
|
|
|
|
#[derive(PartialEq, Eq, ConstParamTy)]
|
|
|
|
struct NonZeroUsize(usize);
|
|
|
|
|
|
|
|
impl NonZeroUsize {
|
|
|
|
const fn get(self) -> usize {
|
|
|
|
self.0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-08-18 15:15:33 -05:00
|
|
|
// regression test for #77650
|
2023-05-16 23:05:46 -05:00
|
|
|
fn c<T, const N: NonZeroUsize>()
|
2021-08-18 15:15:33 -05:00
|
|
|
where
|
|
|
|
[T; N.get()]: Sized,
|
|
|
|
{
|
|
|
|
use std::convert::TryFrom;
|
|
|
|
<[T; N.get()]>::try_from(())
|
|
|
|
//~^ error: the trait bound
|
2022-08-24 13:36:44 -05:00
|
|
|
//~| error: the trait bound
|
2021-08-27 17:34:48 -05:00
|
|
|
//~| error: mismatched types
|
2021-08-18 15:15:33 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|