]> git.lizzy.rs Git - rust.git/commitdiff
fix: Show parameter hints unconditionally for logical not expressions
authorLukas Wirth <lukastw97@gmail.com>
Sat, 27 Nov 2021 18:12:47 +0000 (19:12 +0100)
committerLukas Wirth <lukastw97@gmail.com>
Sat, 27 Nov 2021 18:14:36 +0000 (19:14 +0100)
crates/ide/src/inlay_hints.rs

index 985d3a4eccacf75eafaa114a068d619c9d538733..b479a20beb0885a614ca3eff443ab9b07325e947 100644 (file)
@@ -1,11 +1,10 @@
 use either::Either;
 use hir::{known, Callable, HasVisibility, HirDisplay, Semantics, TypeInfo};
-use ide_db::RootDatabase;
-use ide_db::{base_db::FileRange, helpers::FamousDefs};
+use ide_db::{base_db::FileRange, helpers::FamousDefs, RootDatabase};
 use itertools::Itertools;
 use stdx::to_lower_snake_case;
 use syntax::{
-    ast::{self, AstNode, HasArgList, HasName},
+    ast::{self, AstNode, HasArgList, HasName, UnaryOp},
     match_ast, Direction, NodeOrToken, SmolStr, SyntaxKind, TextRange, T,
 };
 
@@ -421,6 +420,10 @@ fn should_hide_param_name_hint(
         return true;
     }
 
+    if matches!(argument, ast::Expr::PrefixExpr(prefix) if prefix.op_kind() == Some(UnaryOp::Not)) {
+        return false;
+    }
+
     let fn_name = match callable.kind() {
         hir::CallableKind::Function(it) => Some(it.name(sema.db).to_smol_str()),
         _ => None,
@@ -868,7 +871,8 @@ fn non_ident_pat((a, b): (u32, u32)) {}
 fn main() {
     const PARAM: u32 = 0;
     foo(PARAM);
-
+    foo(!PARAM);
+     // ^^^^^^ param
     check("");
 
     map(0);