Commit Graph

916 Commits

Author SHA1 Message Date
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
Simon Friis Vindum
262a9f0cfa Rust: Make fixes in data flow based on PR feedback 2024-11-05 15:37:44 +01: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
8d59b9289b Rust: Make improvements to data flow based on PR feedback 2024-11-04 16:42:05 +01:00
Simon Friis Vindum
2818893010 Rust: Refactor AstCfgNode to use a field
Co-authored-by: Tom Hvitved <hvitved@github.com>
2024-11-04 15:01:25 +01:00
Simon Friis Vindum
a3c7d5a469 Merge branch 'main' into rust-data-flow-consistency 2024-11-04 11:10:48 +01:00
Simon Friis Vindum
633bac633c Rust: CFG classes are in expression module iff they correspond to expressions 2024-11-04 10:34:08 +01:00
Simon Friis Vindum
82076ee0b8 Rust: Propagate data flow through a few expression types 2024-11-03 16:12:59 +01:00
Simon Friis Vindum
01141ccdc9 Rust: Integrate SSA into data flow 2024-11-03 16:12:56 +01:00
Paolo Tranquilli
cee2ed0ec4 Rust: extract some resolved paths 2024-10-31 14:19:15 +01:00
Tom Hvitved
2b340b18dd Rust: Exclude results inside macro expansions from unused entity queries 2024-10-31 11:42:43 +01:00
Simon Friis Vindum
00b8a29da7 Rust: Add predicate for speculative taint step 2024-10-31 09:09:39 +01:00
Simon Friis Vindum
b96698aee3 Merge pull request #17871 from paldepind/rust-data-flow-skeleton
Rust: Add basic skeleton setup for data flow
2024-10-31 08:26:11 +01:00
Paolo Tranquilli
7e8a09aea1 Merge pull request #17825 from github/redsun82/rust-canonical-path
Rust: add `extended_canonical_path` and `crate_origin` to `Item`
2024-10-30 18:13:05 +01:00
Simon Friis Vindum
efa59fd2b6 Rust: Make changes based on PR feedback 2024-10-30 16:01:26 +01:00
Simon Friis Vindum
44bebedae6 Rust: Add basic skeleton setup for data flow 2024-10-30 13:16:26 +01:00
Tom Hvitved
7ddc8f087d Merge pull request #17786 from paldepind/rust-saa-additions
Rust: SSA additions
2024-10-29 09:51:38 +01:00
Simon Friis Vindum
8f8564ddfd Rust: Address PR comments 2024-10-28 15:15:38 +01:00
Tom Hvitved
cfa1ed38b4 Merge pull request #17844 from hvitved/rust/location-impl
Rust: Cache `Locatable.getLocation` and `Location`
2024-10-28 14:41:36 +01:00