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.rs157
1 files changed, 157 insertions, 0 deletions
diff --git a/crates/ide/src/hover/tests.rs b/crates/ide/src/hover/tests.rs
index 34dd7fb621..62404afc4b 100644
--- a/crates/ide/src/hover/tests.rs
+++ b/crates/ide/src/hover/tests.rs
@@ -3657,6 +3657,163 @@ enum E {
#[test]
fn hover_const_eval() {
+ check(
+ r#"
+trait T {
+ const B: bool = false;
+}
+impl T for <()> {
+ /// true
+ const B: bool = true;
+}
+fn main() {
+ <()>::B$0;
+}
+"#,
+ expect![[r#"
+ *B*
+
+ ```rust
+ test
+ ```
+
+ ```rust
+ const B: bool = true
+ ```
+
+ ---
+
+ true
+ "#]],
+ );
+
+ check(
+ r#"
+struct A {
+ i: i32
+};
+
+trait T {
+ const AA: A = A {
+ i: 1
+ };
+}
+impl T for i32 {
+ const AA: A = A {
+ i: 2
+ }
+}
+fn main() {
+ <i32>::AA$0;
+}
+"#,
+ expect![[r#"
+ *AA*
+
+ ```rust
+ test
+ ```
+
+ ```rust
+ const AA: A = A {
+ i: 2
+ }
+ ```
+ "#]],
+ );
+
+ check(
+ r#"
+trait T {
+ /// false
+ const B: bool = false;
+}
+impl T for () {
+ /// true
+ const B: bool = true;
+}
+fn main() {
+ T::B$0;
+}
+"#,
+ expect![[r#"
+ *B*
+
+ ```rust
+ test
+ ```
+
+ ```rust
+ const B: bool = false
+ ```
+
+ ---
+
+ false
+ "#]],
+ );
+
+ check(
+ r#"
+trait T {
+ /// false
+ const B: bool = false;
+}
+impl T for () {
+}
+fn main() {
+ <()>::B$0;
+}
+"#,
+ expect![[r#"
+ *B*
+
+ ```rust
+ test
+ ```
+
+ ```rust
+ const B: bool = false
+ ```
+
+ ---
+
+ false
+ "#]],
+ );
+
+ check(
+ r#"
+trait T {
+ /// false
+ const B: bool = false;
+}
+impl T for () {
+ /// true
+ const B: bool = true;
+}
+impl T for i32 {}
+fn main() {
+ <i32>::B$0;
+}
+"#,
+ expect![[r#"
+ *B*
+
+ ```rust
+ test
+ ```
+
+ ```rust
+ const B: bool = false
+ ```
+
+ ---
+
+ false
+ "#]],
+ );
+
// show hex for <10
check(
r#"