Skip to content

Commit 1be903c

Browse files
committed
Rust: Add more path resolution tests
1 parent a1b7096 commit 1be903c

File tree

3 files changed

+143
-82
lines changed

3 files changed

+143
-82
lines changed

rust/ql/lib/codeql/rust/elements/internal/PathResolution.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ abstract class ItemNode extends AstNode {
163163
name = "crate" and
164164
result.(SourceFileItemNode).getFile() = this.getFile()
165165
}
166+
167+
/** Gets the location of this item. */
168+
Location getLocation() { result = super.getLocation() }
166169
}
167170

168171
/** A module or a source file. */
@@ -335,6 +338,8 @@ private class TypeParamItemNode extends ItemNode instanceof TypeParam {
335338
override Namespace getNamespace() { result.isType() }
336339

337340
override Visibility getVisibility() { none() }
341+
342+
override Location getLocation() { result = TypeParam.super.getName().getLocation() }
338343
}
339344

340345
/** Holds if `item` has the name `name` and is a top-level item inside `f`. */

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

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,11 @@ mod m16 {
357357
fn g(&self) -> T // $ item=I84
358358
; // I85
359359

360+
fn h(&self) -> T { // $ item=I84
361+
Self::g(&self); // $ item=I85
362+
self.g() // $ MISSING: item=I85
363+
} // I96
364+
360365
const c: T // $ item=I84
361366
; // I94
362367
} // I86
@@ -425,6 +430,8 @@ mod m16 {
425430
>::f(&x); // $ MISSING: item=I93
426431
S::g(&x); // $ item=I92
427432
x.g(); // $ MISSING: item=I92
433+
S::h(&x); // $ MISSING: item=I96
434+
x.h(); // $ MISSING: item=I96
428435
S::c; // $ item=I95
429436
<S // $ item=I90
430437
as Trait1<
@@ -434,6 +441,38 @@ mod m16 {
434441
} // I83
435442
}
436443

444+
mod m17 {
445+
trait MyTrait {
446+
fn f(&self); // I1
447+
} // I2
448+
449+
struct S; // I3
450+
451+
#[rustfmt::skip]
452+
impl MyTrait // $ item=I2
453+
for S { // $ item=I3
454+
fn f(&self) {
455+
println!("M17::MyTrait::f");
456+
} // I4
457+
}
458+
459+
#[rustfmt::skip]
460+
fn g<T: // I5
461+
MyTrait // $ item=I2
462+
>(x: T) { // $ item=I5
463+
x.f(); // $ MISSING: item=I1
464+
T::f(&x); // $ MISSING: item=I1
465+
MyTrait::f(&x); // $ item=I1
466+
} // I6
467+
468+
#[rustfmt::skip]
469+
pub fn f() {
470+
g( // $ item=I6
471+
S // $ item=I3
472+
);
473+
} // I99
474+
}
475+
437476
fn main() {
438477
my::nested::nested1::nested2::f(); // $ item=I4
439478
my::f(); // $ item=I38
@@ -455,4 +494,5 @@ fn main() {
455494
m11::f(); // $ item=I63
456495
m15::f(); // $ item=I75
457496
m16::f(); // $ item=I83
497+
m17::f(); // $ item=I99
458498
}

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

Lines changed: 98 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ mod
1919
| main.rs:279:1:292:1 | mod m13 |
2020
| main.rs:283:5:291:5 | mod m14 |
2121
| main.rs:294:1:348:1 | mod m15 |
22-
| main.rs:350:1:435:1 | mod m16 |
22+
| main.rs:350:1:442:1 | mod m16 |
23+
| main.rs:444:1:474:1 | mod m17 |
2324
| my2/mod.rs:1:1:1:16 | mod nested2 |
2425
| my2/nested2.rs:1:1:11:1 | mod nested3 |
2526
| my2/nested2.rs:2:5:10:5 | mod nested4 |
@@ -45,7 +46,7 @@ resolvePath
4546
| main.rs:30:17:30:21 | super | main.rs:18:5:36:5 | mod m2 |
4647
| main.rs:30:17:30:24 | ...::f | main.rs:19:9:21:9 | fn f |
4748
| main.rs:33:17:33:17 | f | main.rs:19:9:21:9 | fn f |
48-
| main.rs:40:9:40:13 | super | main.rs:1:1:458:2 | SourceFile |
49+
| main.rs:40:9:40:13 | super | main.rs:1:1:498:2 | SourceFile |
4950
| main.rs:40:9:40:17 | ...::m1 | main.rs:13:1:37:1 | mod m1 |
5051
| main.rs:40:9:40:21 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
5152
| main.rs:40:9:40:24 | ...::g | main.rs:23:9:27:9 | fn g |
@@ -57,7 +58,7 @@ resolvePath
5758
| main.rs:61:17:61:19 | Foo | main.rs:59:9:59:21 | struct Foo |
5859
| main.rs:64:13:64:15 | Foo | main.rs:53:5:53:17 | struct Foo |
5960
| main.rs:66:5:66:5 | f | main.rs:55:5:62:5 | fn f |
60-
| main.rs:68:5:68:8 | self | main.rs:1:1:458:2 | SourceFile |
61+
| main.rs:68:5:68:8 | self | main.rs:1:1:498:2 | SourceFile |
6162
| main.rs:68:5:68:11 | ...::i | main.rs:71:1:83:1 | fn i |
6263
| main.rs:74:13:74:15 | Foo | main.rs:48:1:48:13 | struct Foo |
6364
| main.rs:81:17:81:19 | Foo | main.rs:77:9:79:9 | struct Foo |
@@ -71,7 +72,7 @@ resolvePath
7172
| main.rs:87:57:87:66 | ...::g | my2/nested2.rs:7:9:9:9 | fn g |
7273
| main.rs:87:80:87:86 | nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
7374
| main.rs:100:5:100:22 | f_defined_in_macro | main.rs:99:18:99:42 | fn f_defined_in_macro |
74-
| main.rs:117:13:117:17 | super | main.rs:1:1:458:2 | SourceFile |
75+
| main.rs:117:13:117:17 | super | main.rs:1:1:498:2 | SourceFile |
7576
| main.rs:117:13:117:21 | ...::m5 | main.rs:103:1:107:1 | mod m5 |
7677
| main.rs:118:9:118:9 | f | main.rs:104:5:106:5 | fn f |
7778
| main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f |
@@ -126,7 +127,7 @@ resolvePath
126127
| main.rs:274:16:274:16 | T | main.rs:268:7:268:7 | T |
127128
| main.rs:275:14:275:17 | Self | main.rs:266:5:276:5 | trait MyParamTrait |
128129
| main.rs:275:14:275:33 | ...::AssociatedType | main.rs:270:9:270:28 | TypeAlias |
129-
| main.rs:284:13:284:17 | crate | main.rs:1:1:458:2 | SourceFile |
130+
| main.rs:284:13:284:17 | crate | main.rs:1:1:498:2 | SourceFile |
130131
| main.rs:284:13:284:22 | ...::m13 | main.rs:279:1:292:1 | mod m13 |
131132
| main.rs:284:13:284:25 | ...::f | main.rs:280:5:280:17 | fn f |
132133
| main.rs:284:13:284:25 | ...::f | main.rs:280:19:281:19 | struct f |
@@ -151,83 +152,98 @@ resolvePath
151152
| main.rs:345:9:345:12 | ...::g | main.rs:322:9:324:9 | fn g |
152153
| main.rs:355:24:355:24 | T | main.rs:353:7:353:7 | T |
153154
| main.rs:357:24:357:24 | T | main.rs:353:7:353:7 | T |
154-
| main.rs:360:18:360:18 | T | main.rs:353:7:353:7 | T |
155-
| main.rs:368:9:370:9 | Trait1::<...> | main.rs:351:5:362:5 | trait Trait1 |
156-
| main.rs:369:11:369:11 | T | main.rs:366:7:366:7 | T |
157-
| main.rs:371:24:371:24 | T | main.rs:366:7:366:7 | T |
158-
| main.rs:373:13:373:16 | Self | main.rs:364:5:377:5 | trait Trait2 |
159-
| main.rs:373:13:373:19 | ...::g | main.rs:357:9:358:9 | fn g |
160-
| main.rs:375:13:375:16 | Self | main.rs:364:5:377:5 | trait Trait2 |
161-
| main.rs:375:13:375:19 | ...::c | main.rs:360:9:361:9 | Const |
162-
| main.rs:382:10:384:5 | Trait1::<...> | main.rs:351:5:362:5 | trait Trait1 |
163-
| main.rs:383:7:383:7 | S | main.rs:379:5:379:13 | struct S |
164-
| main.rs:385:11:385:11 | S | main.rs:379:5:379:13 | struct S |
165-
| main.rs:386:24:386:24 | S | main.rs:379:5:379:13 | struct S |
166-
| main.rs:388:13:388:16 | Self | main.rs:381:5:399:5 | impl Trait1::<...> for S { ... } |
167-
| main.rs:388:13:388:19 | ...::g | main.rs:392:9:395:9 | fn g |
168-
| main.rs:392:24:392:24 | S | main.rs:379:5:379:13 | struct S |
169-
| main.rs:394:13:394:16 | Self | main.rs:381:5:399:5 | impl Trait1::<...> for S { ... } |
170-
| main.rs:394:13:394:19 | ...::c | main.rs:397:9:398:9 | Const |
171-
| main.rs:397:18:397:18 | S | main.rs:379:5:379:13 | struct S |
172-
| main.rs:397:22:397:22 | S | main.rs:379:5:379:13 | struct S |
173-
| main.rs:402:10:404:5 | Trait2::<...> | main.rs:364:5:377:5 | trait Trait2 |
174-
| main.rs:403:7:403:7 | S | main.rs:379:5:379:13 | struct S |
175-
| main.rs:405:11:405:11 | S | main.rs:379:5:379:13 | struct S |
176-
| main.rs:406:24:406:24 | S | main.rs:379:5:379:13 | struct S |
177-
| main.rs:408:13:408:16 | Self | main.rs:401:5:410:5 | impl Trait2::<...> for S { ... } |
178-
| main.rs:415:17:415:17 | S | main.rs:379:5:379:13 | struct S |
179-
| main.rs:416:10:416:10 | S | main.rs:379:5:379:13 | struct S |
180-
| main.rs:416:10:416:10 | S | main.rs:379:5:379:13 | struct S |
181-
| main.rs:421:10:421:10 | S | main.rs:379:5:379:13 | struct S |
182-
| main.rs:421:10:421:10 | S | main.rs:379:5:379:13 | struct S |
183-
| main.rs:426:9:426:9 | S | main.rs:379:5:379:13 | struct S |
184-
| main.rs:426:9:426:12 | ...::g | main.rs:392:9:395:9 | fn g |
185-
| main.rs:428:9:428:9 | S | main.rs:379:5:379:13 | struct S |
186-
| main.rs:428:9:428:12 | ...::c | main.rs:397:9:398:9 | Const |
187-
| main.rs:429:10:429:10 | S | main.rs:379:5:379:13 | struct S |
188-
| main.rs:429:10:429:10 | S | main.rs:379:5:379:13 | struct S |
189-
| main.rs:438:5:438:6 | my | main.rs:1:1:1:7 | mod my |
190-
| main.rs:438:5:438:14 | ...::nested | my.rs:1:1:1:15 | mod nested |
191-
| main.rs:438:5:438:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 |
192-
| main.rs:438:5:438:32 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 |
193-
| main.rs:438:5:438:35 | ...::f | my/nested.rs:3:9:5:9 | fn f |
194-
| main.rs:439:5:439:6 | my | main.rs:1:1:1:7 | mod my |
195-
| main.rs:439:5:439:9 | ...::f | my.rs:5:1:7:1 | fn f |
196-
| main.rs:440:5:440:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 |
197-
| main.rs:440:5:440:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 |
198-
| main.rs:440:5:440:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
199-
| main.rs:440:5:440:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f |
200-
| main.rs:441:5:441:5 | f | my2/nested2.rs:3:9:5:9 | fn f |
201-
| main.rs:442:5:442:5 | g | my2/nested2.rs:7:9:9:9 | fn g |
202-
| main.rs:443:5:443:9 | crate | main.rs:1:1:458:2 | SourceFile |
203-
| main.rs:443:5:443:12 | ...::h | main.rs:50:1:69:1 | fn h |
204-
| main.rs:444:5:444:6 | m1 | main.rs:13:1:37:1 | mod m1 |
205-
| main.rs:444:5:444:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
206-
| main.rs:444:5:444:13 | ...::g | main.rs:23:9:27:9 | fn g |
207-
| main.rs:445:5:445:6 | m1 | main.rs:13:1:37:1 | mod m1 |
208-
| main.rs:445:5:445:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
209-
| main.rs:445:5:445:14 | ...::m3 | main.rs:29:9:35:9 | mod m3 |
210-
| main.rs:445:5:445:17 | ...::h | main.rs:30:27:34:13 | fn h |
211-
| main.rs:446:5:446:6 | m4 | main.rs:39:1:46:1 | mod m4 |
212-
| main.rs:446:5:446:9 | ...::i | main.rs:42:5:45:5 | fn i |
213-
| main.rs:447:5:447:5 | h | main.rs:50:1:69:1 | fn h |
214-
| main.rs:448:5:448:11 | f_alias | my2/nested2.rs:3:9:5:9 | fn f |
215-
| main.rs:449:5:449:11 | g_alias | my2/nested2.rs:7:9:9:9 | fn g |
216-
| main.rs:450:5:450:5 | j | main.rs:97:1:101:1 | fn j |
217-
| main.rs:451:5:451:6 | m6 | main.rs:109:1:120:1 | mod m6 |
218-
| main.rs:451:5:451:9 | ...::g | main.rs:114:5:119:5 | fn g |
219-
| main.rs:452:5:452:6 | m7 | main.rs:122:1:137:1 | mod m7 |
220-
| main.rs:452:5:452:9 | ...::f | main.rs:129:5:136:5 | fn f |
221-
| main.rs:453:5:453:6 | m8 | main.rs:139:1:193:1 | mod m8 |
222-
| main.rs:453:5:453:9 | ...::g | main.rs:177:5:192:5 | fn g |
223-
| main.rs:454:5:454:6 | m9 | main.rs:195:1:203:1 | mod m9 |
224-
| main.rs:454:5:454:9 | ...::f | main.rs:198:5:202:5 | fn f |
225-
| main.rs:455:5:455:7 | m11 | main.rs:226:1:263:1 | mod m11 |
226-
| main.rs:455:5:455:10 | ...::f | main.rs:231:5:234:5 | fn f |
227-
| main.rs:456:5:456:7 | m15 | main.rs:294:1:348:1 | mod m15 |
228-
| main.rs:456:5:456:10 | ...::f | main.rs:335:5:347:5 | fn f |
229-
| main.rs:457:5:457:7 | m16 | main.rs:350:1:435:1 | mod m16 |
230-
| main.rs:457:5:457:10 | ...::f | main.rs:412:5:434:5 | fn f |
155+
| main.rs:360:24:360:24 | T | main.rs:353:7:353:7 | T |
156+
| main.rs:361:13:361:16 | Self | main.rs:351:5:367:5 | trait Trait1 |
157+
| main.rs:361:13:361:19 | ...::g | main.rs:357:9:358:9 | fn g |
158+
| main.rs:365:18:365:18 | T | main.rs:353:7:353:7 | T |
159+
| main.rs:373:9:375:9 | Trait1::<...> | main.rs:351:5:367:5 | trait Trait1 |
160+
| main.rs:374:11:374:11 | T | main.rs:371:7:371:7 | T |
161+
| main.rs:376:24:376:24 | T | main.rs:371:7:371:7 | T |
162+
| main.rs:378:13:378:16 | Self | main.rs:369:5:382:5 | trait Trait2 |
163+
| main.rs:378:13:378:19 | ...::g | main.rs:357:9:358:9 | fn g |
164+
| main.rs:380:13:380:16 | Self | main.rs:369:5:382:5 | trait Trait2 |
165+
| main.rs:380:13:380:19 | ...::c | main.rs:365:9:366:9 | Const |
166+
| main.rs:387:10:389:5 | Trait1::<...> | main.rs:351:5:367:5 | trait Trait1 |
167+
| main.rs:388:7:388:7 | S | main.rs:384:5:384:13 | struct S |
168+
| main.rs:390:11:390:11 | S | main.rs:384:5:384:13 | struct S |
169+
| main.rs:391:24:391:24 | S | main.rs:384:5:384:13 | struct S |
170+
| main.rs:393:13:393:16 | Self | main.rs:386:5:404:5 | impl Trait1::<...> for S { ... } |
171+
| main.rs:393:13:393:19 | ...::g | main.rs:397:9:400:9 | fn g |
172+
| main.rs:397:24:397:24 | S | main.rs:384:5:384:13 | struct S |
173+
| main.rs:399:13:399:16 | Self | main.rs:386:5:404:5 | impl Trait1::<...> for S { ... } |
174+
| main.rs:399:13:399:19 | ...::c | main.rs:402:9:403:9 | Const |
175+
| main.rs:402:18:402:18 | S | main.rs:384:5:384:13 | struct S |
176+
| main.rs:402:22:402:22 | S | main.rs:384:5:384:13 | struct S |
177+
| main.rs:407:10:409:5 | Trait2::<...> | main.rs:369:5:382:5 | trait Trait2 |
178+
| main.rs:408:7:408:7 | S | main.rs:384:5:384:13 | struct S |
179+
| main.rs:410:11:410:11 | S | main.rs:384:5:384:13 | struct S |
180+
| main.rs:411:24:411:24 | S | main.rs:384:5:384:13 | struct S |
181+
| main.rs:413:13:413:16 | Self | main.rs:406:5:415:5 | impl Trait2::<...> for S { ... } |
182+
| main.rs:420:17:420:17 | S | main.rs:384:5:384:13 | struct S |
183+
| main.rs:421:10:421:10 | S | main.rs:384:5:384:13 | struct S |
184+
| main.rs:421:10:421:10 | S | main.rs:384:5:384:13 | struct S |
185+
| main.rs:426:10:426:10 | S | main.rs:384:5:384:13 | struct S |
186+
| main.rs:426:10:426:10 | S | main.rs:384:5:384:13 | struct S |
187+
| main.rs:431:9:431:9 | S | main.rs:384:5:384:13 | struct S |
188+
| main.rs:431:9:431:12 | ...::g | main.rs:397:9:400:9 | fn g |
189+
| main.rs:433:9:433:9 | S | main.rs:384:5:384:13 | struct S |
190+
| main.rs:435:9:435:9 | S | main.rs:384:5:384:13 | struct S |
191+
| main.rs:435:9:435:12 | ...::c | main.rs:402:9:403:9 | Const |
192+
| main.rs:436:10:436:10 | S | main.rs:384:5:384:13 | struct S |
193+
| main.rs:436:10:436:10 | S | main.rs:384:5:384:13 | struct S |
194+
| main.rs:452:10:452:16 | MyTrait | main.rs:445:5:447:5 | trait MyTrait |
195+
| main.rs:453:9:453:9 | S | main.rs:449:5:449:13 | struct S |
196+
| main.rs:461:7:461:13 | MyTrait | main.rs:445:5:447:5 | trait MyTrait |
197+
| main.rs:462:10:462:10 | T | main.rs:460:10:460:10 | T |
198+
| main.rs:464:9:464:9 | T | main.rs:460:10:460:10 | T |
199+
| main.rs:465:9:465:15 | MyTrait | main.rs:445:5:447:5 | trait MyTrait |
200+
| main.rs:465:9:465:18 | ...::f | main.rs:446:9:446:20 | fn f |
201+
| main.rs:470:9:470:9 | g | main.rs:459:5:466:5 | fn g |
202+
| main.rs:471:11:471:11 | S | main.rs:449:5:449:13 | struct S |
203+
| main.rs:477:5:477:6 | my | main.rs:1:1:1:7 | mod my |
204+
| main.rs:477:5:477:14 | ...::nested | my.rs:1:1:1:15 | mod nested |
205+
| main.rs:477:5:477:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 |
206+
| main.rs:477:5:477:32 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 |
207+
| main.rs:477:5:477:35 | ...::f | my/nested.rs:3:9:5:9 | fn f |
208+
| main.rs:478:5:478:6 | my | main.rs:1:1:1:7 | mod my |
209+
| main.rs:478:5:478:9 | ...::f | my.rs:5:1:7:1 | fn f |
210+
| main.rs:479:5:479:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 |
211+
| main.rs:479:5:479:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 |
212+
| main.rs:479:5:479:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |
213+
| main.rs:479:5:479:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f |
214+
| main.rs:480:5:480:5 | f | my2/nested2.rs:3:9:5:9 | fn f |
215+
| main.rs:481:5:481:5 | g | my2/nested2.rs:7:9:9:9 | fn g |
216+
| main.rs:482:5:482:9 | crate | main.rs:1:1:498:2 | SourceFile |
217+
| main.rs:482:5:482:12 | ...::h | main.rs:50:1:69:1 | fn h |
218+
| main.rs:483:5:483:6 | m1 | main.rs:13:1:37:1 | mod m1 |
219+
| main.rs:483:5:483:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
220+
| main.rs:483:5:483:13 | ...::g | main.rs:23:9:27:9 | fn g |
221+
| main.rs:484:5:484:6 | m1 | main.rs:13:1:37:1 | mod m1 |
222+
| main.rs:484:5:484:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 |
223+
| main.rs:484:5:484:14 | ...::m3 | main.rs:29:9:35:9 | mod m3 |
224+
| main.rs:484:5:484:17 | ...::h | main.rs:30:27:34:13 | fn h |
225+
| main.rs:485:5:485:6 | m4 | main.rs:39:1:46:1 | mod m4 |
226+
| main.rs:485:5:485:9 | ...::i | main.rs:42:5:45:5 | fn i |
227+
| main.rs:486:5:486:5 | h | main.rs:50:1:69:1 | fn h |
228+
| main.rs:487:5:487:11 | f_alias | my2/nested2.rs:3:9:5:9 | fn f |
229+
| main.rs:488:5:488:11 | g_alias | my2/nested2.rs:7:9:9:9 | fn g |
230+
| main.rs:489:5:489:5 | j | main.rs:97:1:101:1 | fn j |
231+
| main.rs:490:5:490:6 | m6 | main.rs:109:1:120:1 | mod m6 |
232+
| main.rs:490:5:490:9 | ...::g | main.rs:114:5:119:5 | fn g |
233+
| main.rs:491:5:491:6 | m7 | main.rs:122:1:137:1 | mod m7 |
234+
| main.rs:491:5:491:9 | ...::f | main.rs:129:5:136:5 | fn f |
235+
| main.rs:492:5:492:6 | m8 | main.rs:139:1:193:1 | mod m8 |
236+
| main.rs:492:5:492:9 | ...::g | main.rs:177:5:192:5 | fn g |
237+
| main.rs:493:5:493:6 | m9 | main.rs:195:1:203:1 | mod m9 |
238+
| main.rs:493:5:493:9 | ...::f | main.rs:198:5:202:5 | fn f |
239+
| main.rs:494:5:494:7 | m11 | main.rs:226:1:263:1 | mod m11 |
240+
| main.rs:494:5:494:10 | ...::f | main.rs:231:5:234:5 | fn f |
241+
| main.rs:495:5:495:7 | m15 | main.rs:294:1:348:1 | mod m15 |
242+
| main.rs:495:5:495:10 | ...::f | main.rs:335:5:347:5 | fn f |
243+
| main.rs:496:5:496:7 | m16 | main.rs:350:1:442:1 | mod m16 |
244+
| main.rs:496:5:496:10 | ...::f | main.rs:417:5:441:5 | fn f |
245+
| main.rs:497:5:497:7 | m17 | main.rs:444:1:474:1 | mod m17 |
246+
| main.rs:497:5:497:10 | ...::f | main.rs:468:5:473:5 | fn f |
231247
| my2/mod.rs:5:5:5:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 |
232248
| my2/mod.rs:5:5:5:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 |
233249
| my2/mod.rs:5:5:5:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 |

0 commit comments

Comments
 (0)