Commit Graph

535 Commits

Author SHA1 Message Date
Tom Hvitved
be7aca9780 Address review comments 2024-11-21 10:32:06 +01:00
Tom Hvitved
e6887f982e Rust: Use nodes from CfgNodes.qll in DataFlowImpl.qll 2024-11-21 10:21:13 +01:00
Tom Hvitved
ca18005e44 Rust: Add some manual classes to CfgNodes.qll 2024-11-21 10:21:12 +01:00
Tom Hvitved
c8736e8a3d Rust: Auto-generate CfgNodes.qll 2024-11-21 10:21:11 +01:00
Simon Friis Vindum
8c74478ef4 Merge pull request #18041 from paldepind/rust-cfg-self
Rust: Include `self` parameters in the CFG
2024-11-21 08:53:52 +01:00
Paolo Tranquilli
d609c1b7e6 Rust: fix OrPat.toString 2024-11-20 17:00:13 +01:00
Paolo Tranquilli
b4af5a61d1 Rust: more advanced toString 2024-11-20 16:21:23 +01:00
Tom Hvitved
42e0d7ce10 Util: Refactor DenseRank implementation 2024-11-20 13:09:59 +01:00
Simon Friis Vindum
aab0d5e9e4 Rust: Refactor to avoid needing getNumberOfSelfParams 2024-11-20 12:35:52 +01:00
Paolo Tranquilli
4d04c5af83 Rust: fix non-existent string representations 2024-11-20 12:08:51 +01:00
Simon Friis Vindum
24adbb80c7 Rust: Include self parameters in the CFG 2024-11-20 11:50:46 +01:00
Paolo Tranquilli
57973df795 Rust: make CallExpr.toString use call identifier if present 2024-11-20 10:00:10 +01:00
Paolo Tranquilli
a709fc6a54 Rust: add some toString implementations 2024-11-19 17:21:08 +01:00
Simon Friis Vindum
e5951516b8 Merge pull request #18026 from paldepind/rust-df-local
Rust: Add local data flow edge for SSA nodes
2024-11-19 15:41:25 +01:00
Tom Hvitved
7a065746d6 Merge pull request #18024 from hvitved/rust/cfg/async-block-return
Rust: Handle early returns in `async` blocks in CFG
2024-11-19 15:21:34 +01:00
Simon Friis Vindum
2c9bee6208 Rust: Only add data flow edge to SSA write definitions from their underlying CFG node 2024-11-19 14:32:31 +01:00
Geoffrey White
49eefccde1 Rust: Autoformat. 2024-11-19 11:49:02 +00:00
Simon Friis Vindum
23bfa8a9bc Rust: Add local data flow edge for SSA definitons 2024-11-19 12:19:47 +01:00
Geoffrey White
c7c6924fda Rust: Implement query, source/sink/barrier classes and concepts. All of this is framework, nothing is concretely modelled yet. 2024-11-19 11:09:43 +00:00
Simon Friis Vindum
b3668f8183 Merge pull request #17971 from paldepind/rust-df-patterns
Rust: Include patterns as data flow nodes
2024-11-19 11:12:12 +01:00
Simon Friis Vindum
2307df41ed Merge pull request #18010 from paldepind/rust-df-viable-callable
Rust: Include method calls in DataFlowCall and implement simple call target resolution
2024-11-19 11:10:34 +01:00
Tom Hvitved
bb8d0b4881 Rust: Handle early returns in async blocks in CFG 2024-11-19 10:33:25 +01:00
Tom Hvitved
74b5ebe4bf Rust: Improve CFG for let expressions 2024-11-18 15:51:16 +01:00
Simon Friis Vindum
58a1b004ab Rust: Include method calls in DataFlowCall and implement simple call
target resolution
2024-11-18 15:27:21 +01:00
Simon Friis Vindum
1a198bfb3a Merge branch 'main' into rust-df-patterns 2024-11-18 10:06:01 +01:00
Simon Friis Vindum
0e025abd13 Rust: Add custom toString predicate for path expression 2024-11-18 09:09:03 +01:00
Simon Friis Vindum
9bf53f50fa Rust: Get CFG scope and update expected results 2024-11-15 10:00:43 +01:00
Simon Friis Vindum
d3f5b479f6 Merge branch 'main' into rust-df-patterns 2024-11-13 16:22:07 +01:00
Simon Friis Vindum
78edafc94c Rust: Include patterns as data flow nodes 2024-11-12 18:43:06 +01:00
Simon Friis Vindum
274d9421a7 Rust: Cache getEnclosingCfgScope 2024-11-12 13:15:20 +01:00
Simon Friis Vindum
03292310b6 Merge branch 'main' into rust-async-blocks 2024-11-12 09:36:04 +01:00
Simon Friis Vindum
63d84edfae Rust: Fix minor issues from PR feedback 2024-11-12 08:37:56 +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
9f0fba16cd Rust: Fix grammar and add documentation comments 2024-11-11 09:46:47 +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
Simon Friis Vindum
a5e13ee71b Rust: Handle async blocks in SSA analysis 2024-11-10 11:59:37 +01:00
Simon Friis Vindum
8e6844e4da Merge branch 'main' into rust-async-blocks 2024-11-10 09:28:14 +01:00
Simon Friis Vindum
d52a2d67a2 Rust: Create CFG scope for async blocks 2024-11-08 15:00:02 +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
fc444f1f9a Merge branch 'main' into unusedvar8 2024-11-08 11:20:12 +00: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
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
Simon Friis Vindum
dadc6059a8 Rust: Implement enclosing callable 2024-11-06 16:23:24 +01: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