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
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