Skip to content

Commit a5e8fdb

Browse files
committed
Rust: Fix bad join
Before ``` Pipeline standard for TypeInference::MethodCallMatching::directTypeMatch/6#f0fb0b61@31ee5u2w was evaluated in 821 iterations totaling 1057ms (delta sizes total: 689971). 416937 ~1% {6} r1 = SCAN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev_delta` OUTPUT In.0, In.3, In.1, In.2, In.4, In.5 222757 ~2% {8} r2 = JOIN r1 WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _, Lhs.4, Rhs.2 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 164360 ~3% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 315350783 ~1% {6} r3 = SCAN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev` OUTPUT In.0, In.3, In.1, In.2, In.4, In.5 593815 ~1% {8} r4 = JOIN r3 WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev_delta` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _, Lhs.4, Rhs.2 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 342226 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 826517 ~0% {8} r5 = JOIN r1 WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.4, _, Lhs.4, Rhs.3 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 345294 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 73715 ~0% {8} r6 = JOIN r3 WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev_delta` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.4, _, Lhs.4, Rhs.3 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 47802 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 899682 ~5% {6} r7 = r2 UNION r4 UNION r5 UNION r6 711040 ~6% {6} | AND NOT `TypeInference::MethodCallMatching::directTypeMatch/6#f0fb0b61#prev`(FIRST 6) return r7 ``` After ``` Pipeline standard for TypeInference::MethodCallMatching::directTypeMatch/6#f0fb0b61@ad458u2w was evaluated in 821 iterations totaling 374ms (delta sizes total: 691168). 222757 ~2% {8} r1 = JOIN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev_delta` WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _, Lhs.4, Rhs.2 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 164360 ~3% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 593815 ~1% {8} r2 = JOIN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev` WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev_delta` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _, Lhs.4, Rhs.2 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 342226 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 826517 ~0% {8} r3 = JOIN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev_delta` WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.4, _, Lhs.4, Rhs.3 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 345294 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 73715 ~0% {8} r4 = JOIN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev` WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev_delta` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.4, _, Lhs.4, Rhs.3 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 47802 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 899682 ~5% {6} r5 = r1 UNION r2 UNION r3 UNION r4 711095 ~6% {6} | AND NOT `TypeInference::MethodCallMatching::directTypeMatch/6#f0fb0b61#prev`(FIRST 6) return r5 ```
1 parent 47f6734 commit a5e8fdb

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

shared/typeinference/codeql/typeinference/internal/TypeInference.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1223,7 +1223,7 @@ module Make1<LocationSig Location, InputSig1<Location> Input1> {
12231223

12241224
pragma[nomagic]
12251225
private predicate directTypeMatch0(
1226-
Access a, AccessEnvironment e, Declaration target, DeclarationPosition dpos,
1226+
Access a, DeclarationPosition dpos, AccessEnvironment e, Declaration target,
12271227
TypePath pathToTypeParam, TypeParameter tp
12281228
) {
12291229
not exists(getTypeArgument(a, target, tp, _)) and
@@ -1240,7 +1240,7 @@ module Make1<LocationSig Location, InputSig1<Location> Input1> {
12401240
Access a, AccessEnvironment e, Declaration target, TypePath path, Type t, TypeParameter tp
12411241
) {
12421242
exists(AccessPosition apos, DeclarationPosition dpos, TypePath pathToTypeParam |
1243-
directTypeMatch0(a, e, target, dpos, pathToTypeParam, tp) and
1243+
directTypeMatch0(a, dpos, e, target, pathToTypeParam, tp) and
12441244
accessDeclarationPositionMatch(apos, dpos) and
12451245
t = a.getInferredType(e, apos, pathToTypeParam.appendInverse(path))
12461246
)

0 commit comments

Comments
 (0)