File tree 2 files changed +41
-4
lines changed
crates/ide_completion/src
2 files changed +41
-4
lines changed Original file line number Diff line number Diff line change @@ -1467,6 +1467,43 @@ fn foo(f: Foo) { let _: &u32 = f.b$0 }
1467
1467
) ;
1468
1468
}
1469
1469
1470
+ #[ test]
1471
+ fn qualified_path_ref ( ) {
1472
+ // disabled right now because it doesn't render correctly, #8058
1473
+ check_kinds (
1474
+ r#"
1475
+ struct S;
1476
+
1477
+ struct T;
1478
+ impl T {
1479
+ fn foo() -> S {}
1480
+ }
1481
+
1482
+ fn bar(s: &S) {}
1483
+
1484
+ fn main() {
1485
+ bar(T::$0);
1486
+ }
1487
+ "# ,
1488
+ & [ CompletionItemKind :: SymbolKind ( SymbolKind :: Function ) ] ,
1489
+ expect ! [ [ r#"
1490
+ [
1491
+ CompletionItem {
1492
+ label: "foo()",
1493
+ source_range: 95..95,
1494
+ delete: 95..95,
1495
+ insert: "foo()$0",
1496
+ kind: SymbolKind(
1497
+ Function,
1498
+ ),
1499
+ lookup: "foo",
1500
+ detail: "fn() -> S",
1501
+ },
1502
+ ]
1503
+ "# ] ] ,
1504
+ ) ;
1505
+ }
1506
+
1470
1507
#[ test]
1471
1508
fn generic_enum ( ) {
1472
1509
check_relevance (
Original file line number Diff line number Diff line change @@ -74,10 +74,10 @@ fn render(
74
74
} ) ;
75
75
76
76
if let Some ( ref_match) = compute_ref_match ( completion, & ret_type) {
77
- // FIXME
78
- // For now we don't properly calculate the edits for ref match
79
- // completions on methods, so we've disabled them. See #8058.
80
- if matches ! ( func_kind, FuncKind :: Function ) {
77
+ // FIXME For now we don't properly calculate the edits for ref match
78
+ // completions on methods or qualified paths, so we've disabled them.
79
+ // See #8058.
80
+ if matches ! ( func_kind, FuncKind :: Function ) && ctx . completion . path_qual ( ) . is_none ( ) {
81
81
item. ref_match ( ref_match) ;
82
82
}
83
83
}
You can’t perform that action at this time.
0 commit comments