Commit Graph

134 Commits

Author SHA1 Message Date
Tom Hvitved
62d4e6fe3f Rust: Implement basic type inference in QL 2025-03-13 13:23:11 +01:00
Tom Hvitved
8777bc42c7 Rust: Add get(Immediate)Child predicate 2025-03-13 11:13:01 +01:00
Arthur Baars
8ec8824cb7 Rust: implement Crate::toString 2025-03-10 10:16:20 +01:00
Arthur Baars
75ca04f3dd Rust: add Crate to dbscheme 2025-03-10 10:16:12 +01:00
Paolo Tranquilli
cbae16b392 Rust: rerun code generation 2025-02-25 13:31:16 +01:00
Paolo Tranquilli
689e7b8440 Rust: fix <X as Y> path extraction
This works around a quirk in rust-analyzer's AST generation machinery,
where for an `<X as Y>` path there might be no way to directly get `Y`
from the path segment.
2025-02-24 10:38:15 +01:00
Simon Friis Vindum
4a01a4df37 Rust: Remove nonsensical no-match CFG edges 2025-02-20 10:51:33 +01:00
Simon Friis Vindum
8b3c1ab698 Merge branch 'main' into rust-ref-pattern 2025-02-17 10:36:39 +01:00
Tom Hvitved
498828e91a Rust: Implement TypeParam.to(Abbreviated)String 2025-02-12 13:23:51 +01:00
Simon Friis Vindum
7476aeaabf Rust: Handle ref patterns in data flow
To do this we:
* Let SSA writes target the name inside identifier patterns instead of
  the pattern itself
* Include relevant names in the data flow graph
* Add a store step from a identifier patterns with `ref` into the
  contained name. So we have an edge `ref a` -> `a` that stores in the
  reference content type.
2025-02-12 13:20:11 +01:00
Tom Hvitved
aca70cd1ea Merge pull request #18675 from hvitved/rust/struct-tuple-field
Rust: Implement data flow through tuple structs
2025-02-06 19:17:53 +01:00
Tom Hvitved
95ab48dfbf Rust: Run codegen 2025-02-05 13:27:08 +01:00
Tom Hvitved
ebe2084507 Rust: Run codegen 2025-02-03 09:11:10 +01:00
Arthur Baars
8d96c87abe Rust: add UseTree::is_star 2025-01-28 16:12:25 +01:00
Paolo Tranquilli
3c064284b0 Rust: aggregate projects into workspaces 2025-01-15 17:17:19 +01:00
Tom Hvitved
0795c244e9 Rust: Move QL doc into annotations.py 2025-01-10 14:27:53 +01:00
Tom Hvitved
166f8916cc Rust: Remove Format.getArgument 2025-01-10 12:51:42 +01:00
Tom Hvitved
033cd1778e Rust: Include index in Format.getArgument 2025-01-08 14:04:48 +01:00
Simon Friis Vindum
2ef9339d00 Rust: Generate CFG node for FormatArgsArg 2025-01-03 13:58:25 +01:00
Arthur Baars
029e2604a3 Rust: //rust/codegen 2024-12-17 14:07:44 +01:00
Paolo Tranquilli
4c4a8d7619 Rust: extract isRef for SelfParam 2024-12-16 14:24:56 +01:00
Paolo Tranquilli
720bfc8ff1 Rust: tweak/define more toString implementations 2024-12-05 17:43:47 +01:00
Simon Friis Vindum
5b6ce3e0d0 Merge branch 'main' into rust-taint 2024-12-05 09:34:25 +01:00
Simon Friis Vindum
d6ab7d2aff Merge branch 'main' into rust-taint 2024-12-04 15:28:30 +01:00
Paolo Tranquilli
08de0b40ed Merge branch 'main' into redsun82/rust-less-canonical-paths 2024-12-04 14:35:10 +01:00
Paolo Tranquilli
80d466ffea Merge pull request #18116 from github/redsun82/rust-perf-measures
Rust: add some performance diagnostics
2024-12-04 14:31:06 +01:00
Simon Friis Vindum
2ada999728 Rust: Include as expression in CFG nodes 2024-12-04 12:56:54 +01:00
Paolo Tranquilli
7e107a4520 Merge branch 'main' into redsun82/rust-less-canonical-paths 2024-12-04 11:24:48 +01:00
Paolo Tranquilli
31b9b3adaa Merge branch 'main' into redsun82/rust-perf-measures 2024-12-04 10:50:37 +01:00
Paolo Tranquilli
b9be002e01 Rust: improve TupleStructPat.toString 2024-12-04 10:47:41 +01:00
Paolo Tranquilli
59ea563d2a Merge branch 'main' into redsun82/rust-less-canonical-paths 2024-12-04 10:44:11 +01:00
Paolo Tranquilli
e30a429c3d Rust: revert TupleStructPat.toString improvements 2024-12-04 10:34:28 +01:00
Paolo Tranquilli
53503002a1 Merge branch 'main' into redsun82/rust-tweaks 2024-12-04 09:35:01 +01:00
Paolo Tranquilli
277c9f4087 Rust: add back getAttr to ArrayExpr 2024-12-03 16:12:56 +01:00
Paolo Tranquilli
c113503b41 Rust: fix doc typo 2024-12-03 15:18:17 +01:00
Paolo Tranquilli
353f1cafe6 Rust: distinguish [a, b] from [a; b]
This splits the `ArrayExpr` class into `ArrayListExpr` and `ArrayRepeatExpr`.
This uses the `synth.from_class` machinery to integrate seamlessly into the
generated code, by hiding the extracted `ArrayExpr` behind an internal class
and replacing it with a hierarchy of those two classes under a new
`ArrayExpr` class.
2024-12-03 15:09:20 +01:00
Paolo Tranquilli
db18d1046b Rust: rename getTy -> getTypeRepr 2024-12-03 11:17:08 +01:00
Paolo Tranquilli
e89cf303e7 Rust: rename TypeRef -> TypeRepr 2024-12-02 17:58:40 +01:00
Paolo Tranquilli
b57a37479b Rust: make File usable in codegen 2024-12-02 15:15:46 +01:00
Paolo Tranquilli
e7ffddd52c Rust: rename all *Type to *TypeRef 2024-12-02 10:13:05 +01:00
Paolo Tranquilli
99bd75c429 Rust: expand Ty in documentation 2024-12-02 09:51:15 +01:00
Paolo Tranquilli
5d3c9d050d Rust: expand Pat in documentation 2024-12-02 09:48:10 +01:00
Paolo Tranquilli
c46f44da5f Rust: fix QL compilation errors 2024-11-29 15:55:51 +01:00
Paolo Tranquilli
9cf2420c3b Rust: restrict canonical path calculations 2024-11-29 14:43:51 +01:00
Simon Friis Vindum
e8ddb6b180 Rust: Add getStaticTarget to CallExprBase 2024-11-28 10:57:07 +01:00
Paolo Tranquilli
a8188598b0 Merge branch 'main' into redsun82/rust-canonical-enum 2024-11-27 15:01:47 +01:00
Simon Friis Vindum
46abb9083b Merge pull request #18115 from paldepind/rust-rename-expr
Rust: Rename `expr` on `CallExpr` and `LetExpr`
2024-11-27 09:41:04 +01:00
Simon Friis Vindum
8f886c6603 Merge pull request #18088 from paldepind/rust-self-parameters
Rust: Handle `self` parameters in variables and SSA library
2024-11-27 08:42:58 +01:00
Simon Friis Vindum
d30f3e2822 Rust: Renamed expr on CallExpr and LetExpr 2024-11-26 15:22:14 +01:00
Paolo Tranquilli
8a01161d4a Rust: rename MatchExpr.expr to scrutinee in all layers
This doesn't require `ql.name` and is simpler while we don't have
to write upgrade scripts. The `ql.name` mechanism might get useful
once we do have to write upgrade scripts, as that doesn't change the
dbscheme.
2024-11-26 10:42:13 +01:00