Commit Graph

1541 Commits

Author SHA1 Message Date
Tom Hvitved
3fed7f5397 Merge pull request #19714 from hvitved/rust/fix-bad-join
Rust: Fix bad join
2025-06-11 09:08:52 +02:00
Tom Hvitved
64ab7c78c8 Merge pull request #19717 from hvitved/rust/use-get-arg-param
Rust: Use `get(An){Arg,Param}` helper predicates
2025-06-10 18:48:51 +02:00
Geoffrey White
652d32d4ff Merge pull request #19626 from geoffw0/futures
Rust: Model futures-io, rustls, futures-rustls
2025-06-10 15:23:43 +01:00
Tom Hvitved
e41b4f4022 Rust: Use get(An){Arg,Param} helper predicates 2025-06-10 15:45:34 +02:00
Paolo Tranquilli
8f0f2006a8 Merge pull request #19708 from github/redsun82/rust-getArg-getParam
Rust: add `Callable::getParam` and `CallExprBase::getArg` shortcuts
2025-06-10 15:31:05 +02:00
Tom Hvitved
209cfb78a3 Rust: Fix bad join
```
[2025-06-10 15:21:37] (83s) Tuple counts for TypeMention::PathTypeReprMention.aliasResolveTypeAt/1#dispred#ae16f47b#fbf#cpe#13/2@i5#5a5451wi after 57.7s:
                      205999      ~1028%     {3} r1 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_1_0_2#prev_delta` WITH `_TypeAlias::Generated::TypeAlias.getTypeRepr/0#dispred#5fd7e521_TypeMention::PathTypeReprMention#a35__#join_rhs#1` ON FIRST 2 OUTPUT Rhs.2, Lhs.2 'result', Rhs.3 'this'
                                             {3}    | AND NOT `project#TypeMention::pathGetTypeParameter/2#fd301eed#2`(FIRST 2)
                      204000      ~982%      {2}    | SCAN OUTPUT In.2 'this', In.1 'result'

                      5499        ~448%      {7} r2 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev_delta` WITH `_GenericArgList::GenericArgList.getTypeArg/1#dispred#1c780027_PathSegment::Generated::PathSegment.ge__#join_rhs#1` ON FIRST 1 OUTPUT Rhs.1, Rhs.2 'this', Rhs.3, Lhs.1 'result', _, Lhs.2, _
                                             {5}    | REWRITE WITH Tmp.4 := "", Tmp.6 := "", Out.4 := InverseAppend(Tmp.4,In.5,Tmp.6) KEEPING 5
                      2500        ~398%      {5}    | SCAN OUTPUT In.0, In.2, In.4, In.1 'this', In.3 'result'
                      0           ~0%        {2}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev` ON FIRST 3 OUTPUT Lhs.3 'this', Lhs.4 'result'

                      9000        ~489%      {7} r3 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev_delta` WITH `_PathSegment::Generated::PathSegment.getGenericArgList/0#dispred#e072653b__Path::Generated::Path.get__#join_rhs#1` ON FIRST 1 OUTPUT Rhs.1, Rhs.2 'this', Rhs.3, Lhs.1, _, Lhs.2, _
                                             {5}    | REWRITE WITH Tmp.4 := "", Tmp.6 := "", Out.4 := InverseAppend(In.5,Tmp.4,Tmp.6) KEEPING 5
                      5000        ~411%      {5}    | SCAN OUTPUT In.4, In.0, In.1 'this', In.2, In.3
                      10461919500 ~610%      {6}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_1_0_2#prev` ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2 'this', Lhs.4, Rhs.2 'result'
                      500         ~0%        {5}    | JOIN WITH `GenericArgList::GenericArgList.getTypeArg/1#dispred#1c780027_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Rhs.2, Lhs.4, Lhs.3 'this', Lhs.5 'result'
                      0           ~0%        {2}    | JOIN WITH `TypeMention::pathGetTypeParameter/2#fd301eed` ON FIRST 3 OUTPUT Lhs.3 'this', Lhs.4 'result'

                      204000      ~982%      {2} r4 = r1 UNION r2 UNION r3
                      203964      ~982%      {2}    | AND NOT `TypeMention::PathTypeReprMention.aliasResolveTypeAt/1#dispred#ae16f47b#fbf#cpe#13#prev`(FIRST 2)
                                             return r4
```
2025-06-10 15:25:05 +02:00
Geoffrey White
fd2154d389 Merge branch 'main' into futures 2025-06-10 14:16:06 +01:00
Geoffrey White
918fa3684f Merge branch 'main' into futures 2025-06-10 13:24:09 +01:00
Paolo Tranquilli
0d036992e0 Merge branch 'main' into redsun82/mad 2025-06-10 13:39:10 +02:00
Tom Hvitved
3d395dde47 Address review comments 2025-06-10 13:38:31 +02:00
Paolo Tranquilli
3562c48068 Merge branch 'main' into redsun82/rust-getArg-getParam 2025-06-10 13:15:37 +02:00
Tom Hvitved
c6efc05de1 Rust: Reimplement type inference for impl Traits and await expressions 2025-06-10 12:39:20 +02:00
Tom Hvitved
821f2fd681 Rust: Type inference for .await expressions 2025-06-10 12:38:39 +02:00
Tom Hvitved
79a8942b0f Merge pull request #19614 from hvitved/rust/path-resolution-extern-crate
Rust: Path resolution for `extern crate`s
2025-06-10 12:37:46 +02:00
Paolo Tranquilli
bcfc009228 Merge branch 'main' into redsun82/mad 2025-06-10 10:53:52 +02:00
Paolo Tranquilli
a405a12e93 Rust: add Callable::getParam and CallExprBase::getArg shortcuts 2025-06-10 09:51:26 +02:00
github-actions[bot]
21463a9653 Post-release preparation for codeql-cli-2.22.0 2025-06-09 18:50:20 +00:00
github-actions[bot]
88ba02edf8 Release preparation for version 2.22.0 2025-06-09 18:14:51 +00:00
Geoffrey White
b3330b5636 Rust: Allow parameter accesses as sources. 2025-06-09 17:58:42 +01:00
Geoffrey White
858eec390d Rust: Exclude results where the source is a reference. 2025-06-09 17:58:40 +01:00
Geoffrey White
fe20fb403d Rust: More robust fix for closures. 2025-06-09 16:41:31 +01:00
Chuan-kai Lin
631502e129 Merge branch 'main' into cklin/rc-3.18-mergeback 2025-06-09 07:19:40 -07:00
Geoffrey White
21b4baeb42 Rust: Have the alert message cite the variable, so it's easier to understand whether the alert is correct. 2025-06-09 10:28:25 +01:00
Geoffrey White
79f8584efb Rust: Fix spurious results involving closures. 2025-06-09 10:25:48 +01:00
Geoffrey White
bf4ea02dd2 Rust: Implement the query. 2025-06-09 10:25:40 +01:00
Geoffrey White
526620ca41 Rust: Add some helper predicates for finding enclosing blocks. 2025-06-05 16:30:28 +01:00
Paolo Tranquilli
ec77eb3ec8 Rust: regenerate MaD models 2025-06-05 10:08:47 +02:00
Tom Hvitved
721ffb11cf Rust: Path resolution for extern crates 2025-06-04 21:14:22 +02:00
Tom Hvitved
76c6d7104d Merge pull request #19669 from hvitved/rust/external-location-post-processing
Rust: Remove external locations in tests using post-processing
2025-06-04 16:52:40 +02:00
Arthur Baars
189c16b7bc Merge pull request #19630 from github/aibaars/qldoc-ast
Rust: add documentation for AST nodes
2025-06-04 16:04:56 +02:00
Arthur Baars
e87878298e Rust: run codegen 2025-06-04 15:41:52 +02:00
Tom Hvitved
aa0fc05df8 Rust: Remove external locations in tests using post-processing 2025-06-04 13:07:43 +02:00
Paolo Tranquilli
5f474a7185 Rust: Use QL computed canonical paths in MaD Field tokens
Also regenerate all auto-generated models with latest extractor.
2025-06-04 09:43:45 +02:00
Arthur Baars
348dc9969b Rust: remove stray space 2025-06-03 10:55:34 +02:00
Paolo Tranquilli
1110fea2a2 Rust: add upgrade/downgrade scripts for new tables 2025-06-03 10:41:32 +02:00
Paolo Tranquilli
667eed9b9b Rust: store in the DB if a library function or const had a body
When skipping bodies in library code, we lose the information whether a
body was originally present. This can be important, for example when
determining whether a trait method has a default implementation.

With this change that information can be recovered via the
`hasImplementation` predicate.
2025-06-03 10:41:31 +02:00
Tom Hvitved
ae4a425608 Merge pull request #19605 from hvitved/rust/jump-to-def-extensions
Rust: Extend jump-to-def to include paths and `mod file;` imports
2025-06-03 10:19:28 +02:00
Tom Hvitved
52aa7e3c7d Merge pull request #19624 from paldepind/type-inference-experiment
Rust: Refactor type equality
2025-06-02 19:06:18 +02:00
Arthur Baars
ae0c547e89 Rust: fix CFG for MacroPat 2025-06-02 16:37:55 +02:00
Tom Hvitved
bf39058573 Merge pull request #19611 from hvitved/rust/path-resolution-std-prelude
Rust: Also take the `std` prelude into account when resolving paths
2025-06-02 13:04:57 +02:00
Arthur Baars
c44a7c3036 Rust: codegen 2025-05-30 22:56:04 +02:00
Arthur Baars
f0db47b571 Rust: run codegen 2025-05-30 11:51:35 +02:00
Geoffrey White
10f894b9a1 Rust: Model more methods. 2025-05-29 16:45:25 +01:00
Geoffrey White
4d51a15cc4 Rust: Add model variants for when the qualifier is expressed as an arg (reference). We shouldn't need these. 2025-05-29 16:45:23 +01:00
Geoffrey White
84c72f68af Rust: Add models for read methods. 2025-05-29 16:45:22 +01:00
Geoffrey White
13f6de9924 Rust: Add source / basic basic models. 2025-05-29 16:45:21 +01:00
Simon Friis Vindum
08277e4ecc Rust: Refactor type equality 2025-05-29 16:07:37 +02:00
Simon Friis Vindum
437246f3c9 Merge pull request #19593 from paldepind/rust/operator-overloading
Rust: Type inference for operator overloading
2025-05-29 12:28:25 +02:00
Tom Hvitved
3fa308e723 Rust: Also take the std prelude into account when resolving paths 2025-05-28 16:57:19 +02:00
Simon Friis Vindum
6500ebf631 Rust: Fixes based on PR review 2025-05-28 16:01:28 +02:00