mirror of
https://github.com/github/codeql.git
synced 2026-04-25 16:55:19 +02:00
Rust: Remove Resolvable.resolvesAsItem
Removes one more use of extractor-based resolution.
This commit is contained in:
1
rust/ql/.generated.list
generated
1
rust/ql/.generated.list
generated
@@ -371,6 +371,7 @@ lib/codeql/rust/elements/internal/RefTypeReprConstructor.qll 8e7012b456ebf1cc7a2
|
||||
lib/codeql/rust/elements/internal/RefTypeReprImpl.qll 553dd95e1a49ab7aef5db08e7bb550104c604ec33c9a3c7529370cd47c6a0965 8902db7c814f631c2a995df5911a7b13b6a38c524417e4bbbf2bda74ad53e14c
|
||||
lib/codeql/rust/elements/internal/RenameConstructor.qll 65fa2e938978d154701e6cac05b56320b176ee014ef5c20a7b66f3e94fd5c4a7 dfc0ff4606b8e1c14003cc93a0811f4d62ec993b07ff3c1aa0776746577ed103
|
||||
lib/codeql/rust/elements/internal/RenameImpl.qll 61c681055f1f86402af0772539f702e9e19a123f8cfcfca225535c3a1a4cb1d7 1aa1c78616c4b54a31c8af74de141aef9e5ada53f3859df631ecb4238faabdbf
|
||||
lib/codeql/rust/elements/internal/ResolvableImpl.qll 7d6d02eceef54d588de6204abbcf7a6454916e49180e3db8a72131032cec5837 9c3a28ea0d293b449c69982e3695903a10510096e765a53c1b34ac3ad009a9f4
|
||||
lib/codeql/rust/elements/internal/RestPatConstructor.qll 45430925ddf08fba70ede44c7f413ddb41b3113c149b7efc276e0c2bf72507b4 25c678898d72446e7a975bb8b7f2fde51e55b59dbd42f2cca997c833b1a995f1
|
||||
lib/codeql/rust/elements/internal/RetTypeReprConstructor.qll 6dcb56c92a13f5ca2c9a8344bc05638cc611543896c578cd6ca185054f155537 3fe34953ba397dc31533bd28b48df76693e86b51c4a89c26ad4dfdbd816a0874
|
||||
lib/codeql/rust/elements/internal/RetTypeReprImpl.qll 799e55ffcf27bf6f010419e1d61ebbbf3448e37b903b0f13984d0b44d6b7a999 be774bb09d121c35f40c75d5bee08918e7a6b5fccb4fd573fc55a650466b46e0
|
||||
|
||||
1
rust/ql/.gitattributes
generated
vendored
1
rust/ql/.gitattributes
generated
vendored
@@ -373,6 +373,7 @@
|
||||
/lib/codeql/rust/elements/internal/RefTypeReprImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RenameConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RenameImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/ResolvableImpl.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RestPatConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RetTypeReprConstructor.qll linguist-generated
|
||||
/lib/codeql/rust/elements/internal/RetTypeReprImpl.qll linguist-generated
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// generated by codegen, remove this comment if you wish to edit this file
|
||||
/**
|
||||
* This module provides a hand-modifiable wrapper around the generated class `Resolvable`.
|
||||
*
|
||||
@@ -11,25 +12,8 @@ private import codeql.rust.elements.internal.generated.Resolvable
|
||||
* be referenced directly.
|
||||
*/
|
||||
module Impl {
|
||||
private import codeql.rust.elements.internal.ItemImpl::Impl
|
||||
|
||||
// the following QLdoc is generated: if you need to edit it, do it in the schema file
|
||||
/**
|
||||
* One of `PathExpr`, `RecordExpr`, `PathPat`, `RecordPat`, `TupleStructPat` or `MethodCallExpr`.
|
||||
*/
|
||||
class Resolvable extends Generated::Resolvable {
|
||||
/**
|
||||
* Holds if this resolvable and the item `i` resolves to the same canonical
|
||||
* path in the same crate
|
||||
*/
|
||||
pragma[nomagic]
|
||||
predicate resolvesAsItem(Item i) {
|
||||
this.getResolvedPath() = i.getExtendedCanonicalPath() and
|
||||
(
|
||||
this.getResolvedCrateOrigin() = i.getCrateOrigin()
|
||||
or
|
||||
not this.hasResolvedCrateOrigin() and not i.hasCrateOrigin()
|
||||
)
|
||||
}
|
||||
}
|
||||
class Resolvable extends Generated::Resolvable { }
|
||||
}
|
||||
|
||||
@@ -7,6 +7,16 @@
|
||||
|
||||
import rust
|
||||
|
||||
pragma[nomagic]
|
||||
private predicate resolvesAsItem(Resolvable r, Item i) {
|
||||
r.getResolvedPath() = i.getExtendedCanonicalPath() and
|
||||
(
|
||||
r.getResolvedCrateOrigin() = i.getCrateOrigin()
|
||||
or
|
||||
not r.hasResolvedCrateOrigin() and not i.hasCrateOrigin()
|
||||
)
|
||||
}
|
||||
|
||||
private signature module ResolvableSig {
|
||||
class Source {
|
||||
string toString();
|
||||
@@ -94,7 +104,7 @@ private module PathResolution implements ResolvableSig {
|
||||
private module RustAnalyzerPathResolution implements CompareSig<PathResolution> {
|
||||
predicate isResolvable(PathResolution::Source s) { s.hasResolvedPath() }
|
||||
|
||||
Item resolve(PathResolution::Source s) { s.resolvesAsItem(result) }
|
||||
Item resolve(PathResolution::Source s) { resolvesAsItem(s, result) }
|
||||
}
|
||||
|
||||
private module QlPathResolution implements CompareSig<PathResolution> {
|
||||
@@ -133,7 +143,7 @@ private module RustAnalyzerCallGraph implements CompareSig<CallGraph> {
|
||||
CallExprBaseImpl::getCallResolvable(c).hasResolvedPath()
|
||||
}
|
||||
|
||||
Item resolve(CallExprBase c) { CallExprBaseImpl::getCallResolvable(c).resolvesAsItem(result) }
|
||||
Item resolve(CallExprBase c) { resolvesAsItem(CallExprBaseImpl::getCallResolvable(c), result) }
|
||||
}
|
||||
|
||||
private module QlCallGraph implements CompareSig<CallGraph> {
|
||||
|
||||
Reference in New Issue
Block a user