diff options
-rw-r--r-- | crates/ide/src/hover.rs | 85 |
1 files changed, 57 insertions, 28 deletions
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs index 7328f410a..a35805c5e 100644 --- a/crates/ide/src/hover.rs +++ b/crates/ide/src/hover.rs | |||
@@ -653,7 +653,9 @@ fn main() { let foo_test = fo$0o(); } | |||
653 | ``` | 653 | ``` |
654 | 654 | ||
655 | ```rust | 655 | ```rust |
656 | pub fn foo<'a, T: AsRef<str>>(b: &'a T) -> &'a str | 656 | pub fn foo<'a, T>(b: &'a T) -> &'a str |
657 | where | ||
658 | T: AsRef<str>, | ||
657 | ``` | 659 | ``` |
658 | "#]], | 660 | "#]], |
659 | ); | 661 | ); |
@@ -861,7 +863,7 @@ fn main() { So$0me(12); } | |||
861 | ``` | 863 | ``` |
862 | 864 | ||
863 | ```rust | 865 | ```rust |
864 | Some | 866 | Some(T) |
865 | ``` | 867 | ``` |
866 | "#]], | 868 | "#]], |
867 | ); | 869 | ); |
@@ -927,7 +929,7 @@ fn main() { | |||
927 | ``` | 929 | ``` |
928 | 930 | ||
929 | ```rust | 931 | ```rust |
930 | Some | 932 | Some(T) |
931 | ``` | 933 | ``` |
932 | 934 | ||
933 | --- | 935 | --- |
@@ -1424,13 +1426,14 @@ fn bar() { fo$0o(); } | |||
1424 | ``` | 1426 | ``` |
1425 | "#]], | 1427 | "#]], |
1426 | ); | 1428 | ); |
1429 | // Top level `pub(crate)` will be displayed as no visibility. | ||
1427 | check( | 1430 | check( |
1428 | r#"pub(crate) async unsafe extern "C" fn foo$0() {}"#, | 1431 | r#"mod m { pub(crate) async unsafe extern "C" fn foo$0() {} }"#, |
1429 | expect![[r#" | 1432 | expect![[r#" |
1430 | *foo* | 1433 | *foo* |
1431 | 1434 | ||
1432 | ```rust | 1435 | ```rust |
1433 | test | 1436 | test::m |
1434 | ``` | 1437 | ``` |
1435 | 1438 | ||
1436 | ```rust | 1439 | ```rust |
@@ -1472,11 +1475,18 @@ extern crate st$0d; | |||
1472 | //! abc123 | 1475 | //! abc123 |
1473 | "#, | 1476 | "#, |
1474 | expect![[r#" | 1477 | expect![[r#" |
1475 | *std* | 1478 | *std* |
1476 | Standard library for this test | 1479 | |
1480 | ```rust | ||
1481 | extern crate std | ||
1482 | ``` | ||
1477 | 1483 | ||
1478 | Printed? | 1484 | --- |
1479 | abc123 | 1485 | |
1486 | Standard library for this test | ||
1487 | |||
1488 | Printed? | ||
1489 | abc123 | ||
1480 | "#]], | 1490 | "#]], |
1481 | ); | 1491 | ); |
1482 | check( | 1492 | check( |
@@ -1490,11 +1500,18 @@ extern crate std as ab$0c; | |||
1490 | //! abc123 | 1500 | //! abc123 |
1491 | "#, | 1501 | "#, |
1492 | expect![[r#" | 1502 | expect![[r#" |
1493 | *abc* | 1503 | *abc* |
1494 | Standard library for this test | ||
1495 | 1504 | ||
1496 | Printed? | 1505 | ```rust |
1497 | abc123 | 1506 | extern crate std |
1507 | ``` | ||
1508 | |||
1509 | --- | ||
1510 | |||
1511 | Standard library for this test | ||
1512 | |||
1513 | Printed? | ||
1514 | abc123 | ||
1498 | "#]], | 1515 | "#]], |
1499 | ); | 1516 | ); |
1500 | } | 1517 | } |
@@ -2004,7 +2021,7 @@ enum E { | |||
2004 | ``` | 2021 | ``` |
2005 | 2022 | ||
2006 | ```rust | 2023 | ```rust |
2007 | V | 2024 | V { field: i32 } |
2008 | ``` | 2025 | ``` |
2009 | 2026 | ||
2010 | --- | 2027 | --- |
@@ -2400,7 +2417,7 @@ fn main() { let s$0t = S{ f1:Arg(0) }; } | |||
2400 | focus_range: 24..25, | 2417 | focus_range: 24..25, |
2401 | name: "S", | 2418 | name: "S", |
2402 | kind: Struct, | 2419 | kind: Struct, |
2403 | description: "struct S", | 2420 | description: "struct S<T>", |
2404 | }, | 2421 | }, |
2405 | }, | 2422 | }, |
2406 | HoverGotoTypeData { | 2423 | HoverGotoTypeData { |
@@ -2446,7 +2463,7 @@ fn main() { let s$0t = S{ f1: S{ f1: Arg(0) } }; } | |||
2446 | focus_range: 24..25, | 2463 | focus_range: 24..25, |
2447 | name: "S", | 2464 | name: "S", |
2448 | kind: Struct, | 2465 | kind: Struct, |
2449 | description: "struct S", | 2466 | description: "struct S<T>", |
2450 | }, | 2467 | }, |
2451 | }, | 2468 | }, |
2452 | HoverGotoTypeData { | 2469 | HoverGotoTypeData { |
@@ -2588,7 +2605,7 @@ fn main() { let s$0t = foo(); } | |||
2588 | focus_range: 6..9, | 2605 | focus_range: 6..9, |
2589 | name: "Foo", | 2606 | name: "Foo", |
2590 | kind: Trait, | 2607 | kind: Trait, |
2591 | description: "trait Foo", | 2608 | description: "trait Foo<T>", |
2592 | }, | 2609 | }, |
2593 | }, | 2610 | }, |
2594 | HoverGotoTypeData { | 2611 | HoverGotoTypeData { |
@@ -2685,7 +2702,7 @@ fn main() { let s$0t = foo(); } | |||
2685 | focus_range: 6..9, | 2702 | focus_range: 6..9, |
2686 | name: "Foo", | 2703 | name: "Foo", |
2687 | kind: Trait, | 2704 | kind: Trait, |
2688 | description: "trait Foo", | 2705 | description: "trait Foo<T>", |
2689 | }, | 2706 | }, |
2690 | }, | 2707 | }, |
2691 | HoverGotoTypeData { | 2708 | HoverGotoTypeData { |
@@ -2698,7 +2715,7 @@ fn main() { let s$0t = foo(); } | |||
2698 | focus_range: 22..25, | 2715 | focus_range: 22..25, |
2699 | name: "Bar", | 2716 | name: "Bar", |
2700 | kind: Trait, | 2717 | kind: Trait, |
2701 | description: "trait Bar", | 2718 | description: "trait Bar<T>", |
2702 | }, | 2719 | }, |
2703 | }, | 2720 | }, |
2704 | HoverGotoTypeData { | 2721 | HoverGotoTypeData { |
@@ -2802,7 +2819,7 @@ fn foo(ar$0g: &impl Foo + Bar<S>) {} | |||
2802 | focus_range: 19..22, | 2819 | focus_range: 19..22, |
2803 | name: "Bar", | 2820 | name: "Bar", |
2804 | kind: Trait, | 2821 | kind: Trait, |
2805 | description: "trait Bar", | 2822 | description: "trait Bar<T>", |
2806 | }, | 2823 | }, |
2807 | }, | 2824 | }, |
2808 | HoverGotoTypeData { | 2825 | HoverGotoTypeData { |
@@ -2899,7 +2916,7 @@ fn foo(ar$0g: &impl Foo<S>) {} | |||
2899 | focus_range: 6..9, | 2916 | focus_range: 6..9, |
2900 | name: "Foo", | 2917 | name: "Foo", |
2901 | kind: Trait, | 2918 | kind: Trait, |
2902 | description: "trait Foo", | 2919 | description: "trait Foo<T>", |
2903 | }, | 2920 | }, |
2904 | }, | 2921 | }, |
2905 | HoverGotoTypeData { | 2922 | HoverGotoTypeData { |
@@ -2949,7 +2966,7 @@ fn main() { let s$0t = foo(); } | |||
2949 | focus_range: 49..50, | 2966 | focus_range: 49..50, |
2950 | name: "B", | 2967 | name: "B", |
2951 | kind: Struct, | 2968 | kind: Struct, |
2952 | description: "struct B", | 2969 | description: "struct B<T>", |
2953 | }, | 2970 | }, |
2954 | }, | 2971 | }, |
2955 | HoverGotoTypeData { | 2972 | HoverGotoTypeData { |
@@ -3025,7 +3042,7 @@ fn foo(ar$0g: &dyn Foo<S>) {} | |||
3025 | focus_range: 6..9, | 3042 | focus_range: 6..9, |
3026 | name: "Foo", | 3043 | name: "Foo", |
3027 | kind: Trait, | 3044 | kind: Trait, |
3028 | description: "trait Foo", | 3045 | description: "trait Foo<T>", |
3029 | }, | 3046 | }, |
3030 | }, | 3047 | }, |
3031 | HoverGotoTypeData { | 3048 | HoverGotoTypeData { |
@@ -3073,7 +3090,7 @@ fn foo(a$0rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {} | |||
3073 | focus_range: 6..15, | 3090 | focus_range: 6..15, |
3074 | name: "ImplTrait", | 3091 | name: "ImplTrait", |
3075 | kind: Trait, | 3092 | kind: Trait, |
3076 | description: "trait ImplTrait", | 3093 | description: "trait ImplTrait<T>", |
3077 | }, | 3094 | }, |
3078 | }, | 3095 | }, |
3079 | HoverGotoTypeData { | 3096 | HoverGotoTypeData { |
@@ -3086,7 +3103,7 @@ fn foo(a$0rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {} | |||
3086 | focus_range: 50..51, | 3103 | focus_range: 50..51, |
3087 | name: "B", | 3104 | name: "B", |
3088 | kind: Struct, | 3105 | kind: Struct, |
3089 | description: "struct B", | 3106 | description: "struct B<T>", |
3090 | }, | 3107 | }, |
3091 | }, | 3108 | }, |
3092 | HoverGotoTypeData { | 3109 | HoverGotoTypeData { |
@@ -3099,7 +3116,7 @@ fn foo(a$0rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {} | |||
3099 | focus_range: 28..36, | 3116 | focus_range: 28..36, |
3100 | name: "DynTrait", | 3117 | name: "DynTrait", |
3101 | kind: Trait, | 3118 | kind: Trait, |
3102 | description: "trait DynTrait", | 3119 | description: "trait DynTrait<T>", |
3103 | }, | 3120 | }, |
3104 | }, | 3121 | }, |
3105 | HoverGotoTypeData { | 3122 | HoverGotoTypeData { |
@@ -3565,6 +3582,17 @@ mod foo$0; | |||
3565 | "#, | 3582 | "#, |
3566 | expect![[r#" | 3583 | expect![[r#" |
3567 | *foo* | 3584 | *foo* |
3585 | |||
3586 | ```rust | ||
3587 | test | ||
3588 | ``` | ||
3589 | |||
3590 | ```rust | ||
3591 | mod foo | ||
3592 | ``` | ||
3593 | |||
3594 | --- | ||
3595 | |||
3568 | For the horde! | 3596 | For the horde! |
3569 | "#]], | 3597 | "#]], |
3570 | ); | 3598 | ); |
@@ -3589,7 +3617,7 @@ use foo::bar::{self$0}; | |||
3589 | ``` | 3617 | ``` |
3590 | 3618 | ||
3591 | ```rust | 3619 | ```rust |
3592 | pub mod bar | 3620 | mod bar |
3593 | ``` | 3621 | ``` |
3594 | 3622 | ||
3595 | --- | 3623 | --- |
@@ -3670,8 +3698,9 @@ fn main() { | |||
3670 | ``` | 3698 | ``` |
3671 | 3699 | ||
3672 | ```rust | 3700 | ```rust |
3673 | fn bar<'t, T: Clone + 't>(s: &mut S<'t, T>, t: u32) -> *mut u32 | 3701 | fn bar<'t, T>(s: &mut S<'t, T>, t: u32) -> *mut u32 |
3674 | where | 3702 | where |
3703 | T: Clone + 't, | ||
3675 | 't: 't + 't, | 3704 | 't: 't + 't, |
3676 | for<'a> T: Clone + 'a, | 3705 | for<'a> T: Clone + 'a, |
3677 | ``` | 3706 | ``` |