Skip to content

Commit bd1f46b

Browse files
committed
Rust: Assume prelude is always available in path resolution
1 parent a791640 commit bd1f46b

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ abstract class ItemNode extends Locatable {
194194
Stages::PathResolutionStage::ref() and
195195
result = this.getASuccessorRec(name)
196196
or
197-
preludeEdge(this, name, result) and not declares(this, _, name)
197+
preludeEdge(this, name, result)
198198
or
199199
this instanceof SourceFile and
200200
builtin(name, result)
@@ -1505,12 +1505,8 @@ private predicate externCrateEdge(ExternCrateItemNode ec, string name, CrateItem
15051505
*/
15061506
pragma[nomagic]
15071507
private predicate preludeEdge(SourceFile f, string name, ItemNode i) {
1508+
not declares(f, _, name) and
15081509
exists(Crate stdOrCore, ModuleLikeNode mod, ModuleItemNode prelude, ModuleItemNode rust |
1509-
f = any(Crate c0 | stdOrCore = c0.getDependency(_) or stdOrCore = c0).getASourceFile()
1510-
or
1511-
// Give builtin files access to the prelude
1512-
f instanceof BuiltinSourceFile
1513-
|
15141510
stdOrCore.getName() = ["std", "core"] and
15151511
mod = stdOrCore.getSourceFile() and
15161512
prelude = mod.getASuccessorRec("prelude") and
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
multipleCallTargets
22
| main.rs:85:19:85:40 | ...::from(...) |
33
| main.rs:102:19:102:40 | ...::from(...) |
4-
| main.rs:374:5:374:27 | ... .add_assign(...) |
5-
| main.rs:459:9:459:23 | z.add_assign(...) |

0 commit comments

Comments
 (0)