Paolo Tranquilli
bd08bc7923
Rust: address review
2024-10-15 14:21:11 +02:00
Tom Hvitved
b284a2a7c0
Rust: Add `Callable` as a base class of `Function` and `ClosureExpr`
2024-10-11 12:00:30 +02:00
Paolo Tranquilli
c364fd7e56
Codegen: allow annotations to replace bases and drop fields
2024-10-10 14:33:06 +02:00
Tom Hvitved
062127b42e
Codegen: Do not cache injectors/projectors in `Synth` module
2024-09-24 14:41:20 +02:00
Arthur Baars
04e3b39ffb
Merge pull request #17537 from github/redsun82/rust-doctest-gen
...
Rust: take test code also from property descriptions
2024-09-23 11:41:32 +02:00
Arthur Baars
05173fa7ac
Merge pull request #17539 from github/redsun82/rust-codegen-detach
...
Rust/Codegen: allow to "detach" property emission
2024-09-23 11:40:11 +02:00
Paolo Tranquilli
c74b6be136
Rust/Codegen: allow to "detach" property emission
...
By using the `rust.detach` pragma on a property, we make that property
not appear in the generated struct as a field, and provide instead
a `generated::Class::emit_property` function that can be used to emit
the corresponding TRAP entry independently.
2024-09-20 16:06:22 +02:00
Paolo Tranquilli
2a95068a0a
Rust: take test code also from property descriptions
2024-09-20 15:12:13 +02:00
Paolo Tranquilli
4e59fa9035
Codegen: remove unneeded code
2024-09-20 12:47:45 +02:00
Paolo Tranquilli
f7afcd038a
Codegen: move `use_for_null` to pragmas
2024-09-20 12:47:45 +02:00
Paolo Tranquilli
d2ebe00492
Codegen: move group to parametrized pragmas
2024-09-20 12:47:44 +02:00
Paolo Tranquilli
2533f18a6e
Codegen: move `ql.hideable` to pragmas
2024-09-20 12:47:44 +02:00
Paolo Tranquilli
8d291ab938
Codegen: move `qltest.test_with` to parametrized pragmas
2024-09-20 12:47:44 +02:00
Paolo Tranquilli
3e2f886595
Codegen: allow inheritable pragmas
2024-09-20 12:47:43 +02:00
Paolo Tranquilli
db00cb6827
Codegen: move class synth decorators to pragmas
2024-09-20 11:09:22 +02:00
Paolo Tranquilli
9d6ee09f65
Codegen: move rust.doc_test_signature to parametrized pragmas
2024-09-20 11:09:21 +02:00
Paolo Tranquilli
70997e8189
Codegen: move default_doc_name to parametrized pragma
2024-09-20 11:09:21 +02:00
Paolo Tranquilli
9f1d50ebd1
Codegen: allow parametrized pragmas
2024-09-20 11:09:21 +02:00
Paolo Tranquilli
74c0fa7154
Codegen: allow annotations to add class decorations
2024-09-20 08:40:34 +02:00
Paolo Tranquilli
cc5882a3c3
Codegen: allow full annotation of classes
2024-09-20 06:55:17 +02:00
Paolo Tranquilli
97cca76970
Revert "Codegen: allow to include `.py` files in `schema.py`"
2024-09-19 16:58:20 +02:00
Paolo Tranquilli
6a540d833e
Merge pull request #17523 from github/redsun82/rust-break-up-schema
...
Codegen/Rust: allow breaking up schema file
2024-09-19 16:57:58 +02:00
Paolo Tranquilli
a5e3fbf367
Codegen/Rust: allow breaking up schema file
2024-09-19 15:57:42 +02:00
Arthur Baars
f38f818578
Merge pull request #17516 from github/redsun82/codegen-annotate
...
Codegen: allow to attach docstrings after the definition
2024-09-19 15:35:16 +02:00
Paolo Tranquilli
c117a53fb0
Codegen: allow to attach docstrings after the definition
2024-09-19 12:43:34 +02:00
Paolo Tranquilli
ec9bb1da56
Codegen: allow to include `.py` files in `schema.py`
2024-09-19 12:18:52 +02:00
Tom Hvitved
5554c0f28f
Rust: Use ```rust for code block examples
...
Also added some missing code block terminators.
2024-09-18 13:47:45 +02:00
Tom Hvitved
98b5ef5e01
Rust: Halt codegen on code block without ``` terminator
2024-09-18 13:47:44 +02:00
Tom Hvitved
1433363523
Codegen: Create `internal` folders
2024-09-17 20:06:35 +02:00
Paolo Tranquilli
0d8d9a3447
Merge branch 'main' into redsun82/rust-default-doc-signature
2024-09-17 08:29:01 +02:00
Paolo Tranquilli
1ce4707ff9
Merge branch 'main' into redsun82/rust-typed-labels
2024-09-16 16:44:55 +02:00
Tom Hvitved
964e97c842
Update misc/codegen/lib/ql.py
...
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2024-09-16 15:48:13 +02:00
Paolo Tranquilli
10e42237f3
Codegen: fix test
2024-09-16 14:46:42 +02:00
Tom Hvitved
8d68bdf4d6
Codegen: Fix return type of `getResolveStep` and `resolve`
2024-09-16 14:19:29 +02:00
Paolo Tranquilli
95b32fb541
Pre-commit: bump up `autopep8` check version and fix formatting
2024-09-16 14:03:48 +02:00
Tom Hvitved
9c0cafeeb8
Codegen: Make public AST classes `final`
2024-09-16 13:39:53 +02:00
Paolo Tranquilli
73e9b46853
Rust/Codegen: make `() -> ()` the default signature
2024-09-16 13:32:55 +02:00
Paolo Tranquilli
f1233b14e8
Rust: fix generated hierarchy
2024-09-16 10:06:01 +02:00
Paolo Tranquilli
8f93f5e34b
Rust: move to `Label<T>` and mark unsafety of `from_untyped`
2024-09-13 17:17:19 +02:00
Paolo Tranquilli
faf1eeeb0d
Rust: introduce typed labels
2024-09-13 13:57:14 +02:00
Paolo Tranquilli
beb27bf5e3
Rust: fix QL compilation and schema includes ordering
2024-09-12 15:05:30 +02:00
Paolo Tranquilli
573b8b9373
Merge branch 'rust-experiment' into redsun82/rust-ci
2024-09-09 12:32:02 +02:00
Paolo Tranquilli
56e127849f
Rust/Codegen: fix generated list files
2024-09-09 12:31:09 +02:00
Paolo Tranquilli
10a23c0843
Merge branch 'rust-experiment' into redsun82/rust-doctest-gen
2024-09-09 12:20:55 +02:00
Paolo Tranquilli
ee2a8b09f6
Rust: fix formatting
2024-09-09 12:11:50 +02:00
Paolo Tranquilli
3cd8aaf4b0
Rust: simplify rust doc test annotation
2024-09-09 08:59:17 +02:00
Arthur Baars
c8f73587cc
Rust: codegen: fix generated code
2024-09-07 10:32:59 +02:00
Paolo Tranquilli
928f3f11f1
Rust: remove `<>` from function wrapper
2024-09-06 14:34:12 +02:00
Paolo Tranquilli
8c5cc2efdc
Rust: generate test code from schema docstrings
...
This generates test source files from code blocks in class docstrings.
By default the test code is generated as is, but it can optionally:
* be wrapped in a function providing an adequate context using
`@rust.doc_test_function(name, *, lifetimes=(), return_type="()", **kwargs)`,
with `kwargs` providing both generic and normal params depending on
capitalization
* be skipped altogether using `@rust.skip_doc_test`
So for example an annotation like
```python
@rust.doc_test_function("foo",
lifetimes=("a",),
T="Eq",
x="&'a T",
y="&'a T",
return_type="&'a T")
```
will result in the following wrapper:
```rust
fn foo<'a, T: Eq>(x: &'a T, y: &'a T) -> &'a T {
// example code here
}
```
2024-09-06 14:24:42 +02:00
Paolo Tranquilli
7e1290aa74
Rust: reuse shared rust trap library
2024-08-30 16:08:37 +02:00