mirror of
https://github.com/github/codeql.git
synced 2026-04-24 16:25:15 +02:00
Rust: Fix bad join
```
Evaluated relational algebra for predicate DataFlowImpl::RustDataFlow::pathResolveToVariantCanonicalPath/2#dc73aca0@34414869 with tuple counts:
422639 ~3% {3} r1 = JOIN `DataFlowImpl::resolveExtendedCanonicalPath/3#0454a346` WITH Synth::Synth::TPathAstNode#a7913307 ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2
73033499 ~7% {6} | JOIN WITH DataFlowImpl::MkVariantCanonicalPath#ab1ecb00 ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.3, _, Rhs.1, Rhs.2
{4} | REWRITE WITH Tmp.3 := "::", Out.3 := (In.4 ++ Tmp.3 ++ In.5), TEST Out.3 = InOut.1 KEEPING 4
170993 ~1% {2} | SCAN OUTPUT In.0, In.2
return r1
```
This commit is contained in:
@@ -957,8 +957,8 @@ module RustDataFlow implements InputSig<Location> {
|
||||
/** Holds if path `p` resolves to variant `v`. */
|
||||
private predicate pathResolveToVariantCanonicalPath(PathAstNode p, VariantCanonicalPath v) {
|
||||
exists(CrateOriginOption crate, string path, string name |
|
||||
resolveExtendedCanonicalPath(p, crate, path + "::" + name) and
|
||||
v = MkVariantCanonicalPath(crate, path, name)
|
||||
resolveExtendedCanonicalPath(p, pragma[only_bind_into](crate), path + "::" + name) and
|
||||
v = MkVariantCanonicalPath(pragma[only_bind_into](crate), path, name)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user