| //@ compile-flags: --document-private-items --document-hidden-items | |
| // This is a regression test for #98009. | |
| //@ has "$.index[?(@.name=='this_compiles')]" | |
| //@ has "$.index[?(@.name=='this_does_not')]" | |
| //@ has "$.index[?(@.name=='Events')]" | |
| //@ has "$.index[?(@.name=='Other')]" | |
| //@ has "$.index[?(@.name=='Trait')]" | |
| struct Events<R>(R); | |
| struct Other; | |
| pub trait Trait<T> { | |
| fn handle(value: T) -> Self; | |
| } | |
| impl<T, U> Trait<U> for T | |
| where | |
| T: From<U>, | |
| { | |
| fn handle(_: U) -> Self { | |
| unimplemented!() | |
| } | |
| } | |
| impl<'a, R> Trait<&'a mut Events<R>> for Other { | |
| fn handle(_: &'a mut Events<R>) -> Self { | |
| unimplemented!() | |
| } | |
| } | |
| fn this_compiles<'a, R>(value: &'a mut Events<R>) { | |
| for _ in 0..3 { | |
| Other::handle(&mut *value); | |
| } | |
| } | |
| fn this_does_not<'a, R>(value: &'a mut Events<R>) { | |
| for _ in 0..3 { | |
| Other::handle(value); | |
| } | |
| } |