Commit Graph

834 Commits

Author SHA1 Message Date
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
Arthur Baars
2326861b23 Merge pull request #17805 from github/aibaars/local-defs
Rust: Rust: add jump to definition for format arguments
2024-10-28 14:17:40 +01:00
Tom Hvitved
711dfc3592 Rust: Cache Locatable.getLocation and Location 2024-10-28 13:33:49 +01:00
Paolo Tranquilli
9c95a17882 Rust: add block ids to canonical paths, making them "extended" 2024-10-28 12:41:05 +01:00
Simon Friis Vindum
b86a5810b3 Rust: Small refactor based on PR feedback 2024-10-28 11:45:46 +01:00
Simon Friis Vindum
c5b01eb629 Merge branch 'main' into rust-saa-additions 2024-10-28 11:42:32 +01:00
Arthur Baars
fdf99e2f50 Rust: filter out definitions that are inside expanded macros 2024-10-28 11:27:59 +01:00
Arthur Baars
c4126e4410 Rust: add tests for Definitions.qll 2024-10-28 11:17:48 +01:00
Arthur Baars
40ef9ad805 Rust: make TDef cached 2024-10-28 10:21:43 +01:00
Paolo Tranquilli
9789059e9f Rust: add more thourough canonical path testing 2024-10-25 16:58:05 +02:00
Paolo Tranquilli
194e0daa8c Rust: add canonical_path and crate_origin to Item 2024-10-25 16:58:04 +02:00
Simon Friis Vindum
bfa6113366 Rust: Fix grammar in comment
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2024-10-25 16:23:04 +02:00
Simon Friis Vindum
f7a45e6650 Rust: Don't consider parameters in trait method definitions without bodies as variables 2024-10-25 15:56:58 +02:00
Arthur Baars
f092594a52 Rust: add location definitions for format arguments 2024-10-25 12:57:08 +02:00
Arthur Baars
997a622496 Rust: also implement localReferences.ql 2024-10-25 12:57:06 +02:00
Tom Hvitved
ba600b0791 Merge pull request #17829 from hvitved/rust/cfg-stage
Rust: Collapse cached CFG logic into one stage
2024-10-25 12:45:38 +02:00
Arthur Baars
8d4bb97b1a Rust: make VariableAccess non-abstract 2024-10-25 12:21:23 +02:00
Arthur Baars
a08b4b7372 Rust: allow VariableAccess elements to have another primary QL class 2024-10-25 11:02:55 +02:00
Arthur Baars
a6e69eb147 Revert "Rust: avoid classes with multiple getAPrimaryQLClass result"
This reverts commit 110d2ea775.
2024-10-25 10:59:31 +02:00
Simon Friis Vindum
334602a50a Rust: Handle calls that might read/write variables through closures
This implementation is copied and adapted from the Ruby SSA
implementation.
2024-10-25 10:50:32 +02:00
Simon Friis Vindum
75103f4b26 Merge branch 'main' into rust-saa-additions 2024-10-25 10:43:59 +02:00
Arthur Baars
bd19661b60 Address comments 2024-10-24 16:40:19 +02:00
Arthur Baars
a7628e7f4e Rust: revert unnecessary changes to VariableImpl.qll 2024-10-24 15:19:01 +02:00
Arthur Baars
bad9262f12 Rust: create locations for Format and FormatArgument 2024-10-24 15:14:11 +02:00
Arthur Baars
017d492348 Rust: implement synthesized Locations 2024-10-24 15:14:10 +02:00
Arthur Baars
110d2ea775 Rust: avoid classes with multiple getAPrimaryQLClass result 2024-10-24 15:14:09 +02:00
Arthur Baars
ca469f6d5c Rust: introduce PathExprBase class 2024-10-24 15:14:07 +02:00
Arthur Baars
2b65e78674 Rust: fix bad join order 2024-10-24 15:13:27 +02:00
Arthur Baars
a3b903f13a Rust: simplify synth constructors 2024-10-24 15:13:25 +02:00
Arthur Baars
8843a7c389 Rust: rename {Implicit,FormatTemplate}VariableAccess 2024-10-24 15:13:24 +02:00
Arthur Baars
fc4ac9bcf8 Rust: implement Format and FormatArgument classes 2024-10-24 15:13:23 +02:00
Arthur Baars
58dfe6c667 Rust: run codegen 2024-10-24 15:13:22 +02:00
Arthur Baars
d4b2dc3711 Apply suggestion 2024-10-24 15:13:20 +02:00