mirror of https://github.com/rust-lang/rust
27 lines
542 B
Rust
27 lines
542 B
Rust
#![feature(impl_trait_in_assoc_type)]
|
|
|
|
//@ revisions: ok bad
|
|
//@ [ok] check-pass
|
|
|
|
trait Foo {
|
|
type Assoc;
|
|
fn bar() -> Self::Assoc;
|
|
}
|
|
|
|
impl Foo for () {
|
|
type Assoc = impl Sized;
|
|
fn bar() -> Self::Assoc {
|
|
let closure = || -> Self::Assoc {
|
|
#[cfg(ok)]
|
|
let x: Self::Assoc = 42_i32;
|
|
#[cfg(bad)]
|
|
let x: Self::Assoc = ();
|
|
x
|
|
};
|
|
let _: i32 = closure(); //[bad]~ ERROR mismatched types
|
|
1i32 //[bad]~ ERROR mismatched types
|
|
}
|
|
}
|
|
|
|
fn main() {}
|