Skip to content

Commit 79cbf2f

Browse files
authored
Merge pull request #21312 from hvitved/rust/type-inference-bad-join
Rust: Fix bad join
2 parents 7742a56 + 9f5b814 commit 79cbf2f

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -419,14 +419,21 @@ module ArgsAreInstantiationsOf<ArgsAreInstantiationsOfInputSig Input> {
419419
private module ArgIsInstantiationOfToIndex =
420420
ArgIsInstantiationOf<CallAndPos, ArgIsInstantiationOfToIndexInput>;
421421

422+
pragma[nomagic]
423+
private predicate argIsInstantiationOf(
424+
Input::Call call, FunctionPosition pos, ImplOrTraitItemNode i, Function f, int rnk
425+
) {
426+
ArgIsInstantiationOfToIndex::argIsInstantiationOf(MkCallAndPos(call, pos), i, _) and
427+
toCheckRanked(i, f, _, pos, rnk)
428+
}
429+
422430
pragma[nomagic]
423431
private predicate argsAreInstantiationsOfToIndex(
424432
Input::Call call, ImplOrTraitItemNode i, Function f, int rnk
425433
) {
426434
exists(FunctionPosition pos |
427-
ArgIsInstantiationOfToIndex::argIsInstantiationOf(MkCallAndPos(call, pos), i, _) and
428-
call.hasTargetCand(i, f) and
429-
toCheckRanked(i, f, _, pos, rnk)
435+
argIsInstantiationOf(call, pos, i, f, rnk) and
436+
call.hasTargetCand(i, f)
430437
|
431438
rnk = 0
432439
or

0 commit comments

Comments
 (0)