mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
organize const eval tests
This commit is contained in:
parent
0e2989e421
commit
22eaee25b8
5 changed files with 180 additions and 168 deletions
|
@ -3399,13 +3399,13 @@ impl<const LEN: usize> Foo<LEN$0> {}
|
|||
);
|
||||
}
|
||||
|
||||
// FIXME: move these tests to consteval module
|
||||
#[test]
|
||||
fn hover_const_eval() {
|
||||
// show hex for <10
|
||||
check(
|
||||
r#"
|
||||
/// This is a doc
|
||||
const FOO$0: usize = !0 & !(!0 >> 1);
|
||||
const FOO$0: usize = 1 << 3;
|
||||
"#,
|
||||
expect![[r#"
|
||||
*FOO*
|
||||
|
@ -3415,7 +3415,7 @@ const FOO$0: usize = !0 & !(!0 >> 1);
|
|||
```
|
||||
|
||||
```rust
|
||||
const FOO: usize = 9223372036854775808 (0x8000000000000000)
|
||||
const FOO: usize = 8
|
||||
```
|
||||
|
||||
---
|
||||
|
@ -3423,14 +3423,11 @@ const FOO$0: usize = !0 & !(!0 >> 1);
|
|||
This is a doc
|
||||
"#]],
|
||||
);
|
||||
// show hex for >10
|
||||
check(
|
||||
r#"
|
||||
/// This is a doc
|
||||
const FOO$0: usize = {
|
||||
let a = 3 + 2;
|
||||
let b = a * a;
|
||||
b
|
||||
};
|
||||
const FOO$0: usize = (1 << 3) + (1 << 2);
|
||||
"#,
|
||||
expect![[r#"
|
||||
*FOO*
|
||||
|
@ -3440,53 +3437,7 @@ const FOO$0: usize = {
|
|||
```
|
||||
|
||||
```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 = {
|
||||
let b = 4;
|
||||
let a = { let b = 2; let a = b; a } + { let a = 1; a + b };
|
||||
a
|
||||
};
|
||||
"#,
|
||||
expect![[r#"
|
||||
*FOO*
|
||||
|
||||
```rust
|
||||
test
|
||||
```
|
||||
|
||||
```rust
|
||||
const FOO: usize = 7
|
||||
const FOO: usize = 12 (0xC)
|
||||
```
|
||||
|
||||
---
|
||||
|
@ -3494,6 +3445,7 @@ const FOO$0: usize = {
|
|||
This is a doc
|
||||
"#]],
|
||||
);
|
||||
// show original body when const eval fails
|
||||
check(
|
||||
r#"
|
||||
/// This is a doc
|
||||
|
@ -3515,6 +3467,7 @@ const FOO$0: usize = 2 - 3;
|
|||
This is a doc
|
||||
"#]],
|
||||
);
|
||||
// don't show hex for negatives
|
||||
check(
|
||||
r#"
|
||||
/// This is a doc
|
||||
|
@ -3539,27 +3492,6 @@ const FOO$0: i32 = 2 - 3;
|
|||
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
|
||||
"#]],
|
||||
);
|
||||
check(
|
||||
r#"
|
||||
/// This is a doc
|
||||
const FOO$0: &str = "bar";
|
||||
"#,
|
||||
expect![[r#"
|
||||
|
@ -3578,90 +3510,6 @@ const FOO$0: &str = "bar";
|
|||
This is a doc
|
||||
"#]],
|
||||
);
|
||||
check(
|
||||
r#"
|
||||
const F1: i32 = 1;
|
||||
const F$03: i32 = 3 * F2;
|
||||
const F2: i32 = 2 * F1;
|
||||
"#,
|
||||
expect![[r#"
|
||||
*F3*
|
||||
|
||||
```rust
|
||||
test
|
||||
```
|
||||
|
||||
```rust
|
||||
const F3: i32 = 6
|
||||
```
|
||||
"#]],
|
||||
);
|
||||
check(
|
||||
r#"
|
||||
const F1: i32 = 1 * F3;
|
||||
const F2: i32 = 2 * F1;
|
||||
const F$03: i32 = 3 * F2;
|
||||
"#,
|
||||
expect![[r#"
|
||||
*F3*
|
||||
|
||||
```rust
|
||||
test
|
||||
```
|
||||
|
||||
```rust
|
||||
const F3: i32 = 3 * F2
|
||||
```
|
||||
"#]],
|
||||
);
|
||||
check(
|
||||
r#"
|
||||
struct U5;
|
||||
impl U5 {
|
||||
const VAL: usize = 5;
|
||||
}
|
||||
const X$0X: usize = U5::VAL;
|
||||
"#,
|
||||
expect![[r#"
|
||||
*XX*
|
||||
|
||||
```rust
|
||||
test
|
||||
```
|
||||
|
||||
```rust
|
||||
const XX: usize = 5
|
||||
```
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
||||
// FIXME: this should evaluate to zero
|
||||
#[test]
|
||||
fn hover_const_eval_broken() {
|
||||
check(
|
||||
r#"
|
||||
struct U0;
|
||||
trait ToConst {
|
||||
const VAL: usize;
|
||||
}
|
||||
impl ToConst for U0 {
|
||||
const VAL: usize = 0;
|
||||
}
|
||||
const X$0X: usize = U0::VAL;
|
||||
"#,
|
||||
expect![[r#"
|
||||
*XX*
|
||||
|
||||
```rust
|
||||
test
|
||||
```
|
||||
|
||||
```rust
|
||||
const XX: usize = U0::VAL
|
||||
```
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue