Merge pull request #19745 from hvitved/rust/path-resolution-has-implementation

Rust: Use `hasImplementation` in path resolution
This commit is contained in:
Tom Hvitved
2025-06-13 11:17:03 +02:00
committed by GitHub
2 changed files with 2 additions and 18 deletions

View File

@@ -425,14 +425,7 @@ abstract private class AssocItemNode extends ItemNode, AssocItem {
private class ConstItemNode extends AssocItemNode instanceof Const {
override string getName() { result = Const.super.getName().getText() }
override predicate hasImplementation() {
super.hasBody()
or
// for trait items from library code, we do not currently know if they
// have default implementations or not, so we assume they do
not this.fromSource() and
this = any(TraitItemNode t).getAnAssocItem()
}
override predicate hasImplementation() { Const.super.hasImplementation() }
override Namespace getNamespace() { result.isValue() }
@@ -508,14 +501,7 @@ private class VariantItemNode extends ItemNode instanceof Variant {
class FunctionItemNode extends AssocItemNode instanceof Function {
override string getName() { result = Function.super.getName().getText() }
override predicate hasImplementation() {
super.hasBody()
or
// for trait items from library code, we do not currently know if they
// have default implementations or not, so we assume they do
not this.fromSource() and
this = any(TraitItemNode t).getAnAssocItem()
}
override predicate hasImplementation() { Function.super.hasImplementation() }
override Namespace getNamespace() { result.isValue() }

View File

@@ -21,5 +21,3 @@ multiplePathResolutions
| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from |
| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from |
| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from |
| lifetime.rs:415:32:415:49 | ...::clone | file://:0:0:0:0 | fn clone |
| lifetime.rs:415:32:415:49 | ...::clone | file://:0:0:0:0 | fn clone |