Mikolaj Wielgus
f0e2ba6e3a
contracts: Put contract-bound function body in a `try` block if needed
...
This makes Topola dependent on nightly Rust. If `try` blocks aren't
stabilized before the first release, we'll trivially just undo this
change temporarily, as contracts are just elaborate assertions.
2023-10-29 15:24:41 +00:00
Mikolaj Wielgus
894fa654cf
contracts: Visit nested expressions
...
Forgot to add this earlier.
2023-09-20 00:34:48 +02:00
Mikolaj Wielgus
12e37e0e91
contracts: Tell whether invariant was violation was pre or post
2023-09-19 18:04:08 +02:00
Mikolaj Wielgus
d7b5640a25
contracts: Improve abstract type detection (i.e. containing impl)
...
Now it also checks for if there's an impl inside the type, not only on
the outside.
2023-09-16 23:10:54 +02:00
Mikolaj Wielgus
d286f5c182
contracts: Replace `return` with block break
...
Without that, postconditions were skipped.
2023-09-15 20:16:37 +02:00
Mikolaj Wielgus
82081ef170
contracts: Use block instead of closure for original function body
...
I don't know why Contracts uses a closure, code block works just fine
while avoiding bugs. I may find out the hard way later.
2023-09-15 00:13:39 +02:00
Mikolaj Wielgus
35484972ef
Vendor contracts crate
2023-09-15 00:10:10 +02:00