Skip to content

Commit 88b4f97

Browse files
authored
Merge pull request #20027 from hvitved/rust/remove-resolves-as-item
Rust: Remove `Resolvable.resolvesAsItem`
2 parents 1da42cb + 655b3de commit 88b4f97

File tree

4 files changed

+16
-20
lines changed

4 files changed

+16
-20
lines changed

rust/ql/.generated.list

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/ql/.gitattributes

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/ql/lib/codeql/rust/elements/internal/ResolvableImpl.qll

Lines changed: 2 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/ql/src/queries/telemetry/RustAnalyzerComparison.qll

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@
77

88
import rust
99

10+
pragma[nomagic]
11+
private predicate resolvesAsItem(Resolvable r, Item i) {
12+
r.getResolvedPath() = i.getExtendedCanonicalPath() and
13+
(
14+
r.getResolvedCrateOrigin() = i.getCrateOrigin()
15+
or
16+
not r.hasResolvedCrateOrigin() and not i.hasCrateOrigin()
17+
)
18+
}
19+
1020
private signature module ResolvableSig {
1121
class Source {
1222
string toString();
@@ -94,7 +104,7 @@ private module PathResolution implements ResolvableSig {
94104
private module RustAnalyzerPathResolution implements CompareSig<PathResolution> {
95105
predicate isResolvable(PathResolution::Source s) { s.hasResolvedPath() }
96106

97-
Item resolve(PathResolution::Source s) { s.resolvesAsItem(result) }
107+
Item resolve(PathResolution::Source s) { resolvesAsItem(s, result) }
98108
}
99109

100110
private module QlPathResolution implements CompareSig<PathResolution> {
@@ -133,7 +143,7 @@ private module RustAnalyzerCallGraph implements CompareSig<CallGraph> {
133143
CallExprBaseImpl::getCallResolvable(c).hasResolvedPath()
134144
}
135145

136-
Item resolve(CallExprBase c) { CallExprBaseImpl::getCallResolvable(c).resolvesAsItem(result) }
146+
Item resolve(CallExprBase c) { resolvesAsItem(CallExprBaseImpl::getCallResolvable(c), result) }
137147
}
138148

139149
private module QlCallGraph implements CompareSig<CallGraph> {

0 commit comments

Comments
 (0)