//@ compile-flags: -Znext-solver | |
//@ check-pass | |
#![feature(const_trait_impl)] | |
#[const_trait] trait Foo { | |
type Assoc<T>: ~const Bar | |
where | |
T: ~const Bar; | |
} | |
#[const_trait] trait Bar {} | |
struct N<T>(T); | |
impl<T> Bar for N<T> where T: Bar {} | |
struct C<T>(T); | |
impl<T> const Bar for C<T> where T: ~const Bar {} | |
impl Foo for u32 { | |
type Assoc<T> = N<T> | |
where | |
T: Bar; | |
} | |
impl const Foo for i32 { | |
type Assoc<T> = C<T> | |
where | |
T: ~const Bar; | |
} | |
fn main() {} |