5752: display correctly 'impl Trait<T> + Trait<T>' #4814 r=flodiebold a=bnjjj

close #4814 

Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
This commit is contained in:
bors[bot] 2020-08-13 20:28:11 +00:00 committed by GitHub
commit e5b17b6ad4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View file

@ -511,6 +511,7 @@ fn write_bounds_like_dyn_trait(
GenericPredicate::Implemented(trait_ref) => {
if angle_open {
write!(f, ">")?;
angle_open = false;
}
if !first {
write!(f, " + ")?;

View file

@ -766,6 +766,25 @@ fn main() {
)
}
#[test]
fn hover_for_param_with_multiple_traits() {
check(
r#"trait Deref {
type Target: ?Sized;
}
trait DerefMut {
type Target: ?Sized;
}
fn f(_x<|>: impl Deref<Target=u8> + DerefMut<Target=u8>) {}"#,
expect![[r#"
*_x*
```rust
impl Deref<Target = u8> + DerefMut<Target = u8>
```
"#]],
)
}
#[test]
fn test_hover_infer_associated_method_result() {
check(