File tree Expand file tree Collapse file tree 3 files changed +25
-6
lines changed
test/library-tests/path-resolution Expand file tree Collapse file tree 3 files changed +25
-6
lines changed Original file line number Diff line number Diff line change @@ -109,7 +109,11 @@ abstract class ItemNode extends Locatable {
109109
110110 /** Gets the immediately enclosing module (or source file) of this item. */
111111 pragma [ nomagic]
112- ModuleLikeNode getImmediateParentModule ( ) { this = result .getAnItemInScope ( ) }
112+ ModuleLikeNode getImmediateParentModule ( ) {
113+ this = result .getAnItemInScope ( )
114+ or
115+ result = this .( SourceFileItemNode ) .getSuper ( )
116+ }
113117
114118 pragma [ nomagic]
115119 private ItemNode getASuccessorRec ( string name ) {
@@ -172,7 +176,7 @@ abstract class ItemNode extends Locatable {
172176 result = this .getASuccessorRec ( name )
173177 or
174178 name = "super" and
175- if this instanceof Module
179+ if this instanceof Module or this instanceof SourceFile
176180 then result = this .getImmediateParentModule ( )
177181 else result = this .getImmediateParentModule ( ) .getImmediateParentModule ( )
178182 or
@@ -206,6 +210,14 @@ abstract private class ModuleLikeNode extends ItemNode {
206210}
207211
208212private class SourceFileItemNode extends ModuleLikeNode , SourceFile {
213+ pragma [ nomagic]
214+ ModuleLikeNode getSuper ( ) {
215+ exists ( ModuleItemNode mod |
216+ fileImport ( mod , this ) and
217+ result = mod .getASuccessor ( "super" )
218+ )
219+ }
220+
209221 override string getName ( ) { result = "(source file)" }
210222
211223 override Namespace getNamespace ( ) {
Original file line number Diff line number Diff line change 11pub fn f ( ) {
22 println ! ( "my2/my3/mod.rs::f" ) ;
3- g ( ) ; // $ MISSING: item=I9
4- h ( ) ; // $ MISSING: item=I25
3+ g ( ) ; // $ item=I9
4+ h ( ) ; // $ item=I25
55} // I200
66
7- use super :: super :: h; // $ MISSING: item=I25
8- use super :: g; // $ MISSING: item=I9
7+ use super :: super :: h; // $ item=I25
8+ use super :: g; // $ item=I9
Original file line number Diff line number Diff line change @@ -270,6 +270,13 @@ resolvePath
270270| my2/mod.rs:10:9:10:24 | ...::nested7 | my2/nested2.rs:21:1:27:1 | mod nested7 |
271271| my2/mod.rs:10:9:10:33 | ...::nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 |
272272| my2/mod.rs:10:37:10:40 | self | my2/nested2.rs:22:5:26:5 | mod nested8 |
273+ | my2/my3/mod.rs:3:5:3:5 | g | my2/mod.rs:3:1:6:1 | fn g |
274+ | my2/my3/mod.rs:4:5:4:5 | h | main.rs:50:1:69:1 | fn h |
275+ | my2/my3/mod.rs:7:5:7:9 | super | my2/mod.rs:1:1:12:13 | SourceFile |
276+ | my2/my3/mod.rs:7:5:7:16 | ...::super | main.rs:1:1:501:2 | SourceFile |
277+ | my2/my3/mod.rs:7:5:7:19 | ...::h | main.rs:50:1:69:1 | fn h |
278+ | my2/my3/mod.rs:8:5:8:9 | super | my2/mod.rs:1:1:12:13 | SourceFile |
279+ | my2/my3/mod.rs:8:5:8:12 | ...::g | my2/mod.rs:3:1:6:1 | fn g |
273280| my.rs:3:5:3:10 | nested | my.rs:1:1:1:15 | mod nested |
274281| my.rs:3:5:3:13 | ...::g | my/nested.rs:19:1:22:1 | fn g |
275282| my.rs:11:5:11:5 | g | my/nested.rs:19:1:22:1 | fn g |
You can’t perform that action at this time.
0 commit comments