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 {
109
109
110
110
/** Gets the immediately enclosing module (or source file) of this item. */
111
111
pragma [ nomagic]
112
- ModuleLikeNode getImmediateParentModule ( ) { this = result .getAnItemInScope ( ) }
112
+ ModuleLikeNode getImmediateParentModule ( ) {
113
+ this = result .getAnItemInScope ( )
114
+ or
115
+ result = this .( SourceFileItemNode ) .getSuper ( )
116
+ }
113
117
114
118
pragma [ nomagic]
115
119
private ItemNode getASuccessorRec ( string name ) {
@@ -172,7 +176,7 @@ abstract class ItemNode extends Locatable {
172
176
result = this .getASuccessorRec ( name )
173
177
or
174
178
name = "super" and
175
- if this instanceof Module
179
+ if this instanceof Module or this instanceof SourceFile
176
180
then result = this .getImmediateParentModule ( )
177
181
else result = this .getImmediateParentModule ( ) .getImmediateParentModule ( )
178
182
or
@@ -206,6 +210,14 @@ abstract private class ModuleLikeNode extends ItemNode {
206
210
}
207
211
208
212
private 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
+
209
221
override string getName ( ) { result = "(source file)" }
210
222
211
223
override Namespace getNamespace ( ) {
Original file line number Diff line number Diff line change 1
1
pub fn f ( ) {
2
2
println ! ( "my2/my3/mod.rs::f" ) ;
3
- g ( ) ; // $ MISSING: item=I9
4
- h ( ) ; // $ MISSING: item=I25
3
+ g ( ) ; // $ item=I9
4
+ h ( ) ; // $ item=I25
5
5
} // I200
6
6
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
270
270
| my2/mod.rs:10:9:10:24 | ...::nested7 | my2/nested2.rs:21:1:27:1 | mod nested7 |
271
271
| my2/mod.rs:10:9:10:33 | ...::nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 |
272
272
| 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 |
273
280
| my.rs:3:5:3:10 | nested | my.rs:1:1:1:15 | mod nested |
274
281
| my.rs:3:5:3:13 | ...::g | my/nested.rs:19:1:22:1 | fn g |
275
282
| 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