| #![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 | |
| } |