Fix handling of generics in tuple variants and refactor a bit

Also make them display a tiny bit nicer.

Fixes #860.
This commit is contained in:
Florian Diebold 2019-02-20 22:36:54 +01:00
parent c84561bb62
commit 72712b8a42
6 changed files with 122 additions and 41 deletions

View file

@ -163,6 +163,23 @@ mod tests {
assert_eq!(hover.info, "u32");
}
#[test]
fn hover_some() {
let (analysis, position) = single_file_with_position(
"
enum Option<T> { Some(T) }
use Option::Some;
fn main() {
So<|>me(12);
}
",
);
let hover = analysis.hover(position).unwrap().unwrap();
// not the nicest way to show it currently
assert_eq!(hover.info, "Some<i32>(T) -> Option<T>");
}
#[test]
fn hover_for_local_variable() {
let (analysis, position) = single_file_with_position("fn func(foo: i32) { fo<|>o; }");