rust/tests/ui/const-generics/generic_const_exprs/eval-privacy.rs

29 lines
559 B
Rust

#![crate_type = "lib"]
#![feature(generic_const_exprs)]
#![allow(incomplete_features)]
pub struct Const<const U: u8>;
pub trait Trait {
type AssocTy;
fn assoc_fn() -> Self::AssocTy;
}
impl<const U: u8> Trait for Const<U>
where
// OK, trait impl predicates
Const<{ my_const_fn(U) }>:,
{
type AssocTy = Const<{ my_const_fn(U) }>;
//~^ ERROR private type
//~| ERROR private type
fn assoc_fn() -> Self::AssocTy {
Const
}
}
const fn my_const_fn(val: u8) -> u8 {
// body of this function doesn't matter
val
}