Skip to content

Commit 3c7f1e3

Browse files
committed
Rust: More path resolution tests
1 parent 71e8443 commit 3c7f1e3

File tree

3 files changed

+313
-279
lines changed

3 files changed

+313
-279
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ multipleCallTargets
22
| main.rs:126:9:126:11 | f(...) |
33
| main.rs:366:9:368:16 | ...::f(...) |
44
| main.rs:369:9:371:16 | ...::f(...) |
5-
| main.rs:448:9:452:16 | ...::f(...) |
6-
| main.rs:453:9:457:16 | ...::f(...) |
5+
| main.rs:450:9:454:16 | ...::f(...) |
6+
| main.rs:455:9:459:16 | ...::f(...) |
7+
| main.rs:460:9:460:16 | ...::g(...) |

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

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,8 +381,9 @@ mod m16 {
381381
> {
382382
fn f(&self) -> T; // $ item=I84
383383

384-
fn g(&self) -> T // $ item=I84
385-
; // I85
384+
fn g(&self) -> T {// $ item=I84
385+
self.f() // $ item=f
386+
} // I85
386387

387388
fn h(&self) -> T { // $ item=I84
388389
Self::g(&self); // $ item=I85
@@ -436,6 +437,7 @@ mod m16 {
436437
> // $ item=I89
437438
for S { // $ item=I90
438439
fn f(&self) -> S { // $ item=I90
440+
Self::g(&self); // $ MISSING: item=I92 $ SPURIOUS: item=I85
439441
println!("m16::<S as Trait2<S>>::f"); // $ item=println
440442
Self::c // $ MISSING: item=I95
441443
} // I93
@@ -455,7 +457,7 @@ mod m16 {
455457
S // $ item=I90
456458
> // $ item=I89
457459
>::f(&x); // $ MISSING: item=I93
458-
S::g(&x); // $ item=I92
460+
S::g(&x); // $ item=I92 $ SPURIOUS: item=I85
459461
x.g(); // $ item=I92
460462
S::h(&x); // $ item=I96
461463
x.h(); // $ item=I96
@@ -466,6 +468,27 @@ mod m16 {
466468
> // $ item=I86
467469
>::c; // $ MISSING: item=I95
468470
} // I83
471+
472+
trait Trait3 {
473+
fn f(&self);
474+
}
475+
476+
trait Trait4 {
477+
fn g(&self);
478+
}
479+
480+
struct S2;
481+
482+
impl Trait3 for S2 { // $ item=Trait3 item=S2
483+
fn f(&self) { } // S2asTrait3::f
484+
}
485+
486+
impl Trait4 for S2 { // $ item=Trait4 item=S2
487+
fn g(&self) {
488+
Self::f(&self); // $ MISSING: item=S2asTrait3::f
489+
S2::f(&self); // $ item=S2asTrait3::f
490+
}
491+
}
469492
}
470493

471494
mod trait_visibility {

0 commit comments

Comments
 (0)