Commit Graph

691 Commits

Author SHA1 Message Date
Cornelius Riemenschneider
a66f8209f9 Rust: Vendor 3rdparty dependencies.
We've been observing some performance issues using crate_universe on CI.
Therefore, we're moving to vendor the auto-generated BUILD files
in our repository. This should provide a nice speed boost, while
getting rid of the complexity of the "rust cache" job we've been using
when we had a lot of git dependencies.

This PR includes a vendor script, and I'll put up a CI job internally
that runs that vendor script on Cargo.toml and Cargo.lock changes, to check
that the vendored files are in sync.
2024-11-13 13:22:14 +01:00
Simon Friis Vindum
d9d3027667 Rust: Make improvements to getArgString based on PR comments 2024-11-12 09:45:33 +01:00
Simon Friis Vindum
cd2038a8f8 Rust: Setup inline flow test library 2024-11-11 16:41:59 +01:00
Simon Friis Vindum
aebce746df Rust: Create data flow nodes for parameters in the CFG
Before data flow nodes where created for all parameters in the AST. But
some AST parameters does not lead to any data flow (for instance
parameters in function pointer types).
2024-11-11 11:46:10 +01:00
Simon Friis Vindum
6a3d417836 Rust: Implement enclosing callable for additional classes 2024-11-11 11:11:29 +01:00
Simon Friis Vindum
bf07aa1cbd Merge pull request #17947 from paldepind/rust-ssa-node-printing
Rust: Mark SSA data flow nodes in output and hide them in paths
2024-11-11 09:55:26 +01:00
Simon Friis Vindum
55796badaf Rust: Mark SSA data flow nodes in output and hide them in paths 2024-11-11 08:48:48 +01:00
Geoffrey White
727a7d4957 Merge branch 'main' into unreachable4 2024-11-08 17:39:15 +00:00
Paolo Tranquilli
9684df8535 Rust: accept some inconsitencies for now
The modified result is just a change due to a semantic conflict after introducing some
`toString` implementations.

The new inconsistency should be looked at more in detail.
2024-11-08 18:05:19 +01:00
Geoffrey White
c7112ef278 Rust: Accept consistency check changes. 2024-11-08 14:22:04 +00:00
Paolo Tranquilli
9cea631399 Merge pull request #17931 from github/redsun82/rust-target-dir
Rust: allow to specify the target directory
2024-11-08 13:34:03 +01:00
Paolo Tranquilli
26839f5e15 Merge pull request #17882 from github/redsun82/rust-resolve
Rust: extract some resolved paths
2024-11-08 13:33:41 +01:00
Geoffrey White
3805d0f958 Merge branch 'main' into unreachable4 2024-11-08 11:46:34 +00:00
Geoffrey White
7c2c5ee1fa Rust: Fix expected consistency results. 2024-11-08 11:22:35 +00:00
Geoffrey White
fc444f1f9a Merge branch 'main' into unusedvar8 2024-11-08 11:20:12 +00:00
Simon Friis Vindum
f2569c45a9 Merge pull request #17921 from paldepind/rust-df-enclosing-callable
Rust: Implement enclosing callable
2024-11-08 10:36:59 +01:00
Paolo Tranquilli
083394073a Rust: rename target_dir to cargo_target_dir, add to extraction options
Also removed the now unused `extract_dependencies` one.
2024-11-08 09:53:50 +01:00
Simon Friis Vindum
22835c28ff Rust: Make a return node the last node before function exit 2024-11-07 15:21:11 +01:00
Simon Friis Vindum
1a000ecb46 Rust: Make minor data flow changes based on PR feedback 2024-11-07 13:04:54 +01:00
Paolo Tranquilli
4f6fda0100 Rust: allow to specify the target directory 2024-11-07 12:45:20 +01:00
Paolo Tranquilli
3488b9fbca Merge pull request #17920 from github/redsun82/rust-files
Rust: exclude uncompiled files from semantics and surface semantic-less reason
2024-11-07 11:04:12 +01:00
Geoffrey White
df7bcfd116 Rust: Accept dataflow consistency check changes. 2024-11-07 09:54:39 +00:00
Paolo Tranquilli
64d522e447 Rust: address review 2024-11-07 09:39:44 +01:00
Geoffrey White
b3f7a8a46f Merge pull request #17908 from geoffw0/dfcons
Rust: Expose counts of data flow inconsistencies
2024-11-06 19:11:04 +00:00
Geoffrey White
18ce8be302 Update rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2024-11-06 19:00:10 +00:00
Geoffrey White
fbfdd57383 Rust: Additional test cases for rust/dead-code. 2024-11-06 17:43:04 +00:00
Geoffrey White
a8b1cb3243 Rust: Make it so that all of the test functions may return. 2024-11-06 17:23:01 +00:00
Paolo Tranquilli
200715773f Rust: fix no_semantics_reason 2024-11-06 17:19:06 +01:00
Simon Friis Vindum
dadc6059a8 Rust: Implement enclosing callable 2024-11-06 16:23:24 +01:00
Paolo Tranquilli
2987743e44 Rust: exclude uncompiled files from semantics and surface semanticless reason 2024-11-06 15:22:28 +01:00
Geoffrey White
bf0e1008ce Rust: Move some test cases together. 2024-11-06 13:14:52 +00:00
Simon Friis Vindum
ff80b249ca Merge pull request #17917 from paldepind/rust-df-types
Rust: Fix unique type data flow inconsistency
2024-11-06 14:02:00 +01:00
Simon Friis Vindum
60986d8c9b Rust: Fix unique type data flow inconsistency 2024-11-06 13:48:10 +01:00
Tom Hvitved
f8058e40af Merge pull request #17915 from hvitved/rust/pat-literal-cfg
Rust: Include literals in the CFG for literal patterns
2024-11-06 13:09:49 +01:00
Geoffrey White
8a35e151d1 Rust: Move the function pointer parameter exclusion into VariableImpl.qll. 2024-11-06 10:51:41 +00:00
Tom Hvitved
9392bf796a Rust: Include literals in the CFG for literal patterns 2024-11-06 09:21:52 +01:00
Simon Friis Vindum
6054855edb Merge pull request #17888 from paldepind/rust-data-flow-consistency
Rust: Data flow additions
2024-11-05 21:29:18 +01:00
Geoffrey White
1a5d2e1f5d Rust: Correct a comment and autoformat. 2024-11-05 15:22:46 +00:00
Geoffrey White
93836a55e2 Rust: Clean up code / clarify responsibilities and fix the issue in rust/unused-value as well. 2024-11-05 15:16:59 +00:00
Geoffrey White
278760c735 Rust: Add another exception to rust/unused-variable. 2024-11-05 14:46:32 +00:00
Simon Friis Vindum
262a9f0cfa Rust: Make fixes in data flow based on PR feedback 2024-11-05 15:37:44 +01:00
Geoffrey White
35ffd0cc9c Rust: Add more test cases for unused variables (inspired by real world FPs). 2024-11-05 14:07:10 +00:00
Geoffrey White
3091083705 Rust: Call all the test cases. 2024-11-05 11:02:38 +00:00
Geoffrey White
088dd50f1f Rust: Update tests. 2024-11-05 10:30:41 +00:00
Geoffrey White
c8c747a110 Rust: Add total data flow inconsistencies to rust/summary/summary-statistics. 2024-11-04 19:10:44 +00:00
Geoffrey White
30cc55005d Rust: Add rust/diagnostics/data-flow-consistency-counts query for data flow inconsistency counts. 2024-11-04 19:09:30 +00:00
Simon Friis Vindum
c7b4e7c30a Rust: Small improvements to data flow
The predicate `ssaDefAssigns` was definitely broken before
2024-11-04 20:01:58 +01:00
Simon Friis Vindum
d9636b37b6 Rust: Add data flow test with assignment to mutable variable 2024-11-04 20:00:36 +01:00
Geoffrey White
91ebc0eb45 Rust: Add metadata to the DataFlowConsistency.ql query. 2024-11-04 18:53:34 +00:00
Simon Friis Vindum
8d59b9289b Rust: Make improvements to data flow based on PR feedback 2024-11-04 16:42:05 +01:00