diff options
| -rw-r--r-- | crates/hir_ty/src/display.rs | 6 | ||||
| -rw-r--r-- | crates/hir_ty/src/tests/traits.rs | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs index 637bbc634d5..44f843bf383 100644 --- a/crates/hir_ty/src/display.rs +++ b/crates/hir_ty/src/display.rs @@ -778,8 +778,10 @@ fn write_bounds_like_dyn_trait( } WhereClause::AliasEq(alias_eq) if is_fn_trait => { is_fn_trait = false; - write!(f, " -> ")?; - alias_eq.ty.hir_fmt(f)?; + if !alias_eq.ty.is_unit() { + write!(f, " -> ")?; + alias_eq.ty.hir_fmt(f)?; + } } WhereClause::AliasEq(AliasEq { ty, alias }) => { // in types in actual Rust, these will always come diff --git a/crates/hir_ty/src/tests/traits.rs b/crates/hir_ty/src/tests/traits.rs index 714f1293782..eea98fd4ff1 100644 --- a/crates/hir_ty/src/tests/traits.rs +++ b/crates/hir_ty/src/tests/traits.rs @@ -3095,16 +3095,16 @@ fn foo() { 478..576 '{ ...&s); }': () 488..489 's': Option<i32> 492..504 'Option::None': Option<i32> - 514..515 'f': Box<dyn FnOnce(&Option<i32>) -> ()> + 514..515 'f': Box<dyn FnOnce(&Option<i32>)> 549..562 'box (|ps| {})': Box<|{unknown}| -> ()> 554..561 '|ps| {}': |{unknown}| -> () 555..557 'ps': {unknown} 559..561 '{}': () - 568..569 'f': Box<dyn FnOnce(&Option<i32>) -> ()> + 568..569 'f': Box<dyn FnOnce(&Option<i32>)> 568..573 'f(&s)': () 570..572 '&s': &Option<i32> 571..572 's': Option<i32> - 549..562: expected Box<dyn FnOnce(&Option<i32>) -> ()>, got Box<|{unknown}| -> ()> + 549..562: expected Box<dyn FnOnce(&Option<i32>)>, got Box<|{unknown}| -> ()> "#]], ); } |
