Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/hover/tests.rs')
| -rw-r--r-- | crates/ide/src/hover/tests.rs | 168 |
1 files changed, 8 insertions, 160 deletions
diff --git a/crates/ide/src/hover/tests.rs b/crates/ide/src/hover/tests.rs index 987e5d1556..67dc9884ed 100644 --- a/crates/ide/src/hover/tests.rs +++ b/crates/ide/src/hover/tests.rs @@ -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] |