diff options
-rw-r--r-- | crates/hir_ty/src/display.rs | 1 | ||||
-rw-r--r-- | crates/ide/src/hover.rs | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs index 19770e609..64b68014d 100644 --- a/crates/hir_ty/src/display.rs +++ b/crates/hir_ty/src/display.rs | |||
@@ -511,6 +511,7 @@ fn write_bounds_like_dyn_trait( | |||
511 | GenericPredicate::Implemented(trait_ref) => { | 511 | GenericPredicate::Implemented(trait_ref) => { |
512 | if angle_open { | 512 | if angle_open { |
513 | write!(f, ">")?; | 513 | write!(f, ">")?; |
514 | angle_open = false; | ||
514 | } | 515 | } |
515 | if !first { | 516 | if !first { |
516 | write!(f, " + ")?; | 517 | write!(f, " + ")?; |
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs index 331aa4db0..300c00edc 100644 --- a/crates/ide/src/hover.rs +++ b/crates/ide/src/hover.rs | |||
@@ -767,6 +767,25 @@ fn main() { | |||
767 | } | 767 | } |
768 | 768 | ||
769 | #[test] | 769 | #[test] |
770 | fn hover_for_param_with_multiple_traits() { | ||
771 | check( | ||
772 | r#"trait Deref { | ||
773 | type Target: ?Sized; | ||
774 | } | ||
775 | trait DerefMut { | ||
776 | type Target: ?Sized; | ||
777 | } | ||
778 | fn f(_x<|>: impl Deref<Target=u8> + DerefMut<Target=u8>) {}"#, | ||
779 | expect![[r#" | ||
780 | *_x* | ||
781 | ```rust | ||
782 | impl Deref<Target = u8> + DerefMut<Target = u8> | ||
783 | ``` | ||
784 | "#]], | ||
785 | ) | ||
786 | } | ||
787 | |||
788 | #[test] | ||
770 | fn test_hover_infer_associated_method_result() { | 789 | fn test_hover_infer_associated_method_result() { |
771 | check( | 790 | check( |
772 | r#" | 791 | r#" |