Skip to content

Commit

Permalink
fix: Don't show duplicated adjustment hints for blocks, ifs and matches
Browse files Browse the repository at this point in the history
  • Loading branch information
WaffleLapkin committed Dec 9, 2022
1 parent 34e654c commit 7c9a85b
Showing 1 changed file with 35 additions and 2 deletions.
37 changes: 35 additions & 2 deletions crates/ide/src/inlay_hints.rs
Expand Up @@ -638,8 +638,12 @@ fn adjustment_hints(
return None;
}

if let ast::Expr::ParenExpr(_) = expr {
// These inherit from the inner expression which would result in duplicate hints
// These inherit from the inner expression which would result in duplicate hints
if let ast::Expr::ParenExpr(_)
| ast::Expr::IfExpr(_)
| ast::Expr::BlockExpr(_)
| ast::Expr::MatchExpr(_) = expr
{
return None;
}

Expand Down Expand Up @@ -3083,6 +3087,33 @@ fn main() {
//^^^^^^^^^^^&
//^^^^^^^^^^^*
(&mut Struct).by_ref_mut();
// Check that block-like expressions don't duplicate hints
let _: &mut [u32] = (&mut []);
//^^^^^^^<unsize>
//^^^^^^^&mut $
//^^^^^^^*
let _: &mut [u32] = { &mut [] };
//^^^^^^^<unsize>
//^^^^^^^&mut $
//^^^^^^^*
let _: &mut [u32] = unsafe { &mut [] };
//^^^^^^^<unsize>
//^^^^^^^&mut $
//^^^^^^^*
let _: &mut [u32] = if true {
&mut []
//^^^^^^^<unsize>
//^^^^^^^&mut $
//^^^^^^^*
} else {
loop {}
//^^^^^^^<never-to-any>
};
let _: &mut [u32] = match () { () => &mut [] }
//^^^^^^^<unsize>
//^^^^^^^&mut $
//^^^^^^^*
}
#[derive(Copy, Clone)]
Expand All @@ -3092,6 +3123,8 @@ impl Struct {
fn by_ref(&self) {}
fn by_ref_mut(&mut self) {}
}
trait Trait {}
impl Trait for Struct {}
"#,
)
}
Expand Down

0 comments on commit 7c9a85b

Please sign in to comment.