2019-01-25 18:35:35 +00:00
|
|
|
// Test for issue #57362, ensuring that the self ty is shown in cases of higher-ranked lifetimes
|
|
|
|
// conflicts: the `expected` and `found` trait refs would otherwise be printed the same, leading
|
|
|
|
// to confusing notes such as:
|
|
|
|
// = note: expected type `Trait`
|
|
|
|
// found type `Trait`
|
|
|
|
|
|
|
|
// extracted from a similar issue: #57642
|
|
|
|
trait X {
|
|
|
|
type G;
|
|
|
|
fn make_g() -> Self::G;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'a> X for fn(&'a ()) {
|
|
|
|
type G = &'a ();
|
|
|
|
|
|
|
|
fn make_g() -> Self::G {
|
|
|
|
&()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn g() {
|
2020-09-26 21:20:14 +00:00
|
|
|
let x = <fn (&())>::make_g(); //~ ERROR the function
|
2019-01-25 18:35:35 +00:00
|
|
|
}
|
|
|
|
|
2019-01-25 19:53:59 +00:00
|
|
|
fn main() {}
|