Commit Graph

1541 Commits

Author SHA1 Message Date
Arthur Baars
1c79c5e9ab Merge pull request #19292 from github/aibaars/rust-shadow-prelude
Rust: allow shadowing of prelude items
2025-04-15 09:54:31 +02:00
Paolo Tranquilli
2dd3dea33a Merge branch 'main' into redsun82/cargo-upgrade 2025-04-14 16:35:57 +02:00
Geoffrey White
24bcd041b8 Rust: Add flow models for io. 2025-04-14 14:20:45 +01:00
github-actions[bot]
b961c5961d Release preparation for version 2.21.1 2025-04-14 09:53:06 +00:00
Geoffrey White
7a9ea52bc7 Rust: Add source models for io. 2025-04-14 10:47:30 +01:00
Geoffrey White
4f9f550ba6 Rust: Add source models for fs. 2025-04-14 10:47:26 +01:00
Geoffrey White
c821f27309 Merge branch 'main' into badalloc 2025-04-14 09:36:59 +01:00
Paolo Tranquilli
c844db09d2 Merge branch 'redsun82/rust-pick-edition' into redsun82/cargo-upgrade 2025-04-11 17:03:29 +02:00
Arthur Baars
662e963a7b Rust: allow shadowing of prelude items 2025-04-11 15:46:55 +02:00
Tom Hvitved
e26695fc51 Rust: Take where clauses into account in path resolution 2025-04-11 09:28:08 +02:00
Tom Hvitved
cc85a09b39 Rust: Add AI-generated test for path resolution of where clauses 2025-04-11 09:24:09 +02:00
Tom Hvitved
7ed8a85e08 Merge pull request #19246 from hvitved/rust/cache-tweaks 2025-04-10 19:02:25 +02: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
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
Tom Hvitved
7459548118 Rust: Cache tweaks 2025-04-08 11:49:16 +02:00
Geoffrey White
e2f63db96d Merge branch 'main' into badalloc 2025-04-08 10:15:38 +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
Paolo Tranquilli
de0d374cce Rust: add upgrades property in qlpack.yml 2025-04-07 17:22:17 +02:00
Simon Friis Vindum
48e5b0a731 Merge branch 'main' into rust-ti-associated 2025-04-07 17:07:05 +02:00
Simon Friis Vindum
8e76bb1a43 Rust: Minor changes based on PR review 2025-04-07 16:46:54 +02:00
Paolo Tranquilli
1f9455c434 Rust: add upgrade/downgrade scripts for struct_field_is_unsafe 2025-04-07 15:39:14 +02:00
Tom Hvitved
13f4a6afa6 Rust: Handle path attributes in path resolution 2025-04-07 15:24:17 +02:00
Paolo Tranquilli
afb97d2797 Rust: regenerate schema 2025-04-07 14:34:33 +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
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
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
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
bc92a99fae Merge pull request #19080 from geoffw0/deallocation
Rust: Query for dereferencing an invalid pointer
2025-04-04 21:25:40 +01:00
Geoffrey White
ff78c45e50 Rust: Abstractions then implementations. 2025-04-04 18:33:27 +01:00
Geoffrey White
47ee6c6b81 Rust: Give regex injection extendable sources as well. 2025-04-04 18:27:16 +01:00
Geoffrey White
0db551032c Rust: Make imports consistent and correct. 2025-04-04 18:23:53 +01:00
Geoffrey White
784ccb740b Rust: Define Rust queries and extensions more consistently. 2025-04-04 18:17:16 +01:00
Geoffrey White
1acbdbaaa2 Rust: Make all query sinks extend QuerySink::Range and import them into Stats.qll (this ensures that sink statistics are complete). 2025-04-04 18:02:59 +01:00
Geoffrey White
c783549b5c Merge branch 'main' into blockon 2025-04-04 17:35:00 +01:00
Geoffrey White
8e7e162ebc Merge branch 'main' into badalloc 2025-04-04 17:09:50 +01:00
Tom Hvitved
006cb024de Merge pull request #19217 from hvitved/rust/macro-expansion-inherit-location
Rust: Use macro call location as fall back in macro expansions
2025-04-04 16:25:45 +02:00
Tom Hvitved
8b6c8d7174 Rust: Minor path resolution fix for ($)crate paths 2025-04-04 14:44:39 +02:00
Geoffrey White
8b23945417 Merge branch 'main' into deallocation 2025-04-04 12:06:50 +01:00
Tom Hvitved
6f704f088e Merge pull request #19157 from hvitved/rust/path-resolution-prelude
Rust: Take prelude into account when resolving paths
2025-04-04 13:06:31 +02:00