File tree Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -593,6 +593,31 @@ mod tests {
593
593
check_result ( refs, "i BIND_PAT FileId(1) 36..37 Other" , & [ "FileId(1) 51..52 Other Write" ] ) ;
594
594
}
595
595
596
+ #[ test]
597
+ fn test_find_struct_function_refs_outside_module ( ) {
598
+ let code = r#"
599
+ mod foo {
600
+ pub struct Foo;
601
+
602
+ impl Foo {
603
+ pub fn new<|>() -> Foo {
604
+ Foo
605
+ }
606
+ }
607
+ }
608
+
609
+ fn main() {
610
+ let _f = foo::Foo::new();
611
+ }"# ;
612
+
613
+ let refs = get_all_refs ( code) ;
614
+ check_result (
615
+ refs,
616
+ "new FN_DEF FileId(1) 87..150 94..97 Other" ,
617
+ & [ "FileId(1) 227..230 StructLiteral" ] ,
618
+ ) ;
619
+ }
620
+
596
621
fn get_all_refs ( text : & str ) -> ReferenceSearchResult {
597
622
let ( analysis, position) = single_file_with_position ( text) ;
598
623
analysis. find_all_refs ( position, None ) . unwrap ( ) . unwrap ( )
Original file line number Diff line number Diff line change @@ -52,6 +52,7 @@ impl Definition {
52
52
let parent = id. parent_enum ( db) ;
53
53
module?. visibility_of ( db, & ModuleDef :: Adt ( Adt :: Enum ( parent) ) )
54
54
}
55
+ ModuleDef :: Function ( f) => Some ( f. visibility ( db) ) ,
55
56
_ => module?. visibility_of ( db, def) ,
56
57
} ,
57
58
Definition :: SelfType ( _) => None ,
You can’t perform that action at this time.
0 commit comments