Skip to content

Commit 07f4845

Browse files
committed
Rust: Assume prelude is always available in path resolution
1 parent 1772193 commit 07f4845

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
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

0 commit comments

Comments
 (0)