Commit Graph

1881 Commits

Author SHA1 Message Date
Paolo Tranquilli
c9cff09f5d Merge branch 'main' into redsun82/rust-pick-edition 2025-04-14 15:19:33 +02:00
Paolo Tranquilli
c245459e97 Merge pull request #19293 from github/redsun82/rust-fix-member-aggregation
Rust: fix workspace member aggregation when absolute path is a glob pattern
2025-04-14 12:08:43 +02:00
Geoffrey White
c821f27309 Merge branch 'main' into badalloc 2025-04-14 09:36:59 +01:00
Paolo Tranquilli
63e5f5a555 Rust: parametrize some integration tests on three editions 2025-04-11 16:50:23 +02:00
Paolo Tranquilli
868680f078 Merge branch 'redsun82/rust-fix-member-aggregation' into redsun82/rust-pick-edition 2025-04-11 16:46:16 +02:00
Paolo Tranquilli
60aa3a8d9d Rust: fix workspace member aggregation when absolute path is a glob pattern
We were interpreting the absolute path of a workspace as a glob pattern,
which doesn't work if the path has some special characters (e.g. `[` or
`]`).
2025-04-11 16:41:51 +02:00
Mathias Vorreiter Pedersen
11aef7019e Merge pull request #19273 from MathiasVP/prepare-shared-mad-generation-for-cpp
Shared: Prepare model generation for C++ adoption
2025-04-11 07:22:56 -07:00
Paolo Tranquilli
dbbd80f4dc Rust: pick correct edition for the files
Previously we would unconditionally set the edition to the latest stable
according to rust-analyzer (2021 at the moment). Now we ask
rust-analyzer itself to pick the correct edition for the file.
2025-04-11 15:36:45 +02:00
Arthur Baars
85940484ab Update rust/ql/test/setup.sh 2025-04-11 09:57:50 +02:00
Paolo Tranquilli
db1203acb3 Rust: reinstate adding rust-src for test toolchains 2025-04-11 08:57:14 +02:00
Paolo Tranquilli
becea89a47 Rust: refine ql/test/setup.sh 2025-04-11 08:26:48 +02:00
Tom Hvitved
7ed8a85e08 Merge pull request #19246 from hvitved/rust/cache-tweaks 2025-04-10 19:02:25 +02:00
Mathias Vorreiter Pedersen
6c348b5855 Rust: Fixup MaD input. 2025-04-10 14:01:20 +01:00
Tom Hvitved
0e31bf1e7b Merge pull request #19265 from hvitved/rust/crate-graph-self-crate-ref 2025-04-09 22:54:53 +02:00
Tom Hvitved
1ba06ab3bf Merge pull request #19216 from hvitved/rust/path-resolution-path-attr
Rust: Handle path attributes in path resolution
2025-04-09 18:57:56 +02:00
Tom Hvitved
52401aaa73 Address review comments 2025-04-09 17:19:25 +02:00
Tom Hvitved
fbab715cb6 Rust: Allow for crate self-references in crate graph paths 2025-04-09 15:21:34 +02:00
Tom Hvitved
9323f1aaf0 Merge pull request #19250 from hvitved/rust/fix-bad-joins
Rust: Fix bad joins
2025-04-09 13:36:01 +02:00
Paolo Tranquilli
25bd0c3b21 Rust: add test setup script 2025-04-08 17:28:57 +02:00
Simon Friis Vindum
9dc008b9f4 Merge pull request #19214 from paldepind/rust-ti-associated
Rust: Associated types
2025-04-08 13:46:36 +02:00
Tom Hvitved
95add2f60b Rust: Fix bad join in getAPrivateVisibleModule
Before
```
Pipeline standard for PathResolution::getAPrivateVisibleModule/1#3829a5ee@822d5hwq was evaluated in 24 iterations totaling 16ms (delta sizes total: 4843).
         105047   ~63652%    {2} r1 = SCAN `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev_delta` OUTPUT In.0, In.0

             69       ~0%    {2} r2 = JOIN `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev_delta` WITH `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev` ON FIRST 1 OUTPUT Lhs.0, Lhs.1

        5766690  ~148309%    {2} r3 = JOIN `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev_delta` WITH `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev` ON FIRST 1 OUTPUT Lhs.0, Rhs.1

        5871806  ~143984%    {2} r4 = r1 UNION r2 UNION r3
           6859     ~148%    {2}    | AND NOT `PathResolution::getAPrivateVisibleModule/1#3829a5ee#prev`(FIRST 2)
                             return r4
```

After
```
Pipeline standard for PathResolution::getAPrivateVisibleModule/1#3829a5ee@5edefhwp was evaluated in 12 iterations totaling 0ms (delta sizes total: 3515).
         339   ~1%    {2} r1 = SCAN `PathResolution::isItemParent/1#d5e587d6#prev_delta` OUTPUT In.0, In.0

        3130   ~0%    {2} r2 = JOIN `PathResolution::isItemParent/1#d5e587d6#prev_delta` WITH `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev` ON FIRST 1 OUTPUT Lhs.0, Rhs.1

          46   ~0%    {2} r3 = JOIN `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev_delta` WITH `PathResolution::isItemParent/1#d5e587d6#prev` ON FIRST 1 OUTPUT Lhs.0, Lhs.1

        3515   ~2%    {2} r4 = r1 UNION r2 UNION r3
        3515   ~2%    {2}    | AND NOT `PathResolution::getAPrivateVisibleModule/1#3829a5ee#prev`(FIRST 2)
                      return r4
```
2025-04-08 13:11:32 +02:00
Tom Hvitved
2e1b8b8b0e Rust: Fix bad join in unqualifiedPathLookup
Before
```
Pipeline standard for PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1@822d53wq was evaluated in 61 iterations totaling 118ms (delta sizes total: 131072).
          606491   ~0%    {4} r1 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.1, In.2, In.0, In.3
          106457   ~1%    {3}    | JOIN WITH `PathResolution::unqualifiedPathLookup/4#e32cdfce_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.1

          606491   ~2%    {4} r2 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.0, In.2, In.3, In.1

           19261   ~0%    {4} r3 = JOIN r2 WITH `PathResolution::ModuleLikeNode.isRoot/0#dispred#21662e64` ON FIRST 1 OUTPUT Lhs.3, Lhs.0, Lhs.1, Lhs.2

        42776643   ~1%    {4} r4 = JOIN r2 WITH `doublyBoundedFastTC@PathResolution::hasChild/2#6b318d51#2@PathResolution::isRoot/1#a01ce5c3#1@PathResolution::hasCratePath/1#73ea688d#1` ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2

        42795904   ~1%    {4} r5 = r3 UNION r4
           24921   ~6%    {3}    | JOIN WITH `PathResolution::RelevantPath.isCratePath/2#e595e892_120#join_rhs` ON FIRST 2 OUTPUT Lhs.3, Rhs.2, Lhs.2

          131378   ~2%    {3} r6 = r1 UNION r5
          131072   ~2%    {3}    | AND NOT `PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1#prev`(FIRST 3)
                          return r6
```

After
```
Pipeline standard for PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1@0553a4wi was evaluated in 66 iterations totaling 10ms (delta sizes total: 131072).
        610251  ~0%    {4} r1 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.1, In.2, In.0, In.3
        131378  ~0%    {3}    | JOIN WITH `PathResolution::unqualifiedPathLookup1/4#781de0cd_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.1
        131072  ~0%    {3}    | AND NOT `PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1#prev`(FIRST 3)
                       return r1
```
2025-04-08 13:10:52 +02:00
Geoffrey White
866fc6b320 Merge pull request #19235 from geoffw0/ssaconsistency
Rust: SSA inconsistency counts
2025-04-08 10:49:19 +01:00
Tom Hvitved
7459548118 Rust: Cache tweaks 2025-04-08 11:49:16 +02:00
Geoffrey White
10ad5780b5 Rust: Try a different toolchain version to fix the test in CI? 2025-04-08 10:21:40 +01:00
Geoffrey White
e2f63db96d Merge branch 'main' into badalloc 2025-04-08 10:15:38 +01:00
Geoffrey White
fd3dcb2d00 Rust: More precise imports. 2025-04-08 09:30:14 +01:00
Geoffrey White
88439b42e6 Merge pull request #19095 from geoffw0/blockon
Rust: Model futures::executor::block_on.
2025-04-07 17:41:49 +01:00
Geoffrey White
ee54ba4c48 Rust: Autoformat. 2025-04-07 17:06:15 +01:00
Geoffrey White
9c1567375d Shared: Implement getInconsistencyCounts for SSA. 2025-04-07 16:20:42 +01:00
Simon Friis Vindum
48e5b0a731 Merge branch 'main' into rust-ti-associated 2025-04-07 17:07:05 +02:00
Simon Friis Vindum
602e617bc6 Rust: Add type inference test for trait with multiple associated types 2025-04-07 17:02:51 +02:00
Simon Friis Vindum
8e76bb1a43 Rust: Minor changes based on PR review 2025-04-07 16:46:54 +02:00
Geoffrey White
41f54d836e Rust: Tweak query description. 2025-04-07 14:33:31 +01:00
Geoffrey White
dad85854cd Apply suggestions from code review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-04-07 14:27:12 +01:00
Tom Hvitved
13f4a6afa6 Rust: Handle path attributes in path resolution 2025-04-07 15:24:17 +02:00
Tom Hvitved
edb7aaabab Rust: Add path attribute test 2025-04-07 15:23:27 +02:00
Simon Friis Vindum
74583e4fbf Merge pull request #19227 from paldepind/rust-pr-self
Rust: Resolve `Self` path in trait type of implementation
2025-04-07 14:21:02 +02:00
Tom Hvitved
ca5cc8e405 Merge pull request #19220 from hvitved/rust/path-resolution-crate-fix
Rust: Minor path resolution fix for `($)crate` paths
2025-04-07 13:24:12 +02:00
Geoffrey White
2c2506c4f8 Rust: Add Rust SSA inconsistency infrastructure. 2025-04-07 12:16:45 +01:00
Simon Friis Vindum
3441af136c Merge pull request #19146 from paldepind/rust-ti-alias
Rust: Implement support for inference of type aliases
2025-04-07 13:03:30 +02:00
Simon Friis Vindum
5dba2412b5 Rust: Fix annotation in comment 2025-04-07 12:53:13 +02:00
Simon Friis Vindum
acc565f84e Rust: Refactor PathMention as suggested in review 2025-04-07 12:50:31 +02:00
Simon Friis Vindum
6cecf7e618 Rust: Resolve Self path in trait type of implementation 2025-04-07 11:55:03 +02:00
Simon Friis Vindum
5c2d6e3d0f Rust: Add path resolution test for Self in trait implementation 2025-04-07 11:45:43 +02:00
Geoffrey White
893e42315e Merge branch 'main' into badalloc 2025-04-07 09:33:23 +01:00
Geoffrey White
f292d04d7a Merge branch 'main' into blockon 2025-04-07 09:03:55 +01:00
Geoffrey White
471f02cf3b Merge branch 'main' into sinkstats 2025-04-04 22:28:30 +01:00
Geoffrey White
6ad7a950da Merge branch 'main' into badalloc 2025-04-04 21:57:04 +01:00
Geoffrey White
c9939387f8 Rust: Turn on PrettyPrintModels for RegexInjection so we hopefully don't have to deal with test result changes there as often. 2025-04-04 21:47:22 +01:00