aboutsummaryrefslogtreecommitdiff
path: root/crates/ide/src/hover.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-12-18 18:10:13 +0000
committerAleksey Kladov <[email protected]>2020-12-18 18:15:48 +0000
commit0e3581e8232461baa50191a2c7474a117b649b1b (patch)
tree4e78794bf926ef2a0878abd6058f2958713725b4 /crates/ide/src/hover.rs
parent53f81e4e8c8307069d89cee58cb12142350b09c2 (diff)
NavTarget doesn't assume that it points to a symbol
Diffstat (limited to 'crates/ide/src/hover.rs')
-rw-r--r--crates/ide/src/hover.rs148
1 files changed, 111 insertions, 37 deletions
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs
index dca098af6..413b1526a 100644
--- a/crates/ide/src/hover.rs
+++ b/crates/ide/src/hover.rs
@@ -2191,7 +2191,9 @@ fn foo_<|>test() {}
2191 11..19, 2191 11..19,
2192 ), 2192 ),
2193 name: "foo_test", 2193 name: "foo_test",
2194 kind: Function, 2194 kind: Some(
2195 Function,
2196 ),
2195 container_name: None, 2197 container_name: None,
2196 description: None, 2198 description: None,
2197 docs: None, 2199 docs: None,
@@ -2234,7 +2236,9 @@ mod tests<|> {
2234 4..9, 2236 4..9,
2235 ), 2237 ),
2236 name: "tests", 2238 name: "tests",
2237 kind: Module, 2239 kind: Some(
2240 Module,
2241 ),
2238 container_name: None, 2242 container_name: None,
2239 description: None, 2243 description: None,
2240 docs: None, 2244 docs: None,
@@ -2273,7 +2277,9 @@ fn main() { let s<|>t = S{ f1:0 }; }
2273 7..8, 2277 7..8,
2274 ), 2278 ),
2275 name: "S", 2279 name: "S",
2276 kind: Struct, 2280 kind: Some(
2281 Struct,
2282 ),
2277 container_name: None, 2283 container_name: None,
2278 description: Some( 2284 description: Some(
2279 "struct S", 2285 "struct S",
@@ -2312,7 +2318,9 @@ fn main() { let s<|>t = S{ f1:Arg(0) }; }
2312 24..25, 2318 24..25,
2313 ), 2319 ),
2314 name: "S", 2320 name: "S",
2315 kind: Struct, 2321 kind: Some(
2322 Struct,
2323 ),
2316 container_name: None, 2324 container_name: None,
2317 description: Some( 2325 description: Some(
2318 "struct S", 2326 "struct S",
@@ -2331,7 +2339,9 @@ fn main() { let s<|>t = S{ f1:Arg(0) }; }
2331 7..10, 2339 7..10,
2332 ), 2340 ),
2333 name: "Arg", 2341 name: "Arg",
2334 kind: Struct, 2342 kind: Some(
2343 Struct,
2344 ),
2335 container_name: None, 2345 container_name: None,
2336 description: Some( 2346 description: Some(
2337 "struct Arg", 2347 "struct Arg",
@@ -2370,7 +2380,9 @@ fn main() { let s<|>t = S{ f1: S{ f1: Arg(0) } }; }
2370 24..25, 2380 24..25,
2371 ), 2381 ),
2372 name: "S", 2382 name: "S",
2373 kind: Struct, 2383 kind: Some(
2384 Struct,
2385 ),
2374 container_name: None, 2386 container_name: None,
2375 description: Some( 2387 description: Some(
2376 "struct S", 2388 "struct S",
@@ -2389,7 +2401,9 @@ fn main() { let s<|>t = S{ f1: S{ f1: Arg(0) } }; }
2389 7..10, 2401 7..10,
2390 ), 2402 ),
2391 name: "Arg", 2403 name: "Arg",
2392 kind: Struct, 2404 kind: Some(
2405 Struct,
2406 ),
2393 container_name: None, 2407 container_name: None,
2394 description: Some( 2408 description: Some(
2395 "struct Arg", 2409 "struct Arg",
@@ -2431,7 +2445,9 @@ fn main() { let s<|>t = (A(1), B(2), M::C(3) ); }
2431 7..8, 2445 7..8,
2432 ), 2446 ),
2433 name: "A", 2447 name: "A",
2434 kind: Struct, 2448 kind: Some(
2449 Struct,
2450 ),
2435 container_name: None, 2451 container_name: None,
2436 description: Some( 2452 description: Some(
2437 "struct A", 2453 "struct A",
@@ -2450,7 +2466,9 @@ fn main() { let s<|>t = (A(1), B(2), M::C(3) ); }
2450 22..23, 2466 22..23,
2451 ), 2467 ),
2452 name: "B", 2468 name: "B",
2453 kind: Struct, 2469 kind: Some(
2470 Struct,
2471 ),
2454 container_name: None, 2472 container_name: None,
2455 description: Some( 2473 description: Some(
2456 "struct B", 2474 "struct B",
@@ -2469,7 +2487,9 @@ fn main() { let s<|>t = (A(1), B(2), M::C(3) ); }
2469 53..54, 2487 53..54,
2470 ), 2488 ),
2471 name: "C", 2489 name: "C",
2472 kind: Struct, 2490 kind: Some(
2491 Struct,
2492 ),
2473 container_name: None, 2493 container_name: None,
2474 description: Some( 2494 description: Some(
2475 "pub struct C", 2495 "pub struct C",
@@ -2508,7 +2528,9 @@ fn main() { let s<|>t = foo(); }
2508 6..9, 2528 6..9,
2509 ), 2529 ),
2510 name: "Foo", 2530 name: "Foo",
2511 kind: Trait, 2531 kind: Some(
2532 Trait,
2533 ),
2512 container_name: None, 2534 container_name: None,
2513 description: Some( 2535 description: Some(
2514 "trait Foo", 2536 "trait Foo",
@@ -2548,7 +2570,9 @@ fn main() { let s<|>t = foo(); }
2548 6..9, 2570 6..9,
2549 ), 2571 ),
2550 name: "Foo", 2572 name: "Foo",
2551 kind: Trait, 2573 kind: Some(
2574 Trait,
2575 ),
2552 container_name: None, 2576 container_name: None,
2553 description: Some( 2577 description: Some(
2554 "trait Foo", 2578 "trait Foo",
@@ -2567,7 +2591,9 @@ fn main() { let s<|>t = foo(); }
2567 23..24, 2591 23..24,
2568 ), 2592 ),
2569 name: "S", 2593 name: "S",
2570 kind: Struct, 2594 kind: Some(
2595 Struct,
2596 ),
2571 container_name: None, 2597 container_name: None,
2572 description: Some( 2598 description: Some(
2573 "struct S", 2599 "struct S",
@@ -2607,7 +2633,9 @@ fn main() { let s<|>t = foo(); }
2607 6..9, 2633 6..9,
2608 ), 2634 ),
2609 name: "Foo", 2635 name: "Foo",
2610 kind: Trait, 2636 kind: Some(
2637 Trait,
2638 ),
2611 container_name: None, 2639 container_name: None,
2612 description: Some( 2640 description: Some(
2613 "trait Foo", 2641 "trait Foo",
@@ -2626,7 +2654,9 @@ fn main() { let s<|>t = foo(); }
2626 19..22, 2654 19..22,
2627 ), 2655 ),
2628 name: "Bar", 2656 name: "Bar",
2629 kind: Trait, 2657 kind: Some(
2658 Trait,
2659 ),
2630 container_name: None, 2660 container_name: None,
2631 description: Some( 2661 description: Some(
2632 "trait Bar", 2662 "trait Bar",
@@ -2669,7 +2699,9 @@ fn main() { let s<|>t = foo(); }
2669 6..9, 2699 6..9,
2670 ), 2700 ),
2671 name: "Foo", 2701 name: "Foo",
2672 kind: Trait, 2702 kind: Some(
2703 Trait,
2704 ),
2673 container_name: None, 2705 container_name: None,
2674 description: Some( 2706 description: Some(
2675 "trait Foo", 2707 "trait Foo",
@@ -2688,7 +2720,9 @@ fn main() { let s<|>t = foo(); }
2688 22..25, 2720 22..25,
2689 ), 2721 ),
2690 name: "Bar", 2722 name: "Bar",
2691 kind: Trait, 2723 kind: Some(
2724 Trait,
2725 ),
2692 container_name: None, 2726 container_name: None,
2693 description: Some( 2727 description: Some(
2694 "trait Bar", 2728 "trait Bar",
@@ -2707,7 +2741,9 @@ fn main() { let s<|>t = foo(); }
2707 39..41, 2741 39..41,
2708 ), 2742 ),
2709 name: "S1", 2743 name: "S1",
2710 kind: Struct, 2744 kind: Some(
2745 Struct,
2746 ),
2711 container_name: None, 2747 container_name: None,
2712 description: Some( 2748 description: Some(
2713 "struct S1", 2749 "struct S1",
@@ -2726,7 +2762,9 @@ fn main() { let s<|>t = foo(); }
2726 52..54, 2762 52..54,
2727 ), 2763 ),
2728 name: "S2", 2764 name: "S2",
2729 kind: Struct, 2765 kind: Some(
2766 Struct,
2767 ),
2730 container_name: None, 2768 container_name: None,
2731 description: Some( 2769 description: Some(
2732 "struct S2", 2770 "struct S2",
@@ -2763,7 +2801,9 @@ fn foo(ar<|>g: &impl Foo) {}
2763 6..9, 2801 6..9,
2764 ), 2802 ),
2765 name: "Foo", 2803 name: "Foo",
2766 kind: Trait, 2804 kind: Some(
2805 Trait,
2806 ),
2767 container_name: None, 2807 container_name: None,
2768 description: Some( 2808 description: Some(
2769 "trait Foo", 2809 "trait Foo",
@@ -2803,7 +2843,9 @@ fn foo(ar<|>g: &impl Foo + Bar<S>) {}
2803 6..9, 2843 6..9,
2804 ), 2844 ),
2805 name: "Foo", 2845 name: "Foo",
2806 kind: Trait, 2846 kind: Some(
2847 Trait,
2848 ),
2807 container_name: None, 2849 container_name: None,
2808 description: Some( 2850 description: Some(
2809 "trait Foo", 2851 "trait Foo",
@@ -2822,7 +2864,9 @@ fn foo(ar<|>g: &impl Foo + Bar<S>) {}
2822 19..22, 2864 19..22,
2823 ), 2865 ),
2824 name: "Bar", 2866 name: "Bar",
2825 kind: Trait, 2867 kind: Some(
2868 Trait,
2869 ),
2826 container_name: None, 2870 container_name: None,
2827 description: Some( 2871 description: Some(
2828 "trait Bar", 2872 "trait Bar",
@@ -2841,7 +2885,9 @@ fn foo(ar<|>g: &impl Foo + Bar<S>) {}
2841 36..37, 2885 36..37,
2842 ), 2886 ),
2843 name: "S", 2887 name: "S",
2844 kind: Struct, 2888 kind: Some(
2889 Struct,
2890 ),
2845 container_name: None, 2891 container_name: None,
2846 description: Some( 2892 description: Some(
2847 "struct S", 2893 "struct S",
@@ -2886,7 +2932,9 @@ mod future {
2886 140..146, 2932 140..146,
2887 ), 2933 ),
2888 name: "Future", 2934 name: "Future",
2889 kind: Trait, 2935 kind: Some(
2936 Trait,
2937 ),
2890 container_name: None, 2938 container_name: None,
2891 description: Some( 2939 description: Some(
2892 "pub trait Future", 2940 "pub trait Future",
@@ -2905,7 +2953,9 @@ mod future {
2905 7..8, 2953 7..8,
2906 ), 2954 ),
2907 name: "S", 2955 name: "S",
2908 kind: Struct, 2956 kind: Some(
2957 Struct,
2958 ),
2909 container_name: None, 2959 container_name: None,
2910 description: Some( 2960 description: Some(
2911 "struct S", 2961 "struct S",
@@ -2943,7 +2993,9 @@ fn foo(ar<|>g: &impl Foo<S>) {}
2943 6..9, 2993 6..9,
2944 ), 2994 ),
2945 name: "Foo", 2995 name: "Foo",
2946 kind: Trait, 2996 kind: Some(
2997 Trait,
2998 ),
2947 container_name: None, 2999 container_name: None,
2948 description: Some( 3000 description: Some(
2949 "trait Foo", 3001 "trait Foo",
@@ -2962,7 +3014,9 @@ fn foo(ar<|>g: &impl Foo<S>) {}
2962 23..24, 3014 23..24,
2963 ), 3015 ),
2964 name: "S", 3016 name: "S",
2965 kind: Struct, 3017 kind: Some(
3018 Struct,
3019 ),
2966 container_name: None, 3020 container_name: None,
2967 description: Some( 3021 description: Some(
2968 "struct S", 3022 "struct S",
@@ -3005,7 +3059,9 @@ fn main() { let s<|>t = foo(); }
3005 49..50, 3059 49..50,
3006 ), 3060 ),
3007 name: "B", 3061 name: "B",
3008 kind: Struct, 3062 kind: Some(
3063 Struct,
3064 ),
3009 container_name: None, 3065 container_name: None,
3010 description: Some( 3066 description: Some(
3011 "struct B", 3067 "struct B",
@@ -3024,7 +3080,9 @@ fn main() { let s<|>t = foo(); }
3024 6..9, 3080 6..9,
3025 ), 3081 ),
3026 name: "Foo", 3082 name: "Foo",
3027 kind: Trait, 3083 kind: Some(
3084 Trait,
3085 ),
3028 container_name: None, 3086 container_name: None,
3029 description: Some( 3087 description: Some(
3030 "trait Foo", 3088 "trait Foo",
@@ -3061,7 +3119,9 @@ fn foo(ar<|>g: &dyn Foo) {}
3061 6..9, 3119 6..9,
3062 ), 3120 ),
3063 name: "Foo", 3121 name: "Foo",
3064 kind: Trait, 3122 kind: Some(
3123 Trait,
3124 ),
3065 container_name: None, 3125 container_name: None,
3066 description: Some( 3126 description: Some(
3067 "trait Foo", 3127 "trait Foo",
@@ -3099,7 +3159,9 @@ fn foo(ar<|>g: &dyn Foo<S>) {}
3099 6..9, 3159 6..9,
3100 ), 3160 ),
3101 name: "Foo", 3161 name: "Foo",
3102 kind: Trait, 3162 kind: Some(
3163 Trait,
3164 ),
3103 container_name: None, 3165 container_name: None,
3104 description: Some( 3166 description: Some(
3105 "trait Foo", 3167 "trait Foo",
@@ -3118,7 +3180,9 @@ fn foo(ar<|>g: &dyn Foo<S>) {}
3118 23..24, 3180 23..24,
3119 ), 3181 ),
3120 name: "S", 3182 name: "S",
3121 kind: Struct, 3183 kind: Some(
3184 Struct,
3185 ),
3122 container_name: None, 3186 container_name: None,
3123 description: Some( 3187 description: Some(
3124 "struct S", 3188 "struct S",
@@ -3159,7 +3223,9 @@ fn foo(a<|>rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {}
3159 6..15, 3223 6..15,
3160 ), 3224 ),
3161 name: "ImplTrait", 3225 name: "ImplTrait",
3162 kind: Trait, 3226 kind: Some(
3227 Trait,
3228 ),
3163 container_name: None, 3229 container_name: None,
3164 description: Some( 3230 description: Some(
3165 "trait ImplTrait", 3231 "trait ImplTrait",
@@ -3178,7 +3244,9 @@ fn foo(a<|>rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {}
3178 50..51, 3244 50..51,
3179 ), 3245 ),
3180 name: "B", 3246 name: "B",
3181 kind: Struct, 3247 kind: Some(
3248 Struct,
3249 ),
3182 container_name: None, 3250 container_name: None,
3183 description: Some( 3251 description: Some(
3184 "struct B", 3252 "struct B",
@@ -3197,7 +3265,9 @@ fn foo(a<|>rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {}
3197 28..36, 3265 28..36,
3198 ), 3266 ),
3199 name: "DynTrait", 3267 name: "DynTrait",
3200 kind: Trait, 3268 kind: Some(
3269 Trait,
3270 ),
3201 container_name: None, 3271 container_name: None,
3202 description: Some( 3272 description: Some(
3203 "trait DynTrait", 3273 "trait DynTrait",
@@ -3216,7 +3286,9 @@ fn foo(a<|>rg: &impl ImplTrait<B<dyn DynTrait<B<S>>>>) {}
3216 65..66, 3286 65..66,
3217 ), 3287 ),
3218 name: "S", 3288 name: "S",
3219 kind: Struct, 3289 kind: Some(
3290 Struct,
3291 ),
3220 container_name: None, 3292 container_name: None,
3221 description: Some( 3293 description: Some(
3222 "struct S", 3294 "struct S",
@@ -3264,7 +3336,9 @@ fn main() { let s<|>t = test().get(); }
3264 6..9, 3336 6..9,
3265 ), 3337 ),
3266 name: "Foo", 3338 name: "Foo",
3267 kind: Trait, 3339 kind: Some(
3340 Trait,
3341 ),
3268 container_name: None, 3342 container_name: None,
3269 description: Some( 3343 description: Some(
3270 "trait Foo", 3344 "trait Foo",