github-actions[bot]
|
4014df9a6e
|
Post-release preparation for codeql-cli-2.23.4
|
2025-11-04 17:57:52 +00:00 |
|
github-actions[bot]
|
64fcdd1f2f
|
Release preparation for version 2.23.4
|
2025-11-03 14:52:23 +00:00 |
|
Simon Friis Vindum
|
b189f1fe3f
|
Rust: Refactor using shared constraint satisfaction
|
2025-10-30 08:18:12 +01:00 |
|
Tom Hvitved
|
b7293541cd
|
Merge pull request #20704 from hvitved/rust/fix-bad-joins
Rust: Fix two bad joins
|
2025-10-29 11:11:54 +01:00 |
|
Tom Hvitved
|
b3bbe78974
|
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
```
|
2025-10-28 13:09:39 +01:00 |
|
Tom Hvitved
|
104ba0e291
|
Rust: Fix bad join
Before
```
Pipeline standard for TypeInference::MethodCallMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#e8abf748@ada3a07w was evaluated in 801 iterations totaling 31ms (delta sizes total: 182871).
50151 ~1% {4} r1 = SCAN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev_delta OUTPUT In.0, In.2, In.3, In.4
39574 ~0% {5} | JOIN WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev` ON FIRST 2 OUTPUT Lhs.3, Rhs.3, _, Lhs.2, Rhs.2
{3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3
36996 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1
36102333 ~0% {4} r2 = SCAN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev OUTPUT In.0, In.2, In.3, In.4
90175 ~1% {5} | JOIN WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev_delta` ON FIRST 2 OUTPUT Lhs.3, Rhs.3, _, Lhs.2, Rhs.2
{3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3
65014 ~1% {3} | SCAN OUTPUT In.0, In.2, In.1
50151 ~1% {5} r3 = SCAN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev_delta OUTPUT In.2, In.0, In.1, In.3, In.4
24208 ~1% {4} | JOIN WITH `FunctionType::FunctionPosition.isSelf/0#dispred#9e84d302` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4
95022 ~0% {9} | JOIN WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev` ON FIRST 1 OUTPUT Lhs.2, Lhs.3, Rhs.2, Rhs.3, Rhs.4, _, Rhs.1, Lhs.1, _
{6} | REWRITE WITH Tmp.5 := ";", Tmp.5 := (In.6 ++ Tmp.5), Tmp.8 := "", Out.5 := InverseAppend(Tmp.5,Tmp.8,In.7) KEEPING 6
93919 ~1% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _
{6} | REWRITE WITH NOT [NOT [Tmp.6 := "borrow", TEST InOut.5 = Tmp.6, Tmp.6 := true, TEST InOut.2 = Tmp.6], NOT [Tmp.6 := "", TEST InOut.5 = Tmp.6, Tmp.6 := true, TEST InOut.2 != Tmp.6]] KEEPING 6
81298 ~1% {5} | SCAN OUTPUT In.1, In.4, _, In.0, In.3
{3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3
64110 ~1% {3} | SCAN OUTPUT In.0, In.2, In.1
36102333 ~0% {5} r4 = SCAN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev OUTPUT In.2, In.0, In.1, In.3, In.4
17473531 ~0% {4} | JOIN WITH `FunctionType::FunctionPosition.isSelf/0#dispred#9e84d302` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4
47409 ~1% {9} | JOIN WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev_delta` ON FIRST 1 OUTPUT Lhs.2, Lhs.3, Rhs.2, Rhs.3, Rhs.4, _, Rhs.1, Lhs.1, _
{6} | REWRITE WITH Tmp.5 := ";", Tmp.5 := (In.6 ++ Tmp.5), Tmp.8 := "", Out.5 := InverseAppend(Tmp.5,Tmp.8,In.7) KEEPING 6
29885 ~0% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _
{6} | REWRITE WITH NOT [NOT [Tmp.6 := "borrow", TEST InOut.5 = Tmp.6, Tmp.6 := true, TEST InOut.2 = Tmp.6], NOT [Tmp.6 := "", TEST InOut.5 = Tmp.6, Tmp.6 := true, TEST InOut.2 != Tmp.6]] KEEPING 6
16952 ~1% {5} | SCAN OUTPUT In.1, In.4, _, In.0, In.3
{3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3
16829 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1
182949 ~1% {3} r5 = r1 UNION r2 UNION r3 UNION r4
182949 ~1% {3} | AND NOT `TypeInference::MethodCallMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#e8abf748#prev`(FIRST 3)
return r5
```
After
```
Pipeline standard for TypeInference::MethodCallMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#e8abf748@31ee547w was evaluated in 801 iterations totaling 19ms (delta sizes total: 182946).
81298 ~0% {5} r1 = JOIN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev_delta WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev` ON FIRST 3 OUTPUT Lhs.4, Rhs.4, _, Lhs.3, Rhs.3
{3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3
64110 ~1% {3} | SCAN OUTPUT In.0, In.2, In.1
39574 ~0% {5} r2 = JOIN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev_delta WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev` ON FIRST 2 OUTPUT Lhs.4, Rhs.3, _, Lhs.3, Rhs.2
{3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3
36996 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1
16952 ~0% {5} r3 = JOIN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev_delta` ON FIRST 3 OUTPUT Lhs.4, Rhs.4, _, Lhs.3, Rhs.3
{3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3
16829 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1
90175 ~0% {5} r4 = JOIN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev_delta` ON FIRST 2 OUTPUT Lhs.4, Rhs.3, _, Lhs.3, Rhs.2
{3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3
65014 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1
182949 ~1% {3} r5 = r1 UNION r2 UNION r3 UNION r4
182949 ~1% {3} | AND NOT `TypeInference::MethodCallMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#e8abf748#prev`(FIRST 3)
return r5
```
|
2025-10-28 13:09:32 +01:00 |
|
Tom Hvitved
|
409f7fb743
|
Address review comments
|
2025-10-28 11:48:45 +01:00 |
|
Tom Hvitved
|
0e885e9297
|
Rust: Compute incompatible blanket implementations
|
2025-10-24 11:37:24 +02:00 |
|
Tom Hvitved
|
41602d3efa
|
Address review comments
|
2025-10-21 18:44:42 +02:00 |
|
Tom Hvitved
|
4b70d20cd6
|
Rust: Rework call resolution and type inference for calls
|
2025-10-21 17:58:52 +02:00 |
|
github-actions[bot]
|
6dd07790ac
|
Post-release preparation for codeql-cli-2.23.3
|
2025-10-14 11:16:33 +00:00 |
|
github-actions[bot]
|
33542f7d40
|
Release preparation for version 2.23.3
|
2025-10-14 09:30:24 +00:00 |
|
github-actions[bot]
|
a7a4e43991
|
Post-release preparation for codeql-cli-2.23.2
|
2025-09-29 15:10:19 +00:00 |
|
github-actions[bot]
|
d2130a589b
|
Release preparation for version 2.23.2
|
2025-09-29 10:28:45 +00:00 |
|
github-actions[bot]
|
4e8343664f
|
Post-release preparation for codeql-cli-2.23.1
|
2025-09-17 10:13:40 +00:00 |
|
github-actions[bot]
|
02a1b1efcb
|
Release preparation for version 2.23.1
|
2025-09-16 14:14:42 +00:00 |
|
Simon Friis Vindum
|
29ba013580
|
Rust: Add support for resolving methods from blanket implementations
|
2025-09-12 15:34:04 +02:00 |
|
Tom Hvitved
|
e3e1bcd63f
|
Rename Environment -> AccessEnvironment
|
2025-09-09 15:06:56 +02:00 |
|
Tom Hvitved
|
2e90499df4
|
Rename State -> Environment
|
2025-09-09 15:05:58 +02:00 |
|
Tom Hvitved
|
a1980ee23c
|
Shared: Make some generalizations in type inference library
|
2025-09-09 15:05:56 +02:00 |
|
github-actions[bot]
|
e8a2600a0c
|
Post-release preparation for codeql-cli-2.23.0
|
2025-09-02 11:46:23 +00:00 |
|
github-actions[bot]
|
0bfa93828b
|
Release preparation for version 2.23.0
|
2025-09-02 11:09:32 +00:00 |
|
Chris Smowton
|
1829060fab
|
Merge remote-tracking branch 'origin/main' into smowton/admin/merge-rc319-into-main
|
2025-08-21 16:33:37 +01:00 |
|
github-actions[bot]
|
42e3d31c49
|
Post-release preparation for codeql-cli-2.22.4
|
2025-08-18 14:42:42 +00:00 |
|
github-actions[bot]
|
90d29994c8
|
Release preparation for version 2.22.4
|
2025-08-18 14:06:09 +00:00 |
|
Tom Hvitved
|
b104535b32
|
Type inference: Rename some variables
|
2025-08-15 13:46:30 +02:00 |
|
Tom Hvitved
|
1be542ec56
|
Rust: Generalize certain type inference logic
|
2025-08-07 10:37:17 +02:00 |
|
github-actions[bot]
|
fb4b0aac53
|
Post-release preparation for codeql-cli-2.22.3
|
2025-08-04 17:18:08 +00:00 |
|
github-actions[bot]
|
fd82aeb1f8
|
Release preparation for version 2.22.3
|
2025-08-04 15:47:57 +00:00 |
|
Simon Friis Vindum
|
43b2977cb4
|
Shared, Rust: Reuse hasTypeConstraint in potentialInstantiationOf and factor out multipleConstraintImplementations
|
2025-07-18 15:33:17 +02:00 |
|
Simon Friis Vindum
|
bdcecdfc2c
|
Shared, Rust: Ensure that the constraints in satisfiesConstraintType are in relevantConstraint
|
2025-07-18 15:33:16 +02:00 |
|
Simon Friis Vindum
|
475d872ffb
|
Shared, Rust: Adjust type inference predicates to better match use sites
|
2025-07-18 15:32:42 +02:00 |
|
github-actions[bot]
|
24a0ac1223
|
Post-release preparation for codeql-cli-2.22.2
|
2025-07-07 18:15:04 +00:00 |
|
github-actions[bot]
|
f12daefabe
|
Release preparation for version 2.22.2
|
2025-07-07 14:00:26 +00:00 |
|
Tom Hvitved
|
e88d7baa7d
|
Rust: Apply inherent method prioritization inside type inference loop
|
2025-07-01 10:17:26 +02:00 |
|
Kasper Svendsen
|
9d2dd782d9
|
Merge remote-tracking branch 'github/main' into kaspersv/overlay-java-annotations
|
2025-06-26 13:18:25 +02:00 |
|
github-actions[bot]
|
6972c7a872
|
Post-release preparation for codeql-cli-2.22.1
|
2025-06-24 12:55:14 +00:00 |
|
github-actions[bot]
|
3e074b2425
|
Release preparation for version 2.22.1
|
2025-06-24 08:55:31 +00:00 |
|
Kasper Svendsen
|
81b677a2d9
|
rename overlay[caller] to overlay[caller?]
|
2025-06-24 10:25:07 +02:00 |
|
Kasper Svendsen
|
c207cfdeb7
|
Overlay: Add overlay annotations to Java & shared libraries
|
2025-06-24 10:25:06 +02:00 |
|
Simon Friis Vindum
|
60c27f8c30
|
Rust: Address PR feedback
|
2025-06-23 13:11:15 +02:00 |
|
Simon Friis Vindum
|
a367388326
|
Shared: Refactor type inference and expose SatisfiesConstraint module
|
2025-06-23 12:50:45 +02:00 |
|
Tom Hvitved
|
70c3ae4609
|
Merge pull request #19727 from hvitved/shared/type-inference-doc
Shared: Add elaborate QL doc to `TypeInference.qll`
|
2025-06-12 16:31:50 +02:00 |
|
Tom Hvitved
|
1ec376073b
|
Update shared/typeinference/codeql/typeinference/internal/TypeInference.qll
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
|
2025-06-12 12:14:52 +02:00 |
|
Tom Hvitved
|
18392a07ce
|
Rust: Also apply adjustedAccessType in RelevantAccess
|
2025-06-11 15:00:35 +02:00 |
|
Tom Hvitved
|
eeaccc5a9a
|
Update shared/typeinference/codeql/typeinference/internal/TypeInference.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
2025-06-11 12:48:06 +02:00 |
|
Tom Hvitved
|
b90e8679a9
|
Shared: Add elaborate QL doc to TypeInference.qll
|
2025-06-11 12:38:04 +02:00 |
|
Tom Hvitved
|
3c9cbf186e
|
Rust: Fix bad join in typeParametersEqualFromIndex
Before
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48@9c099swn was evaluated in 375 iterations totaling 154ms (delta sizes total: 0).
16307861 ~1% {5} r1 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev` ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Lhs.0, Lhs.2, Rhs.1
37736 ~1% {7} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.0, Rhs.2, Rhs.3, _
{6} | REWRITE WITH Tmp.6 := 0, TEST InOut.5 != Tmp.6 KEEPING 6
0 ~0% {7} | SCAN OUTPUT In.0, In.2, In.3, In.4, In.1, _, In.5
0 ~0% {7} | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.6 - Tmp.5)
0 ~0% {6} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev` ON FIRST 6 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.6
0 ~0% {8} r3 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, _, Lhs.5, _
{6} | REWRITE WITH Tmp.5 := 1, Out.5 := (Tmp.5 + In.6), Tmp.7 := 0, TEST Out.5 != Tmp.7 KEEPING 6
0 ~0% {6} | SCAN OUTPUT In.2, In.3, In.5, In.0, In.1, In.4
0 ~0% {7} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.5, Lhs.4, Lhs.0, Lhs.1, Lhs.2
0 ~0% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.3, Lhs.4, Lhs.5, Lhs.2, Lhs.6
12808446 ~1% {5} r4 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.0, Lhs.1, Rhs.2
22081 ~1% {7} r5 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.4, Rhs.2, Rhs.3, _
{6} | REWRITE WITH Tmp.6 := 0, TEST InOut.5 != Tmp.6 KEEPING 6
0 ~0% {6} | SCAN OUTPUT In.0, In.1, In.2, In.4, In.3, In.5
0 ~0% {8} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev` ON FIRST 5 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.4, Lhs.3, Lhs.5, Rhs.5, _
{8} | REWRITE WITH Tmp.7 := 1, Out.7 := (InOut.5 - Tmp.7), TEST Out.7 = InOut.6
0 ~0% {6} | SCAN OUTPUT In.0, In.1, In.2, In.4, In.3, In.5
22081 ~1% {8} r6 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.1, Lhs.4, Rhs.2, Rhs.3, _
{7} | REWRITE WITH Tmp.7 := 0, TEST InOut.6 = Tmp.7 KEEPING 7
22081 ~0% {7} | SCAN OUTPUT In.2, In.5, _, In.3, In.0, In.1, In.4
22081 ~0% {7} | REWRITE WITH Out.2 := 0
22081 ~0% {5} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.4, Lhs.5, Lhs.6
0 ~0% {6} | JOIN WITH `project#TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789#3` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.1, Lhs.4, _
0 ~0% {6} | REWRITE WITH Out.5 := 0
37736 ~1% {8} r7 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Lhs.3, Lhs.4, Lhs.0, Rhs.2, Rhs.3, _
{7} | REWRITE WITH Tmp.7 := 0, TEST InOut.6 = Tmp.7 KEEPING 7
37736 ~0% {7} | SCAN OUTPUT In.4, In.5, _, In.1, In.0, In.2, In.3
37736 ~0% {7} | REWRITE WITH Out.2 := 0
37736 ~1% {5} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.4, Lhs.5, Lhs.6
0 ~0% {6} | JOIN WITH `project#TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789#3` ON FIRST 2 OUTPUT Lhs.2, Lhs.4, Lhs.0, Lhs.1, Lhs.3, _
0 ~0% {6} | REWRITE WITH Out.5 := 0
0 ~0% {6} r8 = r2 UNION r3 UNION r5 UNION r6 UNION r7
0 ~0% {6} | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev`(FIRST 6)
return r8
```
After
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48@81728ywe was evaluated in 375 iterations totaling 2ms (delta sizes total: 0).
0 ~0% {6} r1 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndexBase/5#56e8595e#reorder_0_4_1_2_3#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.4, Rhs.2, _
0 ~0% {6} | REWRITE WITH Out.5 := 0
0 ~0% {6} r2 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndexBase/5#56e8595e#reorder_0_4_1_2_3#prev` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Rhs.3, Rhs.4, Lhs.2, _
0 ~0% {6} | REWRITE WITH Out.5 := 0
66609 ~1% {3} r3 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` OUTPUT In.0, In.2, In.1
0 ~0% {9} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#reorder_0_4_1_2_3_5#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.1, Rhs.2, Rhs.3, Rhs.4, _, Rhs.5, _
{7} | REWRITE WITH Tmp.6 := 1, Out.6 := (Tmp.6 + In.7), Tmp.8 := 0, TEST Out.6 != Tmp.8 KEEPING 7
0 ~0% {7} | SCAN OUTPUT In.4, In.5, In.6, In.1, In.0, In.2, In.3
0 ~0% {6} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.4, Lhs.6, Lhs.0, Lhs.1, Lhs.5, Lhs.2
0 ~0% {8} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, _, In.5, _
{6} | REWRITE WITH Tmp.5 := 1, Out.5 := (Tmp.5 + In.6), Tmp.7 := 0, TEST Out.5 != Tmp.7 KEEPING 6
0 ~0% {6} | SCAN OUTPUT In.2, In.3, In.5, In.0, In.1, In.4
0 ~0% {7} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.5, Lhs.4, Lhs.0, Lhs.1, Lhs.2
0 ~0% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.3, Lhs.4, Lhs.5, Lhs.2, Lhs.6
0 ~0% {6} r5 = r1 UNION r2 UNION r3 UNION r4
0 ~0% {6} | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev`(FIRST 6)
return r5
```
|
2025-06-11 10:23:57 +02:00 |
|
Tom Hvitved
|
79e1af04df
|
Rust: Fix bad join in satisfiesConstraintTypeMention
Before
```
Pipeline standard for TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324@e8671rw7 was evaluated in 378 iterations totaling 313ms (delta sizes total: 168323).
462477 ~1% {7} r1 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.4, Lhs.3, Rhs.1, Rhs.2, Rhs.3
993561 ~2% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.3, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6
993561 ~38% {7} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 5 OUTPUT Lhs.0, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.3
{7} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
772102 ~427% {6} | SCAN OUTPUT In.3, In.4, In.5, In.2, In.6, In.1
56885 ~1% {4} r2 = SCAN TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#prev_delta OUTPUT In.3, In.0, In.1, In.2
0 ~0% {7} r3 = JOIN r2 WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Rhs.4, Lhs.1, Lhs.2, Lhs.3, Rhs.3
0 ~0% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.3, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6
0 ~0% {7} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 5 OUTPUT Lhs.0, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.3
{7} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
0 ~0% {6} | SCAN OUTPUT In.2, In.3, In.4, In.5, In.6, In.1
462477 ~1% {8} r4 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.4, Lhs.0, Lhs.3, Rhs.1, Rhs.2, Rhs.3
993561 ~39% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Rhs.4, Lhs.3, Lhs.1, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Rhs.3
23413 ~1% {8} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.3, Lhs.1, Lhs.2, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8
2817 ~7% {7} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Rhs.2
11550 ~0% {9} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
2397 ~1% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
2397 ~1% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
2397 ~1% {6} | SCAN OUTPUT In.1, In.2, In.3, In.0, In.5, In.4
66727 ~0% {6} r5 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.1, Rhs.2, Rhs.3
19305359 ~0% {9} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, Rhs.3, Rhs.4
3454881 ~1% {10} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.0, Lhs.6, Lhs.8, Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.7
753104 ~1% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a_01243#join_rhs` ON FIRST 4 OUTPUT Lhs.1, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.9, Rhs.4
32040 ~18% {9} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, _, Rhs.2, Lhs.2
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
13192 ~54% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, _, _, In.5, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
13192 ~54% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
13192 ~55% {6} | SCAN OUTPUT In.1, In.2, In.3, In.4, In.5, In.0
0 ~0% {8} r6 = JOIN r2 WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Rhs.4, Lhs.1, Lhs.2, Lhs.3, Lhs.0, Rhs.3
0 ~0% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.1, Lhs.7, Rhs.3
0 ~0% {8} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.6, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.7, Lhs.8
0 ~0% {7} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.5, Lhs.2, Lhs.3, Lhs.4, Lhs.6, Lhs.7, Rhs.2
0 ~0% {9} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
0 ~0% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
0 ~0% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
0 ~0% {6} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, In.4
787691 ~403% {6} r7 = r1 UNION r3 UNION r4 UNION r5 UNION r6
212766 ~54% {6} | AND NOT `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324#prev`(FIRST 6)
return r7
```
After
```
Pipeline standard for TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324@9c099xwn was evaluated in 380 iterations totaling 11ms (delta sizes total: 153004).
768937 ~1% {7} r1 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention0/9#c82a4f76#prev_delta` OUTPUT In.5, In.8, In.1, In.2, In.3, In.4, In.7
{7} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
745524 ~423% {6} | SCAN OUTPUT In.2, In.3, In.4, In.5, In.6, In.1
26916 ~0% {9} r2 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention1/7#b265d17e#prev` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Rhs.2, Rhs.3, Rhs.4, Rhs.5, _, Rhs.6, Lhs.1
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
8530 ~1% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, _, _, In.5, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
8530 ~1% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
8530 ~1% {6} | SCAN OUTPUT In.1, In.2, In.3, In.4, In.5, In.0
11763 ~1% {9} r3 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention1/7#b265d17e#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
2461 ~1% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
2461 ~1% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
2461 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, In.4
756515 ~396% {6} r4 = r1 UNION r2 UNION r3
155599 ~6% {6} | AND NOT `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324#prev`(FIRST 6)
return r4
```
|
2025-06-11 10:04:15 +02:00 |
|
Tom Hvitved
|
f9915e66a7
|
Rust: Fix bad join in satisfiesConcreteTypesFromIndex
Before
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9@061312x0 was evaluated in 367 iterations totaling 3484ms (delta sizes total: 563408).
66609 ~0% {3} r1 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` OUTPUT In.1, In.2, In.0
867138261 ~1% {4} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_210#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Rhs.2, Lhs.0, Lhs.1
29320 ~0% {5} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev` ON FIRST 2 OUTPUT Rhs.2, Lhs.3, Lhs.0, Lhs.2, Lhs.1
{5} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
29320 ~1% {4} | SCAN OUTPUT In.4, In.3, In.2, In.0
29320 ~0% {5} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Rhs.2, _
{4} | REWRITE WITH Tmp.4 := 0, TEST InOut.3 != Tmp.4 KEEPING 4
29320 ~0% {5} | SCAN OUTPUT In.0, In.2, In.1, _, In.3
29320 ~0% {5} | REWRITE WITH Tmp.3 := 1, Out.3 := (InOut.4 - Tmp.3)
29296 ~1% {4} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.4
29320 ~0% {6} r3 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Lhs.0, Lhs.3, Rhs.2, _
{5} | REWRITE WITH Tmp.5 := 0, TEST InOut.4 = Tmp.5 KEEPING 5
0 ~0% {5} | SCAN OUTPUT In.2, _, In.1, In.0, In.3
0 ~0% {5} | REWRITE WITH Out.1 := 0
0 ~0% {4} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.3, Lhs.4, Lhs.0, _
0 ~0% {4} | REWRITE WITH Out.3 := 0
563353 ~1% {4} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev_delta` OUTPUT In.0, In.2, In.1, In.3
563353 ~1% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.1, _, Lhs.3, _
{4} | REWRITE WITH Tmp.3 := 1, Out.3 := (Tmp.3 + In.4), Tmp.5 := 0, TEST Out.3 != Tmp.5 KEEPING 4
563353 ~0% {4} | SCAN OUTPUT In.2, In.3, In.0, In.1
258647 ~1% {5} r5 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 2 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.1, Rhs.2
102998 ~1% {6} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.4, Lhs.1, Lhs.0, Lhs.3
52485 ~1% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5
258647 ~0% {5} r6 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Lhs.2, Lhs.3, Lhs.1
259340 ~1% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Rhs.2, Lhs.3, Lhs.0, Lhs.4
16033 ~0% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5, Lhs.1
{6} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
15992 ~1% {6} | SCAN OUTPUT In.3, In.1, In.5, In.2, In.0, In.4
68477 ~1% {6} r7 = r5 UNION r6
68477 ~0% {4} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.3, Lhs.4, Lhs.0, Lhs.5
465635 ~0% {3} r8 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev_delta` OUTPUT In.1, In.0, In.2
465635 ~0% {5} r9 = JOIN r8 WITH `_TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAc__#join_rhs` ON FIRST 1 OUTPUT Lhs.0, _, Rhs.2, Lhs.1, Lhs.2
465635 ~1% {5} | REWRITE WITH Out.1 := 0
465635 ~1% {5} r10 = JOIN r9 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.4, Lhs.0, _, Lhs.2, Lhs.3
465635 ~1% {5} | REWRITE WITH Out.2 := 0
275069 ~0% {5} r11 = JOIN r8 WITH `_TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAc__#join_rhs#1` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.0, Rhs.1, Rhs.2
0 ~0% {7} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.0, Lhs.1, Rhs.3, _
0 ~0% {7} | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.5
0 ~0% {5} r12 = SCAN r11 OUTPUT In.4, In.0, In.1, In.2, In.3
465635 ~1% {5} r13 = r10 UNION r12
94444 ~1% {6} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.3, Lhs.2, Lhs.4, Lhs.0
6 ~20% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5
465635 ~0% {5} r14 = JOIN r9 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, _, Lhs.3, Lhs.4
465635 ~1% {5} | REWRITE WITH Out.2 := 0
0 ~0% {5} r15 = SCAN r11 OUTPUT In.0, In.2, In.1, In.3, In.4
465635 ~1% {5} r16 = r14 UNION r15
465635 ~0% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_021#join_rhs` ON FIRST 2 OUTPUT Lhs.3, Lhs.1, Rhs.2, Lhs.0, Lhs.2, Lhs.4
465635 ~0% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.5, Lhs.2, Lhs.3, Lhs.4, Lhs.1, Lhs.0
{6} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
465629 ~1% {6} | SCAN OUTPUT In.2, In.1, In.4, In.3, In.5, In.0
465635 ~1% {6} r17 = r13 UNION r16
465635 ~1% {4} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.4, Lhs.5, Lhs.0, Lhs.3
563408 ~1% {4} r18 = r2 UNION r3 UNION r7 UNION r17
563408 ~1% {4} | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev`(FIRST 4)
return r18
```
After
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9@e8671bx7 was evaluated in 376 iterations totaling 245ms (delta sizes total: 563353).
563353 ~1% {6} r1 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev_delta` OUTPUT In.0, In.1, In.2, _, In.3, _
563353 ~1% {4} | REWRITE WITH Tmp.3 := 1, Out.3 := (Tmp.3 + In.4), Tmp.5 := 0, TEST Out.3 != Tmp.5 KEEPING 4
259340 ~1% {5} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev` ON FIRST 4 OUTPUT Lhs.1, Rhs.5, Lhs.0, Lhs.2, Lhs.3
52485 ~0% {4} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Lhs.4
259340 ~1% {6} r3 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev` ON FIRST 4 OUTPUT Lhs.0, Rhs.4, Rhs.5, Lhs.1, Lhs.2, Lhs.3
16033 ~0% {5} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5
{5} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
15992 ~0% {4} | SCAN OUTPUT In.2, In.0, In.3, In.4
741397 ~1% {7} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _
465635 ~1% {6} | REWRITE WITH Tmp.6 := 0, TEST InOut.3 = Tmp.6 KEEPING 6
465635 ~1% {5} r5 = SCAN r4 OUTPUT In.1, In.5, In.0, In.2, _
465635 ~0% {5} | REWRITE WITH Out.4 := 0
741397 ~1% {7} r6 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _
275762 ~1% {6} | REWRITE WITH Tmp.6 := 0, TEST InOut.3 != Tmp.6 KEEPING 6
0 ~0% {7} r7 = JOIN r6 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _
{7} | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.3 - Tmp.6), TEST Out.6 = InOut.5
0 ~0% {5} | SCAN OUTPUT In.1, In.4, In.0, In.2, In.3
465635 ~0% {5} r8 = r5 UNION r7
6 ~0% {4} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Lhs.4
29310 ~0% {5} r9 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#reorder_0_4_5_1_2_3#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Rhs.3, Rhs.4, Rhs.5
29310 ~0% {6} r10 = SCAN r9 OUTPUT In.0, In.1, In.2, In.3, In.4, _
{5} | REWRITE WITH Tmp.5 := 0, TEST InOut.4 = Tmp.5 KEEPING 5
0 ~0% {5} | SCAN OUTPUT In.2, In.1, In.0, In.3, _
0 ~0% {5} | REWRITE WITH Out.4 := 0
29310 ~0% {6} r11 = SCAN r9 OUTPUT In.0, In.1, In.2, In.3, In.4, _
{5} | REWRITE WITH Tmp.5 := 0, TEST InOut.4 != Tmp.5 KEEPING 5
29310 ~1% {6} | SCAN OUTPUT In.0, In.2, In.3, _, In.1, In.4
29310 ~1% {6} | REWRITE WITH Tmp.3 := 1, Out.3 := (InOut.5 - Tmp.3)
29241 ~0% {5} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 4 OUTPUT Lhs.1, Lhs.4, Lhs.0, Lhs.2, Lhs.5
29241 ~0% {5} r12 = r10 UNION r11
{5} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
29241 ~1% {4} | SCAN OUTPUT In.2, In.0, In.3, In.4
465635 ~0% {6} r13 = SCAN r4 OUTPUT In.0, In.4, In.5, In.1, In.2, _
465635 ~1% {6} | REWRITE WITH Out.5 := 0
0 ~0% {8} r14 = JOIN r6 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.3, _
{8} | REWRITE WITH Tmp.7 := 1, Out.7 := (InOut.3 - Tmp.7), TEST Out.7 = InOut.6
0 ~0% {6} | SCAN OUTPUT In.0, In.4, In.5, In.1, In.2, In.3
465635 ~1% {6} r15 = r13 UNION r14
465635 ~0% {5} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5
{5} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
465629 ~1% {4} | SCAN OUTPUT In.2, In.0, In.3, In.4
563353 ~1% {4} r16 = r2 UNION r3 UNION r8 UNION r12 UNION r15
563353 ~1% {4} | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev`(FIRST 4)
return r16
```
|
2025-06-11 09:15:17 +02:00 |
|