Skip to content

Commit 6310786

Browse files
committed
test: Add hover_range tests
1 parent 1a0a5da commit 6310786

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

crates/ide/src/hover.rs

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,21 @@ mod tests {
652652
expect.assert_debug_eq(&hover.info.actions)
653653
}
654654

655+
fn check_hover_range(ra_fixture: &str, expect: Expect) {
656+
let (analysis, range) = fixture::range(ra_fixture);
657+
let hover = analysis
658+
.hover_range(
659+
&HoverConfig {
660+
links_in_hover: false,
661+
documentation: Some(HoverDocFormat::Markdown),
662+
},
663+
range,
664+
)
665+
.unwrap()
666+
.unwrap();
667+
expect.assert_eq(hover.info.markup.as_str())
668+
}
669+
655670
#[test]
656671
fn hover_shows_type_of_an_expression() {
657672
check(
@@ -3911,4 +3926,95 @@ struct Foo;
39113926
"#]],
39123927
);
39133928
}
3929+
3930+
#[test]
3931+
fn hover_range_math() {
3932+
check_hover_range(
3933+
r#"
3934+
fn f() { let expr = $01 + 2 * 3$0 }
3935+
"#,
3936+
expect![[r#"
3937+
```rust
3938+
i32
3939+
```"#]],
3940+
);
3941+
3942+
check_hover_range(
3943+
r#"
3944+
fn f() { let expr = 1 $0+ 2 * $03 }
3945+
"#,
3946+
expect![[r#"
3947+
```rust
3948+
i32
3949+
```"#]],
3950+
);
3951+
3952+
check_hover_range(
3953+
r#"
3954+
fn f() { let expr = 1 + $02 * 3$0 }
3955+
"#,
3956+
expect![[r#"
3957+
```rust
3958+
i32
3959+
```"#]],
3960+
);
3961+
}
3962+
3963+
#[test]
3964+
fn hover_range_arrays() {
3965+
check_hover_range(
3966+
r#"
3967+
fn f() { let expr = $0[1, 2, 3, 4]$0 }
3968+
"#,
3969+
expect![[r#"
3970+
```rust
3971+
[i32; 4]
3972+
```"#]],
3973+
);
3974+
3975+
check_hover_range(
3976+
r#"
3977+
fn f() { let expr = [1, 2, $03, 4]$0 }
3978+
"#,
3979+
expect![[r#"
3980+
```rust
3981+
[i32; 4]
3982+
```"#]],
3983+
);
3984+
3985+
check_hover_range(
3986+
r#"
3987+
fn f() { let expr = [1, 2, $03$0, 4] }
3988+
"#,
3989+
expect![[r#"
3990+
```rust
3991+
i32
3992+
```"#]],
3993+
);
3994+
}
3995+
3996+
#[test]
3997+
fn hover_range_functions() {
3998+
check_hover_range(
3999+
r#"
4000+
fn f<T>(a: &[T]) { }
4001+
fn b() { $0f$0(&[1, 2, 3, 4, 5]); }
4002+
"#,
4003+
expect![[r#"
4004+
```rust
4005+
fn f<i32>(&[i32])
4006+
```"#]],
4007+
);
4008+
4009+
check_hover_range(
4010+
r#"
4011+
fn f<T>(a: &[T]) { }
4012+
fn b() { f($0&[1, 2, 3, 4, 5]$0); }
4013+
"#,
4014+
expect![[r#"
4015+
```rust
4016+
&[i32; 5]
4017+
```"#]],
4018+
);
4019+
}
39144020
}

0 commit comments

Comments
 (0)