Skip to content

Commit 4fb4bfd

Browse files
committed
Rust: Add path resolution test for extern crate
1 parent 76c6d71 commit 4fb4bfd

File tree

2 files changed

+73
-71
lines changed

2 files changed

+73
-71
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ mod m13 {
285285
pub struct f {} // I72
286286

287287
mod m14 {
288-
use crate::m13::f; // $ item=I71 item=I72
288+
use zelf::m13::f; // $ item=I71 item=I72
289289

290290
#[rustfmt::skip]
291291
fn g(x: f) { // $ item=I72
@@ -621,6 +621,8 @@ mod m24 {
621621
} // I121
622622
}
623623

624+
extern crate self as zelf;
625+
624626
fn main() {
625627
my::nested::nested1::nested2::f(); // $ item=I4
626628
my::f(); // $ item=I38
@@ -650,4 +652,5 @@ fn main() {
650652
m18::m19::m20::g(); // $ item=I103
651653
m23::f(); // $ item=I108
652654
m24::f(); // $ item=I121
655+
zelf::h(); // $ item=I25
653656
}

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

Lines changed: 69 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ resolvePath
6161
| main.rs:30:17:30:21 | super | main.rs:18:5:36:5 | mod m2 |
6262
| main.rs:30:17:30:24 | ...::f | main.rs:19:9:21:9 | fn f |
6363
| main.rs:33:17:33:17 | f | main.rs:19:9:21:9 | fn f |
64-
| main.rs:40:9:40:13 | super | main.rs:1:1:653:2 | SourceFile |
64+
| main.rs:40:9:40:13 | super | main.rs:1:1:656:2 | SourceFile |
6565
| main.rs:40:9:40:17 | ...::m1 | main.rs:13:1:37:1 | mod m1 |
6666
| main.rs:40:9:40:21 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
6767
| main.rs:40:9:40:24 | ...::g | main.rs:23:9:27:9 | fn g |
@@ -73,7 +73,7 @@ resolvePath
7373
| main.rs:61:17:61:19 | Foo | main.rs:59:9:59:21 | struct Foo |
7474
| main.rs:64:13:64:15 | Foo | main.rs:53:5:53:17 | struct Foo |
7575
| main.rs:66:5:66:5 | f | main.rs:55:5:62:5 | fn f |
76-
| main.rs:68:5:68:8 | self | main.rs:1:1:653:2 | SourceFile |
76+
| main.rs:68:5:68:8 | self | main.rs:1:1:656:2 | SourceFile |
7777
| main.rs:68:5:68:11 | ...::i | main.rs:71:1:83:1 | fn i |
7878
| main.rs:74:13:74:15 | Foo | main.rs:48:1:48:13 | struct Foo |
7979
| main.rs:78:16:78:18 | i32 | {EXTERNAL LOCATION} | struct i32 |
@@ -88,7 +88,7 @@ resolvePath
8888
| main.rs:87:57:87:66 | ...::g | my2/nested2.rs:7:9:9:9 | fn g |
8989
| main.rs:87:80:87:86 | nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
9090
| main.rs:100:5:100:22 | f_defined_in_macro | main.rs:99:18:99:42 | fn f_defined_in_macro |
91-
| main.rs:117:13:117:17 | super | main.rs:1:1:653:2 | SourceFile |
91+
| main.rs:117:13:117:17 | super | main.rs:1:1:656:2 | SourceFile |
9292
| main.rs:117:13:117:21 | ...::m5 | main.rs:103:1:107:1 | mod m5 |
9393
| main.rs:118:9:118:9 | f | main.rs:104:5:106:5 | fn f |
9494
| main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f |
@@ -145,13 +145,6 @@ resolvePath
145145
| main.rs:278:16:278:16 | T | main.rs:272:7:272:7 | T |
146146
| main.rs:279:14:279:17 | Self | main.rs:270:5:280:5 | trait MyParamTrait |
147147
| main.rs:279:14:279:33 | ...::AssociatedType | main.rs:274:9:274:28 | type AssociatedType |
148-
| main.rs:288:13:288:17 | crate | main.rs:0:0:0:0 | Crate([email protected]) |
149-
| main.rs:288:13:288:22 | ...::m13 | main.rs:283:1:296:1 | mod m13 |
150-
| main.rs:288:13:288:25 | ...::f | main.rs:284:5:284:17 | fn f |
151-
| main.rs:288:13:288:25 | ...::f | main.rs:284:19:285:19 | struct f |
152-
| main.rs:291:17:291:17 | f | main.rs:284:19:285:19 | struct f |
153-
| main.rs:292:21:292:21 | f | main.rs:284:19:285:19 | struct f |
154-
| main.rs:293:13:293:13 | f | main.rs:284:5:284:17 | fn f |
155148
| main.rs:307:9:307:14 | Trait1 | main.rs:299:5:303:5 | trait Trait1 |
156149
| main.rs:310:13:310:16 | Self | main.rs:305:5:313:5 | trait Trait2 |
157150
| main.rs:310:13:310:19 | ...::g | main.rs:302:9:302:20 | fn g |
@@ -266,65 +259,65 @@ resolvePath
266259
| main.rs:620:9:620:36 | GenericStruct::<...> | main.rs:563:5:566:5 | struct GenericStruct |
267260
| main.rs:620:9:620:47 | ...::call_both | main.rs:586:9:589:9 | fn call_both |
268261
| main.rs:620:25:620:35 | Implementor | main.rs:592:5:592:23 | struct Implementor |
269-
| main.rs:625:5:625:6 | my | main.rs:1:1:1:7 | mod my |
270-
| main.rs:625:5:625:14 | ...::nested | my.rs:1:1:1:15 | mod nested |
271-
| main.rs:625:5:625:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 |
272-
| main.rs:625:5:625:32 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 |
273-
| main.rs:625:5:625:35 | ...::f | my/nested.rs:3:9:5:9 | fn f |
274-
| main.rs:626:5:626:6 | my | main.rs:1:1:1:7 | mod my |
275-
| main.rs:626:5:626:9 | ...::f | my.rs:5:1:7:1 | fn f |
276-
| main.rs:627:5:627:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 |
277-
| main.rs:627:5:627:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 |
278-
| main.rs:627:5:627:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
279-
| main.rs:627:5:627:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f |
280-
| main.rs:628:5:628:5 | f | my2/nested2.rs:3:9:5:9 | fn f |
281-
| main.rs:629:5:629:5 | g | my2/nested2.rs:7:9:9:9 | fn g |
282-
| main.rs:630:5:630:9 | crate | main.rs:0:0:0:0 | Crate([email protected]) |
283-
| main.rs:630:5:630:12 | ...::h | main.rs:50:1:69:1 | fn h |
284-
| main.rs:631:5:631:6 | m1 | main.rs:13:1:37:1 | mod m1 |
285-
| main.rs:631:5:631:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
286-
| main.rs:631:5:631:13 | ...::g | main.rs:23:9:27:9 | fn g |
287-
| main.rs:632:5:632:6 | m1 | main.rs:13:1:37:1 | mod m1 |
288-
| main.rs:632:5:632:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
289-
| main.rs:632:5:632:14 | ...::m3 | main.rs:29:9:35:9 | mod m3 |
290-
| main.rs:632:5:632:17 | ...::h | main.rs:30:27:34:13 | fn h |
291-
| main.rs:633:5:633:6 | m4 | main.rs:39:1:46:1 | mod m4 |
292-
| main.rs:633:5:633:9 | ...::i | main.rs:42:5:45:5 | fn i |
293-
| main.rs:634:5:634:5 | h | main.rs:50:1:69:1 | fn h |
294-
| main.rs:635:5:635:11 | f_alias | my2/nested2.rs:3:9:5:9 | fn f |
295-
| main.rs:636:5:636:11 | g_alias | my2/nested2.rs:7:9:9:9 | fn g |
296-
| main.rs:637:5:637:5 | j | main.rs:97:1:101:1 | fn j |
297-
| main.rs:638:5:638:6 | m6 | main.rs:109:1:120:1 | mod m6 |
298-
| main.rs:638:5:638:9 | ...::g | main.rs:114:5:119:5 | fn g |
299-
| main.rs:639:5:639:6 | m7 | main.rs:122:1:141:1 | mod m7 |
300-
| main.rs:639:5:639:9 | ...::f | main.rs:133:5:140:5 | fn f |
301-
| main.rs:640:5:640:6 | m8 | main.rs:143:1:197:1 | mod m8 |
302-
| main.rs:640:5:640:9 | ...::g | main.rs:181:5:196:5 | fn g |
303-
| main.rs:641:5:641:6 | m9 | main.rs:199:1:207:1 | mod m9 |
304-
| main.rs:641:5:641:9 | ...::f | main.rs:202:5:206:5 | fn f |
305-
| main.rs:642:5:642:7 | m11 | main.rs:230:1:267:1 | mod m11 |
306-
| main.rs:642:5:642:10 | ...::f | main.rs:235:5:238:5 | fn f |
307-
| main.rs:643:5:643:7 | m15 | main.rs:298:1:352:1 | mod m15 |
308-
| main.rs:643:5:643:10 | ...::f | main.rs:339:5:351:5 | fn f |
309-
| main.rs:644:5:644:7 | m16 | main.rs:354:1:446:1 | mod m16 |
310-
| main.rs:644:5:644:10 | ...::f | main.rs:421:5:445:5 | fn f |
311-
| main.rs:645:5:645:7 | m17 | main.rs:448:1:478:1 | mod m17 |
312-
| main.rs:645:5:645:10 | ...::f | main.rs:472:5:477:5 | fn f |
313-
| main.rs:646:5:646:11 | nested6 | my2/nested2.rs:14:5:18:5 | mod nested6 |
314-
| main.rs:646:5:646:14 | ...::f | my2/nested2.rs:15:9:17:9 | fn f |
315-
| main.rs:647:5:647:11 | nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 |
316-
| main.rs:647:5:647:14 | ...::f | my2/nested2.rs:23:9:25:9 | fn f |
317-
| main.rs:648:5:648:7 | my3 | my2/mod.rs:12:1:12:12 | mod my3 |
318-
| main.rs:648:5:648:10 | ...::f | my2/my3/mod.rs:1:1:5:1 | fn f |
319-
| main.rs:649:5:649:12 | nested_f | my/my4/my5/mod.rs:1:1:3:1 | fn f |
320-
| main.rs:650:5:650:7 | m18 | main.rs:480:1:498:1 | mod m18 |
321-
| main.rs:650:5:650:12 | ...::m19 | main.rs:485:5:497:5 | mod m19 |
322-
| main.rs:650:5:650:17 | ...::m20 | main.rs:490:9:496:9 | mod m20 |
323-
| main.rs:650:5:650:20 | ...::g | main.rs:491:13:495:13 | fn g |
324-
| main.rs:651:5:651:7 | m23 | main.rs:527:1:552:1 | mod m23 |
325-
| main.rs:651:5:651:10 | ...::f | main.rs:547:5:551:5 | fn f |
326-
| main.rs:652:5:652:7 | m24 | main.rs:554:1:622:1 | mod m24 |
327-
| main.rs:652:5:652:10 | ...::f | main.rs:608:5:621:5 | fn f |
262+
| main.rs:627:5:627:6 | my | main.rs:1:1:1:7 | mod my |
263+
| main.rs:627:5:627:14 | ...::nested | my.rs:1:1:1:15 | mod nested |
264+
| main.rs:627:5:627:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 |
265+
| main.rs:627:5:627:32 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 |
266+
| main.rs:627:5:627:35 | ...::f | my/nested.rs:3:9:5:9 | fn f |
267+
| main.rs:628:5:628:6 | my | main.rs:1:1:1:7 | mod my |
268+
| main.rs:628:5:628:9 | ...::f | my.rs:5:1:7:1 | fn f |
269+
| main.rs:629:5:629:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 |
270+
| main.rs:629:5:629:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 |
271+
| main.rs:629:5:629:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
272+
| main.rs:629:5:629:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f |
273+
| main.rs:630:5:630:5 | f | my2/nested2.rs:3:9:5:9 | fn f |
274+
| main.rs:631:5:631:5 | g | my2/nested2.rs:7:9:9:9 | fn g |
275+
| main.rs:632:5:632:9 | crate | main.rs:0:0:0:0 | Crate([email protected]) |
276+
| main.rs:632:5:632:12 | ...::h | main.rs:50:1:69:1 | fn h |
277+
| main.rs:633:5:633:6 | m1 | main.rs:13:1:37:1 | mod m1 |
278+
| main.rs:633:5:633:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
279+
| main.rs:633:5:633:13 | ...::g | main.rs:23:9:27:9 | fn g |
280+
| main.rs:634:5:634:6 | m1 | main.rs:13:1:37:1 | mod m1 |
281+
| main.rs:634:5:634:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
282+
| main.rs:634:5:634:14 | ...::m3 | main.rs:29:9:35:9 | mod m3 |
283+
| main.rs:634:5:634:17 | ...::h | main.rs:30:27:34:13 | fn h |
284+
| main.rs:635:5:635:6 | m4 | main.rs:39:1:46:1 | mod m4 |
285+
| main.rs:635:5:635:9 | ...::i | main.rs:42:5:45:5 | fn i |
286+
| main.rs:636:5:636:5 | h | main.rs:50:1:69:1 | fn h |
287+
| main.rs:637:5:637:11 | f_alias | my2/nested2.rs:3:9:5:9 | fn f |
288+
| main.rs:638:5:638:11 | g_alias | my2/nested2.rs:7:9:9:9 | fn g |
289+
| main.rs:639:5:639:5 | j | main.rs:97:1:101:1 | fn j |
290+
| main.rs:640:5:640:6 | m6 | main.rs:109:1:120:1 | mod m6 |
291+
| main.rs:640:5:640:9 | ...::g | main.rs:114:5:119:5 | fn g |
292+
| main.rs:641:5:641:6 | m7 | main.rs:122:1:141:1 | mod m7 |
293+
| main.rs:641:5:641:9 | ...::f | main.rs:133:5:140:5 | fn f |
294+
| main.rs:642:5:642:6 | m8 | main.rs:143:1:197:1 | mod m8 |
295+
| main.rs:642:5:642:9 | ...::g | main.rs:181:5:196:5 | fn g |
296+
| main.rs:643:5:643:6 | m9 | main.rs:199:1:207:1 | mod m9 |
297+
| main.rs:643:5:643:9 | ...::f | main.rs:202:5:206:5 | fn f |
298+
| main.rs:644:5:644:7 | m11 | main.rs:230:1:267:1 | mod m11 |
299+
| main.rs:644:5:644:10 | ...::f | main.rs:235:5:238:5 | fn f |
300+
| main.rs:645:5:645:7 | m15 | main.rs:298:1:352:1 | mod m15 |
301+
| main.rs:645:5:645:10 | ...::f | main.rs:339:5:351:5 | fn f |
302+
| main.rs:646:5:646:7 | m16 | main.rs:354:1:446:1 | mod m16 |
303+
| main.rs:646:5:646:10 | ...::f | main.rs:421:5:445:5 | fn f |
304+
| main.rs:647:5:647:7 | m17 | main.rs:448:1:478:1 | mod m17 |
305+
| main.rs:647:5:647:10 | ...::f | main.rs:472:5:477:5 | fn f |
306+
| main.rs:648:5:648:11 | nested6 | my2/nested2.rs:14:5:18:5 | mod nested6 |
307+
| main.rs:648:5:648:14 | ...::f | my2/nested2.rs:15:9:17:9 | fn f |
308+
| main.rs:649:5:649:11 | nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 |
309+
| main.rs:649:5:649:14 | ...::f | my2/nested2.rs:23:9:25:9 | fn f |
310+
| main.rs:650:5:650:7 | my3 | my2/mod.rs:12:1:12:12 | mod my3 |
311+
| main.rs:650:5:650:10 | ...::f | my2/my3/mod.rs:1:1:5:1 | fn f |
312+
| main.rs:651:5:651:12 | nested_f | my/my4/my5/mod.rs:1:1:3:1 | fn f |
313+
| main.rs:652:5:652:7 | m18 | main.rs:480:1:498:1 | mod m18 |
314+
| main.rs:652:5:652:12 | ...::m19 | main.rs:485:5:497:5 | mod m19 |
315+
| main.rs:652:5:652:17 | ...::m20 | main.rs:490:9:496:9 | mod m20 |
316+
| main.rs:652:5:652:20 | ...::g | main.rs:491:13:495:13 | fn g |
317+
| main.rs:653:5:653:7 | m23 | main.rs:527:1:552:1 | mod m23 |
318+
| main.rs:653:5:653:10 | ...::f | main.rs:547:5:551:5 | fn f |
319+
| main.rs:654:5:654:7 | m24 | main.rs:554:1:622:1 | mod m24 |
320+
| main.rs:654:5:654:10 | ...::f | main.rs:608:5:621:5 | fn f |
328321
| my2/mod.rs:5:5:5:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 |
329322
| my2/mod.rs:5:5:5:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 |
330323
| my2/mod.rs:5:5:5:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
@@ -340,7 +333,7 @@ resolvePath
340333
| my2/my3/mod.rs:3:5:3:5 | g | my2/mod.rs:3:1:6:1 | fn g |
341334
| my2/my3/mod.rs:4:5:4:5 | h | main.rs:50:1:69:1 | fn h |
342335
| my2/my3/mod.rs:7:5:7:9 | super | my2/mod.rs:1:1:17:30 | SourceFile |
343-
| my2/my3/mod.rs:7:5:7:16 | ...::super | main.rs:1:1:653:2 | SourceFile |
336+
| my2/my3/mod.rs:7:5:7:16 | ...::super | main.rs:1:1:656:2 | SourceFile |
344337
| my2/my3/mod.rs:7:5:7:19 | ...::h | main.rs:50:1:69:1 | fn h |
345338
| my2/my3/mod.rs:8:5:8:9 | super | my2/mod.rs:1:1:17:30 | SourceFile |
346339
| my2/my3/mod.rs:8:5:8:12 | ...::g | my2/mod.rs:3:1:6:1 | fn g |
@@ -367,3 +360,9 @@ resolvePath
367360
| my/nested.rs:21:5:21:20 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 |
368361
| my/nested.rs:21:5:21:23 | ...::f | my/nested.rs:3:9:5:9 | fn f |
369362
testFailures
363+
| main.rs:288:27:288:48 | //... | Missing result: item=I71 |
364+
| main.rs:288:27:288:48 | //... | Missing result: item=I72 |
365+
| main.rs:291:22:291:34 | //... | Missing result: item=I72 |
366+
| main.rs:292:27:292:39 | //... | Missing result: item=I72 |
367+
| main.rs:293:18:293:30 | //... | Missing result: item=I71 |
368+
| main.rs:655:16:655:28 | //... | Missing result: item=I25 |

0 commit comments

Comments
 (0)