]> git.lizzy.rs Git - rust.git/commitdiff
Fix binding mode hints always adding parentheses to or-patterns
authorLukas Wirth <lukastw97@gmail.com>
Thu, 22 Dec 2022 09:35:35 +0000 (10:35 +0100)
committerLukas Wirth <lukastw97@gmail.com>
Thu, 22 Dec 2022 09:35:35 +0000 (10:35 +0100)
crates/ide/src/inlay_hints/binding_mode.rs

index 846f0a4e0c16d0c794a1d8fc7915a86edd0dbb71..b10dbba6ee708d311685d7953c364b17bb5e480b 100644 (file)
@@ -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,