Tom Hvitved
17441a5462
Rust: Add missing .Reference in various models
2026-01-12 14:21:45 +01:00
Tom Hvitved
6b34d0d250
Merge pull request #21123 from hvitved/rust/fix-path-models
...
Rust: Improve/add various models
2026-01-12 12:20:56 +01:00
Simon Friis Vindum
41921a85bb
Rust: Make function trait syntax without return type default to unit
2026-01-09 16:08:01 +01:00
Simon Friis Vindum
d45269609a
Rust: Add test with fn trait syntax without return type
2026-01-09 15:38:12 +01:00
Tom Hvitved
f3d78a4e0b
Rust: Update expected test output
2026-01-09 14:40:04 +01:00
Tom Hvitved
609eb17e30
Rust: Add more models
2026-01-09 14:40:03 +01:00
Tom Hvitved
0d0029f5a3
Rust: Update expected test output
2026-01-09 14:40:01 +01:00
Tom Hvitved
792908586a
Rust: Add some ffi models
2026-01-09 14:40:00 +01:00
Tom Hvitved
31b0d3eb1d
Rust: Fix some models in fs.model.yml
2026-01-09 14:39:59 +01:00
Tom Hvitved
636bbe30f9
Merge pull request #21122 from hvitved/rust/summary-read-taint-step
...
Rust: Also lift read steps in summaries as taint steps
2026-01-09 14:39:39 +01:00
Simon Friis Vindum
ac62a9fe57
Merge pull request #21133 from paldepind/rust/type-item-path-resolution
...
Rust: Use `TypeItem` in path resolution
2026-01-09 14:35:12 +01:00
Tom Hvitved
209ee9236b
Rust: Also lift read steps in summaries as taint steps
2026-01-09 12:13:46 +01:00
Tom Hvitved
1a29b32af9
Merge pull request #20987 from hvitved/rust/type-inference-deref-trait
...
Rust: Handle `Deref` trait in type inference and data flow
2026-01-09 12:10:46 +01:00
Simon Friis Vindum
11bd334370
Rust: Use TypeItem in path resolution
2026-01-09 11:40:16 +01:00
Tom Hvitved
e2eaf80202
Rust: Fix QL4QL finding
2026-01-09 11:28:37 +01:00
Tom Hvitved
6028cd6636
Address review comments
2026-01-09 11:14:23 +01:00
Simon Friis Vindum
56f5328530
Rust: Use getAssocItem consistently in stdlib classes
2026-01-08 11:59:10 +01:00
Tom Hvitved
fef00c1668
Add change note
2026-01-07 14:17:48 +01:00
Tom Hvitved
1e792132ba
Rust: Add Result::Err to excludeFieldTaintStep
2026-01-07 11:37:08 +01:00
Tom Hvitved
dce21e595e
Rust: Model implicit Deref trait calls in data flow
2026-01-07 10:51:56 +01:00
Tom Hvitved
0c7aeb4bce
Rust: Update data flow test to use implicit borrow
2026-01-07 10:51:55 +01:00
Tom Hvitved
4540662ab9
Rust: Model Deref trait in type inference
2026-01-07 10:51:53 +01:00
Tom Hvitved
caa0e90cd8
Rust: More type inference tests
2026-01-07 10:51:52 +01:00
Geoffrey White
13df23630b
Rust: Effect of lifting content reads as taint steps.
2026-01-06 16:47:07 +00:00
Geoffrey White
6e2702c3af
Rust: Add some taint tests involving tuples.
2026-01-06 16:38:36 +00:00
Tom Hvitved
1a2f72252a
Merge pull request #21072 from hvitved/rust/mad-provenance-refactor
...
Rust: Refactor MaD provenance-based filtering
2026-01-06 14:59:42 +01:00
Tom Hvitved
da6d0abe31
Address review comment
2026-01-06 14:35:07 +01:00
Tom Hvitved
ae9588e176
Rust: Improve TuplePositionContent.getAnAccess
2026-01-06 09:24:32 +01:00
Tom Hvitved
836b667a62
Address review comment
2026-01-05 19:47:02 +01:00
Tom Hvitved
2543754dd4
Rust: Remove newtype construction
2026-01-05 13:10:40 +01:00
Tom Hvitved
5bc457f6da
Rust: Move logic from AccessAfterLifetimeExtensions.qll to AccessAfterLifetime.ql
2026-01-05 13:10:38 +01:00
Tom Hvitved
06a5648336
Rust: Speedup AccessAfterLifetime.ql
...
Before
```
Pipeline standard for AccessAfterLifetimeExtensions::AccessAfterLifetime::mayEncloseOnStack/2#3cdefece#bf@61cb32j5 was evaluated in 30 iterations totaling 44856ms (delta sizes total: 241646328).
241404616 ~1% {2} r1 = SCAN `AccessAfterLifetimeExtensions::AccessAfterLifetime::mayEncloseOnStack/2#3cdefece#bf#prev_delta` OUTPUT In.1, In.0
7379161442 ~1080% {2} | JOIN WITH `_AstNode::AstNode.getEnclosingBlock/0#5c38e65a_AstNode::AstNode.getEnclosingCallable/0#5a548913_Bloc__#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1
333897324 ~40% {2} | AND NOT `AccessAfterLifetimeExtensions::AccessAfterLifetime::mayEncloseOnStack/2#3cdefece#bf#prev`(FIRST 2)
297961888 ~24% {2} | JOIN WITH `project#AccessAfterLifetimeExtensions::AccessAfterLifetime::sourceValueScope/3#d065ba16#2` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
return r1
```
2026-01-05 13:10:37 +01:00
Tom Hvitved
f23351afca
Rust: Refactor MaD provanance-based filtering
2025-12-19 19:35:41 +01:00
Simon Friis Vindum
e0e493a9e3
Rust: Address review comments
2025-12-19 13:53:38 +01:00
Simon Friis Vindum
dde845e92f
Rust: Refactor type inference to use new TypeItem class
2025-12-18 16:08:27 +01:00
Tom Hvitved
aae6cd93a2
Address review comments
2025-12-18 12:47:43 +01:00
Tom Hvitved
3c6a757c3e
Rust: Distinguish &mut T from &T in type inference
2025-12-18 12:47:42 +01:00
Simon Friis Vindum
da99bbf6a6
Merge pull request #21059 from paldepind/rust/adt-class
...
Rust: Improve and rename `Adt` class
2025-12-18 10:41:11 +01:00
Simon Friis Vindum
96a986228d
Rust: Revert accidental changes
2025-12-18 09:04:07 +01:00
Simon Friis Vindum
9e8735f84c
Merge pull request #20878 from paldepind/rust/axum-model
...
Rust: Add models for Axum
2025-12-17 15:47:28 +01:00
Tom Hvitved
47e375f6e4
Merge pull request #21057 from hvitved/rust/fix-bad-join
...
Rust: Fix bad join
2025-12-17 15:34:45 +01:00
Simon Friis Vindum
8564c1f458
Rust: Add change note
2025-12-17 14:50:50 +01:00
Simon Friis Vindum
97fd70e4f4
Rust: Accept change to expected file
2025-12-17 14:19:19 +01:00
Simon Friis Vindum
f1364caaa9
Rust: Add upgrade and downgrade scripts
2025-12-17 14:19:18 +01:00
Simon Friis Vindum
b64809cbd3
Rust: Adapt QL to AST changes
2025-12-17 14:19:16 +01:00
Tom Hvitved
5c604fce48
Rust: Fix bad join
...
Before
```
Evaluated relational algebra for predicate TypeInference::MethodResolution::MethodCall.getTrait/0#dispred#fc13ba6e@914858bt with tuple counts:
153112 ~2% {2} r1 = SCAN `Operation::Operation.isOverloaded/3#f0e64084` OUTPUT In.0, In.1
153112 ~2% {2} | STREAM DEDUP
18807 ~0% {2} r2 = JOIN `TypeInference::getCallExprTraitQualifier/1#c084fe9f` WITH TypeInference::MethodResolution::MethodCallCallExpr#6eae461f ON FIRST 1 OUTPUT Lhs.0, Lhs.1
65859035 ~3% {3} r3 = JOIN `_IndexExpr::Generated::IndexExpr#9975e37a_TypeInference::MethodResolution::MethodCallIndexExpr.isInM__#shared` WITH Trait::Generated::Trait#ecf50173 CARTESIAN PRODUCT OUTPUT Rhs.0, _, Lhs.0
65859035 ~0% {3} | REWRITE WITH Out.1 := "core::ops::index::Index"
11191 ~0% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
671 ~0% {1} r4 = JOIN IndexExpr::Generated::IndexExpr#9975e37a WITH `TypeInference::MethodResolution::MethodCallIndexExpr.isInMutableContext/0#dispred#8c8ad425` ON FIRST 1 OUTPUT Lhs.0
3948835 ~2% {3} | JOIN WITH Trait::Generated::Trait#ecf50173 CARTESIAN PRODUCT OUTPUT Rhs.0, _, Lhs.0
3948835 ~2% {3} | REWRITE WITH Out.1 := "core::ops::index::IndexMut"
671 ~1% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
183781 ~0% {2} r5 = r1 UNION r2 UNION r3 UNION r4
return r5
```
After
```
Evaluated relational algebra for predicate TypeInference::MethodResolution::MethodCall.getTrait/0#dispred#fc13ba6e@1b4a55e3 with tuple counts:
153112 ~2% {2} r1 = SCAN `Operation::Operation.isOverloaded/3#f0e64084` OUTPUT In.0, In.1
153112 ~2% {2} | STREAM DEDUP
11191 ~0% {2} r2 = JOIN `_IndexExpr::Generated::IndexExpr#9975e37a_TypeInference::MethodResolution::MethodCallIndexExpr.isInM__#shared` WITH Stdlib::IndexTrait#e80543a5 CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0
18807 ~0% {2} r3 = JOIN `TypeInference::getCallExprTraitQualifier/1#c084fe9f` WITH TypeInference::MethodResolution::MethodCallCallExpr#6eae461f ON FIRST 1 OUTPUT Lhs.0, Lhs.1
671 ~0% {1} r4 = JOIN IndexExpr::Generated::IndexExpr#9975e37a WITH `TypeInference::MethodResolution::MethodCallIndexExpr.isInMutableContext/0#dispred#8c8ad425` ON FIRST 1 OUTPUT Lhs.0
671 ~1% {2} | JOIN WITH Stdlib::IndexMutTrait#4d6c31bd CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0
183781 ~0% {2} r5 = r1 UNION r2 UNION r3 UNION r4
return r5
```
2025-12-17 11:52:28 +01:00
Simon Friis Vindum
dd02ac3964
Rust: Update generated files
2025-12-17 11:13:13 +01:00
Simon Friis Vindum
ca6c054256
Rust: Rename Adt class and lift common predicates to it
2025-12-17 11:13:11 +01:00
Simon Friis Vindum
22bc924c26
Rust: Apply Black formatter to annotations.py
2025-12-17 11:13:10 +01:00
Tom Hvitved
eb56cbd358
Rust: Fix candidate receiver type calculation for trait bounds
2025-12-17 11:06:27 +01:00