Skip to content

Commit 57dfbf4

Browse files
committed
Rust: Add path resolution test for super in use statement
1 parent 8044b0d commit 57dfbf4

File tree

4 files changed

+18
-4
lines changed

4 files changed

+18
-4
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,4 +497,5 @@ fn main() {
497497
m17::f(); // $ item=I99
498498
nested6::f(); // $ item=I116
499499
nested8::f(); // $ item=I119
500+
my3::f(); // $ item=I200
500501
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
pub mod nested2; // I8
22

33
fn g() {
4-
println!("mod.rs::g");
4+
println!("my2/mod.rs::g");
55
nested2::nested3::nested4::f(); // $ item=I12
66
} // I9
77

88
pub use nested2::nested5::*; // $ item=I114
99

1010
pub use nested2::nested7::nested8::{self}; // $ item=I118
11+
12+
pub mod my3;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
pub fn f() {
2+
println!("my2/my3/mod.rs::f");
3+
g(); // $ MISSING: item=I9
4+
h(); // $ MISSING: item=I25
5+
} // I200
6+
7+
use super::super::h; // $ MISSING: item=I25
8+
use super::g; // $ MISSING: item=I9

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ mod
2222
| main.rs:350:1:442:1 | mod m16 |
2323
| main.rs:444:1:474:1 | mod m17 |
2424
| my2/mod.rs:1:1:1:16 | mod nested2 |
25+
| my2/mod.rs:12:1:12:12 | mod my3 |
2526
| my2/nested2.rs:1:1:11:1 | mod nested3 |
2627
| my2/nested2.rs:2:5:10:5 | mod nested4 |
2728
| my2/nested2.rs:13:1:19:1 | mod nested5 |
@@ -50,7 +51,7 @@ resolvePath
5051
| main.rs:30:17:30:21 | super | main.rs:18:5:36:5 | mod m2 |
5152
| main.rs:30:17:30:24 | ...::f | main.rs:19:9:21:9 | fn f |
5253
| main.rs:33:17:33:17 | f | main.rs:19:9:21:9 | fn f |
53-
| main.rs:40:9:40:13 | super | main.rs:1:1:500:2 | SourceFile |
54+
| main.rs:40:9:40:13 | super | main.rs:1:1:501:2 | SourceFile |
5455
| main.rs:40:9:40:17 | ...::m1 | main.rs:13:1:37:1 | mod m1 |
5556
| main.rs:40:9:40:21 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
5657
| main.rs:40:9:40:24 | ...::g | main.rs:23:9:27:9 | fn g |
@@ -62,7 +63,7 @@ resolvePath
6263
| main.rs:61:17:61:19 | Foo | main.rs:59:9:59:21 | struct Foo |
6364
| main.rs:64:13:64:15 | Foo | main.rs:53:5:53:17 | struct Foo |
6465
| main.rs:66:5:66:5 | f | main.rs:55:5:62:5 | fn f |
65-
| main.rs:68:5:68:8 | self | main.rs:1:1:500:2 | SourceFile |
66+
| main.rs:68:5:68:8 | self | main.rs:1:1:501:2 | SourceFile |
6667
| main.rs:68:5:68:11 | ...::i | main.rs:71:1:83:1 | fn i |
6768
| main.rs:74:13:74:15 | Foo | main.rs:48:1:48:13 | struct Foo |
6869
| main.rs:81:17:81:19 | Foo | main.rs:77:9:79:9 | struct Foo |
@@ -76,7 +77,7 @@ resolvePath
7677
| main.rs:87:57:87:66 | ...::g | my2/nested2.rs:7:9:9:9 | fn g |
7778
| main.rs:87:80:87:86 | nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
7879
| main.rs:100:5:100:22 | f_defined_in_macro | main.rs:99:18:99:42 | fn f_defined_in_macro |
79-
| main.rs:117:13:117:17 | super | main.rs:1:1:500:2 | SourceFile |
80+
| main.rs:117:13:117:17 | super | main.rs:1:1:501:2 | SourceFile |
8081
| main.rs:117:13:117:21 | ...::m5 | main.rs:103:1:107:1 | mod m5 |
8182
| main.rs:118:9:118:9 | f | main.rs:104:5:106:5 | fn f |
8283
| main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f |
@@ -257,6 +258,8 @@ resolvePath
257258
| main.rs:498:5:498:14 | ...::f | my2/nested2.rs:15:9:17:9 | fn f |
258259
| main.rs:499:5:499:11 | nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 |
259260
| main.rs:499:5:499:14 | ...::f | my2/nested2.rs:23:9:25:9 | fn f |
261+
| main.rs:500:5:500:7 | my3 | my2/mod.rs:12:1:12:12 | mod my3 |
262+
| main.rs:500:5:500:10 | ...::f | my2/my3/mod.rs:1:1:5:1 | fn f |
260263
| my2/mod.rs:5:5:5:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 |
261264
| my2/mod.rs:5:5:5:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 |
262265
| my2/mod.rs:5:5:5:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |

0 commit comments

Comments
 (0)