Skip to content

Commit 550c629

Browse files
committed
do not truncate display for hover
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
1 parent c4d128e commit 550c629

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

crates/ra_ide/src/hover.rs

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ fn hover_text_from_name_kind(db: &RootDatabase, def: Definition) -> Option<Strin
143143
ModuleDef::TypeAlias(it) => from_def_source(db, it, mod_path),
144144
ModuleDef::BuiltinType(it) => Some(it.to_string()),
145145
},
146-
Definition::Local(it) => Some(rust_code_markup(&it.ty(db).display_truncated(db, None))),
146+
Definition::Local(it) => Some(rust_code_markup(&it.ty(db).display(db))),
147147
Definition::TypeParam(_) | Definition::SelfType(_) => {
148148
// FIXME: Hover for generic param
149149
None
@@ -279,6 +279,47 @@ mod tests {
279279
assert_eq!(trim_markup_opt(hover.info.first()), Some("u32"));
280280
}
281281

282+
#[test]
283+
fn hover_shows_long_type_of_an_expression() {
284+
check_hover_result(
285+
r#"
286+
//- /main.rs
287+
struct Scan<A, B, C> {
288+
a: A,
289+
b: B,
290+
c: C,
291+
}
292+
293+
struct FakeIter<I> {
294+
inner: I,
295+
}
296+
297+
struct OtherStruct<T> {
298+
i: T,
299+
}
300+
301+
enum FakeOption<T> {
302+
Some(T),
303+
None,
304+
}
305+
306+
fn scan<A, B, C>(a: A, b: B, c: C) -> FakeIter<Scan<OtherStruct<A>, B, C>> {
307+
FakeIter { inner: Scan { a, b, c } }
308+
}
309+
310+
fn main() {
311+
let num: i32 = 55;
312+
let closure = |memo: &mut u32, value: &u32, _another: &mut u32| -> FakeOption<u32> {
313+
FakeOption::Some(*memo + value)
314+
};
315+
let number = 5u32;
316+
let mut iter<|> = scan(OtherStruct { i: num }, closure, number);
317+
}
318+
"#,
319+
&["FakeIter<Scan<OtherStruct<OtherStruct<i32>>, |&mut u32, &u32, &mut u32| -> FakeOption<u32>, u32>>"],
320+
);
321+
}
322+
282323
#[test]
283324
fn hover_shows_fn_signature() {
284325
// Single file with result

0 commit comments

Comments
 (0)