about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2021-11-22 18:27:03 +0100
committerLukas Wirth <lukastw97@gmail.com>2021-11-22 18:27:03 +0100
commitec07bb98f8a7833cd5120c29cd35a8f2652d7498 (patch)
tree75118fe4d6fd4561f7df551a6c071ba0eb87f2b8
parenta07e406d06978c6f5efc9ba80fac27e4a786e4e0 (diff)
downloadrust-ec07bb98f8a7833cd5120c29cd35a8f2652d7498.tar.gz
rust-ec07bb98f8a7833cd5120c29cd35a8f2652d7498.zip
fix: Omit generic defaults for types in hover messages
-rw-r--r--crates/hir_ty/src/display.rs2
-rw-r--r--crates/ide/src/hover/render.rs2
-rw-r--r--crates/ide/src/hover/tests.rs14
-rw-r--r--crates/ide/src/inlay_hints.rs4
4 files changed, 17 insertions, 5 deletions
diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs
index e2424dd6d9e..e2b4e925752 100644
--- a/crates/hir_ty/src/display.rs
+++ b/crates/hir_ty/src/display.rs
@@ -639,7 +639,7 @@ impl HirDisplay for Ty {
                 if let Some(sig) = sig {
                     if sig.params().is_empty() {
                         write!(f, "||")?;
-                    } else if f.omit_verbose_types() {
+                    } else if f.should_truncate() {
                         write!(f, "|{}|", TYPE_HINT_TRUNCATION)?;
                     } else {
                         write!(f, "|")?;
diff --git a/crates/ide/src/hover/render.rs b/crates/ide/src/hover/render.rs
index e872d9b1fb2..dd4a961d31c 100644
--- a/crates/ide/src/hover/render.rs
+++ b/crates/ide/src/hover/render.rs
@@ -444,7 +444,7 @@ fn find_std_module(famous_defs: &FamousDefs, name: &str) -> Option<hir::Module>
 
 fn local(db: &RootDatabase, it: hir::Local) -> Option<Markup> {
     let ty = it.ty(db);
-    let ty = ty.display(db);
+    let ty = ty.display_truncated(db, None);
     let is_mut = if it.is_mut(db) { "mut " } else { "" };
     let desc = match it.source(db).value {
         Either::Left(ident) => {
diff --git a/crates/ide/src/hover/tests.rs b/crates/ide/src/hover/tests.rs
index c745f86d84e..5718b9097c4 100644
--- a/crates/ide/src/hover/tests.rs
+++ b/crates/ide/src/hover/tests.rs
@@ -607,10 +607,22 @@ fn main() {
                 *zz*
 
                 ```rust
-                let zz: Test<i32, u8>
+                let zz: Test<i32>
                 ```
             "#]],
     );
+    check_hover_range(
+        r#"
+struct Test<K, T = u8> { k: K, t: T }
+
+fn main() {
+    let $0zz$0 = Test { t: 23u8, k: 33 };
+}"#,
+        expect![[r#"
+            ```rust
+            Test<i32, u8>
+            ```"#]],
+    );
 }
 
 #[test]
diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs
index 94af017d64b..985d3a4ecca 100644
--- a/crates/ide/src/inlay_hints.rs
+++ b/crates/ide/src/inlay_hints.rs
@@ -1443,14 +1443,14 @@ fn main() {
                    //^^^^^^^^^ i32
 
     let multiply =
-      //^^^^^^^^ |…| -> i32
+      //^^^^^^^^ |i32, i32| -> i32
       | a,     b| a * b
       //^ i32  ^ i32
     ;
 
     let _: i32 = multiply(1, 2);
     let multiply_ref = &multiply;
-      //^^^^^^^^^^^^ &|…| -> i32
+      //^^^^^^^^^^^^ &|i32, i32| -> i32
 
     let return_42 = || 42;
       //^^^^^^^^^ || -> i32