File tree Expand file tree Collapse file tree 1 file changed +30
-4
lines changed Expand file tree Collapse file tree 1 file changed +30
-4
lines changed Original file line number Diff line number Diff line change @@ -83,14 +83,14 @@ pub(crate) fn goto_definition(
83
83
return Some ( RangeInfo :: new ( original_token. text_range ( ) , navs) ) ;
84
84
}
85
85
86
- if let Some ( navs) = find_definition_for_known_blanket_dual_impls ( sema, & original_token) {
87
- return Some ( RangeInfo :: new ( original_token. text_range ( ) , navs) ) ;
88
- }
89
-
90
86
let navs = sema
91
87
. descend_into_macros_no_opaque ( original_token. clone ( ) , false )
92
88
. into_iter ( )
93
89
. filter_map ( |token| {
90
+ if let Some ( navs) = find_definition_for_known_blanket_dual_impls ( sema, & token. value ) {
91
+ return Some ( navs) ;
92
+ }
93
+
94
94
let parent = token. value . parent ( ) ?;
95
95
96
96
let token_file_id = token. file_id ;
@@ -3275,6 +3275,32 @@ impl From<A> for B {
3275
3275
}
3276
3276
}
3277
3277
3278
+ fn f() {
3279
+ let a = A;
3280
+ let b: B = a.into$0();
3281
+ }
3282
+ "# ,
3283
+ ) ;
3284
+ }
3285
+
3286
+ #[ test]
3287
+ fn into_call_to_from_definition_within_macro ( ) {
3288
+ check (
3289
+ r#"
3290
+ //- proc_macros: identity
3291
+ //- minicore: from
3292
+ struct A;
3293
+
3294
+ struct B;
3295
+
3296
+ impl From<A> for B {
3297
+ fn from(value: A) -> Self {
3298
+ //^^^^
3299
+ B
3300
+ }
3301
+ }
3302
+
3303
+ #[proc_macros::identity]
3278
3304
fn f() {
3279
3305
let a = A;
3280
3306
let b: B = a.into$0();
You can’t perform that action at this time.
0 commit comments