diff options
| author | Lukas Wirth <lukastw97@gmail.com> | 2022-12-22 10:35:35 +0100 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2022-12-22 10:35:35 +0100 |
| commit | b9341e2fe66b71bdf21662fdbb6c26d35496af5f (patch) | |
| tree | 99cd0a5ebb70fdc67c8abb10621844db560522e4 | |
| parent | 271f7b44d3d71db2ec2d0cd1a8a59aa16f902d49 (diff) | |
| download | rust-b9341e2fe66b71bdf21662fdbb6c26d35496af5f.tar.gz rust-b9341e2fe66b71bdf21662fdbb6c26d35496af5f.zip | |
Fix binding mode hints always adding parentheses to or-patterns
| -rw-r--r-- | crates/ide/src/inlay_hints/binding_mode.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/crates/ide/src/inlay_hints/binding_mode.rs b/crates/ide/src/inlay_hints/binding_mode.rs index 846f0a4e0c1..b10dbba6ee7 100644 --- a/crates/ide/src/inlay_hints/binding_mode.rs +++ b/crates/ide/src/inlay_hints/binding_mode.rs @@ -31,7 +31,8 @@ pub(super) fn hints( .last(); let range = outer_paren_pat.as_ref().map_or_else(|| pat.syntax(), |it| it.syntax()).text_range(); - sema.pattern_adjustments(&pat).iter().for_each(|ty| { + let pattern_adjustments = sema.pattern_adjustments(&pat); + pattern_adjustments.iter().for_each(|ty| { let reference = ty.is_reference(); let mut_reference = ty.is_mutable_reference(); let r = match (reference, mut_reference) { @@ -61,7 +62,7 @@ pub(super) fn hints( tooltip: Some(InlayTooltip::String("Inferred binding mode".into())), }); } - ast::Pat::OrPat(pat) if outer_paren_pat.is_none() => { + ast::Pat::OrPat(pat) if !pattern_adjustments.is_empty() && outer_paren_pat.is_none() => { acc.push(InlayHint { range: pat.syntax().text_range(), kind: InlayKind::OpeningParenthesis, |
