2023-03-14 17:23:16 -05:00
|
|
|
// [next] compile-flags: -Zlower-impl-trait-in-trait-to-assoc-ty
|
|
|
|
// revisions: current next
|
|
|
|
|
2022-10-02 15:25:48 -05:00
|
|
|
#![feature(return_position_impl_trait_in_trait)]
|
|
|
|
#![allow(incomplete_features)]
|
|
|
|
|
|
|
|
use std::fmt::Display;
|
|
|
|
use std::ops::Deref;
|
|
|
|
|
|
|
|
trait Foo {
|
|
|
|
fn bar(self) -> impl Deref<Target = impl Display + ?Sized>;
|
|
|
|
}
|
|
|
|
|
|
|
|
struct A;
|
|
|
|
|
|
|
|
impl Foo for A {
|
|
|
|
fn bar(self) -> &'static str {
|
|
|
|
"Hello, world"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn foo<T: Foo>(t: T) {
|
|
|
|
let () = t.bar();
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|