AeneasVerif / charon

Interface with the rustc compiler for the purpose of program verification
Apache License 2.0
79 stars 14 forks source link

Make `RawStatement::Sequence` contain a `Vec` #261

Closed Nadrieril closed 3 months ago

Nadrieril commented 3 months ago

This is more convenient to use from rustc and avoids the high risk of overflow whenever we traverse a function body. It's likely a lot faster too. charon-ml users won't see the difference.

One surprising consequence is that this changes some loop spans in Aeneas tests. For a reason I don't understand, Aeneas usually had loop spans that pointed to the whole function instead of just the loop. Now it uses the span that is supposed to cover just the loop. Unfortunately spans are hard so they tend to be wrong anyway.

Fixes #122