show values of constants in hover

This commit is contained in:
hkalbasi 2021-12-05 01:51:36 +03:30
parent 4ea1f58bf6
commit e6139cf47b
4 changed files with 406 additions and 7 deletions

View file

@ -552,7 +552,7 @@ fn hover_const_static() {
```
```rust
const foo: u32 = 123
const foo: u32 = 123 (0x7B)
```
"#]],
);
@ -3278,6 +3278,140 @@ impl<const LEN: usize> Foo<LEN$0> {}
);
}
#[test]
fn hover_const_eval() {
check(
r#"
/// This is a doc
const FOO$0: usize = !0 & !(!0 >> 1);
"#,
expect![[r#"
*FOO*
```rust
test
```
```rust
const FOO: usize = 9223372036854775808 (0x8000000000000000)
```
---
This is a doc
"#]],
);
check(
r#"
/// This is a doc
const FOO$0: usize = {
let a = 3 + 2;
let b = a * a;
b
};
"#,
expect![[r#"
*FOO*
```rust
test
```
```rust
const FOO: usize = 25 (0x19)
```
---
This is a doc
"#]],
);
check(
r#"
/// This is a doc
const FOO$0: usize = 1 << 10;
"#,
expect![[r#"
*FOO*
```rust
test
```
```rust
const FOO: usize = 1024 (0x400)
```
---
This is a doc
"#]],
);
check(
r#"
/// This is a doc
const FOO$0: usize = 2 - 3;
"#,
expect![[r#"
*FOO*
```rust
test
```
```rust
const FOO: usize = 2 - 3
```
---
This is a doc
"#]],
);
check(
r#"
/// This is a doc
const FOO$0: i32 = 2 - 3;
"#,
expect![[r#"
*FOO*
```rust
test
```
```rust
const FOO: i32 = -1
```
---
This is a doc
"#]],
);
check(
r#"
/// This is a doc
const FOO$0: usize = 1 << 100;
"#,
expect![[r#"
*FOO*
```rust
test
```
```rust
const FOO: usize = 1 << 100
```
---
This is a doc
"#]],
);
}
#[test]
fn hover_const_pat() {
check(