Skip to content

Commit 6cf83d3

Browse files
committed
Rust: Add path resolution test for reexported items
1 parent 92528f2 commit 6cf83d3

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
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
@@ -495,4 +495,5 @@ fn main() {
495495
m15::f(); // $ item=I75
496496
m16::f(); // $ item=I83
497497
m17::f(); // $ item=I99
498+
nested6::f(); // $ MISSING: item=I116
498499
}

rust/ql/test/library-tests/path-resolution/my2/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ fn g() {
44
println!("mod.rs::g");
55
nested2::nested3::nested4::f(); // $ item=I12
66
} // I9
7+
8+
pub use nested2::nested5::*; // $ item=I114

rust/ql/test/library-tests/path-resolution/my2/nested2.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,11 @@ pub mod nested3 {
99
} // I13
1010
} // I11
1111
} // I10
12+
13+
pub mod nested5 {
14+
pub mod nested6 {
15+
pub fn f() {
16+
println!("nested2.rs::nested5::nested6::f");
17+
} // I116
18+
} // I115
19+
} // I114

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ mod
2424
| my2/mod.rs:1:1:1:16 | mod nested2 |
2525
| my2/nested2.rs:1:1:11:1 | mod nested3 |
2626
| my2/nested2.rs:2:5:10:5 | mod nested4 |
27+
| my2/nested2.rs:13:1:19:1 | mod nested5 |
28+
| my2/nested2.rs:14:5:18:5 | mod nested6 |
2729
| my.rs:1:1:1:15 | mod nested |
2830
| my/nested.rs:1:1:17:1 | mod nested1 |
2931
| my/nested.rs:2:5:11:5 | mod nested2 |
@@ -46,7 +48,7 @@ resolvePath
4648
| main.rs:30:17:30:21 | super | main.rs:18:5:36:5 | mod m2 |
4749
| main.rs:30:17:30:24 | ...::f | main.rs:19:9:21:9 | fn f |
4850
| main.rs:33:17:33:17 | f | main.rs:19:9:21:9 | fn f |
49-
| main.rs:40:9:40:13 | super | main.rs:1:1:498:2 | SourceFile |
51+
| main.rs:40:9:40:13 | super | main.rs:1:1:499:2 | SourceFile |
5052
| main.rs:40:9:40:17 | ...::m1 | main.rs:13:1:37:1 | mod m1 |
5153
| main.rs:40:9:40:21 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
5254
| main.rs:40:9:40:24 | ...::g | main.rs:23:9:27:9 | fn g |
@@ -58,7 +60,7 @@ resolvePath
5860
| main.rs:61:17:61:19 | Foo | main.rs:59:9:59:21 | struct Foo |
5961
| main.rs:64:13:64:15 | Foo | main.rs:53:5:53:17 | struct Foo |
6062
| main.rs:66:5:66:5 | f | main.rs:55:5:62:5 | fn f |
61-
| main.rs:68:5:68:8 | self | main.rs:1:1:498:2 | SourceFile |
63+
| main.rs:68:5:68:8 | self | main.rs:1:1:499:2 | SourceFile |
6264
| main.rs:68:5:68:11 | ...::i | main.rs:71:1:83:1 | fn i |
6365
| main.rs:74:13:74:15 | Foo | main.rs:48:1:48:13 | struct Foo |
6466
| main.rs:81:17:81:19 | Foo | main.rs:77:9:79:9 | struct Foo |
@@ -72,7 +74,7 @@ resolvePath
7274
| main.rs:87:57:87:66 | ...::g | my2/nested2.rs:7:9:9:9 | fn g |
7375
| main.rs:87:80:87:86 | nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
7476
| main.rs:100:5:100:22 | f_defined_in_macro | main.rs:99:18:99:42 | fn f_defined_in_macro |
75-
| main.rs:117:13:117:17 | super | main.rs:1:1:498:2 | SourceFile |
77+
| main.rs:117:13:117:17 | super | main.rs:1:1:499:2 | SourceFile |
7678
| main.rs:117:13:117:21 | ...::m5 | main.rs:103:1:107:1 | mod m5 |
7779
| main.rs:118:9:118:9 | f | main.rs:104:5:106:5 | fn f |
7880
| main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f |
@@ -127,7 +129,7 @@ resolvePath
127129
| main.rs:274:16:274:16 | T | main.rs:268:7:268:7 | T |
128130
| main.rs:275:14:275:17 | Self | main.rs:266:5:276:5 | trait MyParamTrait |
129131
| main.rs:275:14:275:33 | ...::AssociatedType | main.rs:270:9:270:28 | TypeAlias |
130-
| main.rs:284:13:284:17 | crate | main.rs:1:1:498:2 | SourceFile |
132+
| main.rs:284:13:284:17 | crate | main.rs:1:1:499:2 | SourceFile |
131133
| main.rs:284:13:284:22 | ...::m13 | main.rs:279:1:292:1 | mod m13 |
132134
| main.rs:284:13:284:25 | ...::f | main.rs:280:5:280:17 | fn f |
133135
| main.rs:284:13:284:25 | ...::f | main.rs:280:19:281:19 | struct f |
@@ -218,7 +220,7 @@ resolvePath
218220
| main.rs:479:5:479:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f |
219221
| main.rs:480:5:480:5 | f | my2/nested2.rs:3:9:5:9 | fn f |
220222
| main.rs:481:5:481:5 | g | my2/nested2.rs:7:9:9:9 | fn g |
221-
| main.rs:482:5:482:9 | crate | main.rs:1:1:498:2 | SourceFile |
223+
| main.rs:482:5:482:9 | crate | main.rs:1:1:499:2 | SourceFile |
222224
| main.rs:482:5:482:12 | ...::h | main.rs:50:1:69:1 | fn h |
223225
| main.rs:483:5:483:6 | m1 | main.rs:13:1:37:1 | mod m1 |
224226
| main.rs:483:5:483:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
@@ -253,6 +255,8 @@ resolvePath
253255
| my2/mod.rs:5:5:5:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 |
254256
| my2/mod.rs:5:5:5:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
255257
| my2/mod.rs:5:5:5:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f |
258+
| my2/mod.rs:8:9:8:15 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 |
259+
| my2/mod.rs:8:9:8:24 | ...::nested5 | my2/nested2.rs:13:1:19:1 | mod nested5 |
256260
| my.rs:3:5:3:10 | nested | my.rs:1:1:1:15 | mod nested |
257261
| my.rs:3:5:3:13 | ...::g | my/nested.rs:19:1:22:1 | fn g |
258262
| my.rs:11:5:11:5 | g | my/nested.rs:19:1:22:1 | fn g |

0 commit comments

Comments
 (0)