Skip to content

Commit 9025264

Browse files
committed
Rust: use getADescendant instead of getAnItem
This should handle all cases where items contained in intermediate nodes, such as MacroCall, ExternBlock and MacroItem nodes.
1 parent a8a316f commit 9025264

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ class ImplItemNode extends ImplOrTraitItemNode instanceof Impl {
567567

568568
TraitItemNode resolveTraitTy() { result = resolvePath(this.getTraitPath()) }
569569

570-
override AssocItemNode getAnAssocItem() { result = super.getAssocItemList().getAnAssocItem() }
570+
override AssocItemNode getAnAssocItem() { result = this.getADescendant() }
571571

572572
override string getName() { result = "(impl)" }
573573

@@ -760,7 +760,7 @@ class TraitItemNode extends ImplOrTraitItemNode, TypeItemNode instanceof Trait {
760760
pragma[nomagic]
761761
ItemNode resolveABound() { result = resolvePath(this.getABoundPath()) }
762762

763-
override AssocItemNode getAnAssocItem() { result = super.getAssocItemList().getAnAssocItem() }
763+
override AssocItemNode getAnAssocItem() { result = this.getADescendant() }
764764

765765
override string getName() { result = Trait.super.getName().getText() }
766766

@@ -956,7 +956,7 @@ class TypeParamItemNode extends TypeItemNode instanceof TypeParam {
956956

957957
/** Holds if `item` has the name `name` and is a top-level item inside `f`. */
958958
private predicate sourceFileEdge(SourceFile f, string name, ItemNode item) {
959-
item = f.getAnItem() and
959+
item = f.(ItemNode).getADescendant() and
960960
name = item.getName()
961961
}
962962

0 commit comments

Comments
 (0)