Skip to content

Commit d45f8f7

Browse files
committed
Rust: Document overlapping function resoltion with test cases
1 parent 34f3892 commit d45f8f7

File tree

3 files changed

+294
-247
lines changed

3 files changed

+294
-247
lines changed

rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@ multipleCallTargets
44
| main.rs:369:9:371:16 | ...::f(...) |
55
| main.rs:450:9:454:16 | ...::f(...) |
66
| main.rs:455:9:459:16 | ...::f(...) |
7+
| main.rs:565:9:566:15 | ...::Assoc(...) |
8+
| main.rs:568:9:569:12 | ...::f1(...) |
9+
| main.rs:571:9:572:12 | ...::f1(...) |

rust/ql/test/library-tests/path-resolution/main.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,32 @@ mod m16 {
545545
!Self::Assoc() // $ item=S3boolAssocFunc
546546
} // S3boolAssocFunc
547547
}
548+
549+
#[rustfmt::skip]
550+
impl S3<i32> { // $ item=S3 item=i32
551+
fn f1() -> i32 { // $ item=i32
552+
0
553+
} // S3i32f1
554+
}
555+
556+
#[rustfmt::skip]
557+
impl S3<bool> { // $ item=S3 item=bool
558+
fn f1() -> bool { // $ item=bool
559+
true
560+
} // S3boolf1
561+
}
562+
563+
#[rustfmt::skip]
564+
fn foo() {
565+
S3::<i32>:: // $ item=i32
566+
Assoc(); // $ item=S3i32AssocFunc $ SPURIOUS: item=S3boolAssocFunc
567+
568+
S3::<bool>:: // $ item=bool
569+
f1(); // $ item=S3boolf1 $ SPURIOUS: item=S3i32f1
570+
571+
S3::<i32>:: // $ item=i32
572+
f1(); // $ item=S3i32f1 $ SPURIOUS: item=S3boolf1
573+
}
548574
}
549575

550576
mod trait_visibility {

0 commit comments

Comments
 (0)