about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-12-22 23:02:19 +0000
committerbors <bors@rust-lang.org>2022-12-22 23:02:19 +0000
commita06525517b0b69cd97f2c39a4012d96f44bf0776 (patch)
tree479e8c72db0953b110327556a8d407ee96629ee9
parentb48a1ae004b4116377b80c98407c0164c4492d5f (diff)
parentb9341e2fe66b71bdf21662fdbb6c26d35496af5f (diff)
downloadrust-a06525517b0b69cd97f2c39a4012d96f44bf0776.tar.gz
rust-a06525517b0b69cd97f2c39a4012d96f44bf0776.zip
Auto merge of #13820 - Veykril:or-pat-bm-fix, r=Veykril
Fix binding mode hints always adding parentheses to or-patterns
-rw-r--r--crates/ide/src/inlay_hints/binding_mode.rs5
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,