Collect postconditions for async fns#53
Collect postconditions for async fns#53erdmannc wants to merge 13 commits intoAurel300:rewrite-2023from
Conversation
|
Do you have anything I can read about the semantics of your |
|
Sure, this special handling of postconditions on asynchronous functions is due to their lowering to futures. Specifically, all functions declared as async are transformed to a type implementing the This lowering happens in two stages: First, in the analysis MIR (where prusti operates), the This has a couple of consequences regarding Furthermore, the spec-item's arguments (and thus typing inside the postcondition) match those of the original Finally, notice that due to the different lowering stages, we will need two This draft simply serves to illustrate a possible way of distinguishing synchronous and asynchronous postconditions and making sure they are attached to the right methods. I hope that helps, just let me know if I can elaborate on something. |
…ow) in ProcedureSpecification
Create two specification functions for postconditions on async fn (one for the poll implementation and a wrapped one for the poll call stub) and collect them into the spec-graph.