mirror of https://github.com/rust-lang/rust
31 lines
511 B
Rust
31 lines
511 B
Rust
#![feature(impl_trait_in_assoc_type)]
|
|
//@ build-pass (FIXME(62277): could be check-pass?)
|
|
|
|
trait Bar {}
|
|
struct Dummy<U>(U);
|
|
impl<V> Bar for Dummy<V> {}
|
|
|
|
trait Foo<T> {
|
|
type Assoc: Bar;
|
|
fn foo(t: T) -> Self::Assoc;
|
|
}
|
|
|
|
impl<W> Foo<W> for i32 {
|
|
type Assoc = impl Bar;
|
|
fn foo(w: W) -> Self::Assoc {
|
|
Dummy(w)
|
|
}
|
|
}
|
|
|
|
struct NonGeneric;
|
|
impl Bar for NonGeneric {}
|
|
|
|
impl<W> Foo<W> for u32 {
|
|
type Assoc = impl Bar;
|
|
fn foo(_: W) -> Self::Assoc {
|
|
NonGeneric
|
|
}
|
|
}
|
|
|
|
fn main() {}
|