//@ revisions: cfail | |
#![feature(generic_const_exprs, adt_const_params)] | |
#![allow(incomplete_features)] | |
use std::marker::ConstParamTy; | |
#[derive(PartialEq, Eq, ConstParamTy)] | |
struct NonZeroUsize(usize); | |
impl NonZeroUsize { | |
const fn get(self) -> usize { | |
self.0 | |
} | |
} | |
// regression test for #77650 | |
fn c<T, const N: NonZeroUsize>() | |
where | |
[T; N.get()]: Sized, | |
{ | |
use std::convert::TryFrom; | |
<[T; N.get()]>::try_from(()) | |
//~^ error: the trait bound | |
//~| error: the trait bound | |
//~| error: mismatched types | |
} | |
fn main() {} |