Commit Graph

7 Commits

Author SHA1 Message Date
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